Update UI y API Vendedores y Mapeo de Quote
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (push) Successful in 10m52s
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (push) Successful in 10m52s
This commit is contained in:
parent
2014218ad0
commit
bba48a7e28
16
Core/Interfaces/IPeopleDom.cs
Normal file
16
Core/Interfaces/IPeopleDom.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using Domain.Entities;
|
||||
using Domain.Generics;
|
||||
|
||||
namespace Models.Interfaces
|
||||
{
|
||||
public interface IPeopleDom
|
||||
{
|
||||
Task<PagedResult<EPerson>> GetAllAsync(int page = 1, int pageSize = 50);
|
||||
Task<PagedResult<EPerson>> SearchAsync(string? name, string? email, int page = 1, int pageSize = 50);
|
||||
Task<EPerson?> GetByIdAsync(int id);
|
||||
Task<EPerson> CreateAsync(EPerson person);
|
||||
Task<bool> UpdateAsync(EPerson person);
|
||||
Task<bool> DeleteAsync(int id);
|
||||
Task<byte[]> ExportFilteredCustomersToExcelAsync(PeopleSearchParams searchParams);
|
||||
}
|
||||
}
|
||||
@ -66,7 +66,6 @@ public class PatientService : IPatientDom
|
||||
|
||||
return await _repository.UpdateAsync(entity);
|
||||
}
|
||||
|
||||
public async Task<PagedResult<EPatient>> SearchAsync(string? name, string? document, int page = 1, int pageSize = 50)
|
||||
{
|
||||
try
|
||||
@ -79,7 +78,6 @@ public class PatientService : IPatientDom
|
||||
throw new Exception($"{methodName} Message: {ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
public Task<bool> DeleteAsync(int id)
|
||||
{
|
||||
// Implementar según políticas del sistema (soft delete, etc.)
|
||||
@ -125,6 +123,5 @@ public class PatientService : IPatientDom
|
||||
throw new Exception($"{methodName} - Error al exportar pacientes: {ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
98
Core/Services/PeopleService.cs
Normal file
98
Core/Services/PeopleService.cs
Normal file
@ -0,0 +1,98 @@
|
||||
using Domain.Entities;
|
||||
using Domain.Generics;
|
||||
using Models.Interfaces;
|
||||
using System.Reflection;
|
||||
using Transversal.Services;
|
||||
|
||||
namespace Core.Services
|
||||
{
|
||||
public class PeopleService : IPeopleDom
|
||||
{
|
||||
#region Declaraciones
|
||||
private readonly IPhSPeopleRepository _peopleRepository ;
|
||||
#endregion
|
||||
public PeopleService(IPhSPeopleRepository peopleRepository)
|
||||
{
|
||||
_peopleRepository = peopleRepository ?? throw new ArgumentNullException(nameof(peopleRepository));
|
||||
}
|
||||
#region Métodos
|
||||
public async Task<PagedResult<EPerson>> GetAllAsync(int page = 1, int pageSize = 50)
|
||||
{
|
||||
return await _peopleRepository.GetAllAsync(page, pageSize);
|
||||
}
|
||||
public async Task<PagedResult<EPerson>> SearchAsync(string? name, string? email,
|
||||
int page = 1, int pageSize = 50)
|
||||
{
|
||||
return await _peopleRepository.SearchAsync(name,email,page,pageSize);
|
||||
}
|
||||
public async Task<EPerson?> GetByIdAsync(int id)
|
||||
{
|
||||
return await _peopleRepository.GetByIdAsync(id);
|
||||
}
|
||||
|
||||
public async Task<EPerson> CreateAsync(EPerson person)
|
||||
{
|
||||
return await _peopleRepository.AddAsync(person);
|
||||
}
|
||||
|
||||
public async Task<bool> UpdateAsync(EPerson person)
|
||||
{
|
||||
var existing = await _peopleRepository.GetByIdAsync(person.Id);
|
||||
if (existing == null)
|
||||
return false;
|
||||
|
||||
await _peopleRepository.UpdateAsync(person);
|
||||
return true;
|
||||
}
|
||||
|
||||
public async Task<bool> DeleteAsync(int id)
|
||||
{
|
||||
var existing = await _peopleRepository.GetByIdAsync(id);
|
||||
if (existing == null)
|
||||
return false;
|
||||
|
||||
await _peopleRepository.DeleteAsync(id);
|
||||
return true;
|
||||
}
|
||||
public async Task<byte[]> ExportFilteredCustomersToExcelAsync(PeopleSearchParams searchParams)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Realiza la búsqueda de clientes con los parámetros proporcionados
|
||||
var searchResult = await SearchAsync(
|
||||
searchParams.Name,
|
||||
searchParams.Email,
|
||||
searchParams.Page,
|
||||
searchParams.PageSize
|
||||
);
|
||||
// Verifica que se hayan encontrado resultados
|
||||
if (searchResult?.Items is null || !searchResult.Items.Any())
|
||||
{
|
||||
throw new Exception("No se encontraron clientes para exportar.");
|
||||
}
|
||||
// Llamamos a un método que exporta los datos a Excel
|
||||
var stream = new XLSXExportBase();
|
||||
// Convertimos los resultados de la búsqueda a un formato adecuado para el exportador
|
||||
var customersData = searchResult.Items.Select(c => new
|
||||
{
|
||||
c.Id,
|
||||
c.Name,
|
||||
c.Email,
|
||||
c.Phone,
|
||||
c.DefaultCommissionPercent,
|
||||
c.Active
|
||||
}).ToList();
|
||||
// Genera el archivo Excel
|
||||
var excelFile = stream.ExportExcel(customersData);
|
||||
// Devuelve el archivo Excel como un array de bytes
|
||||
return excelFile;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
var methodName = MethodBase.GetCurrentMethod()?.Name ?? "UnknownMethod";
|
||||
throw new Exception($"{ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -62,9 +62,9 @@ namespace PhronCare.Core.Services.Sales
|
||||
var newQuote = await _quoteHeaderRepository.AddAsync(quote);
|
||||
|
||||
// Crear los detalles asociados
|
||||
if (quote.Details != null)
|
||||
if (quote.PhSQuoteDetails != null)
|
||||
{
|
||||
foreach (var detail in quote.Details)
|
||||
foreach (var detail in quote.PhSQuoteDetails)
|
||||
{
|
||||
detail.QuoteheaderId = newQuote.Id;
|
||||
await _quoteDetailRepository.AddAsync(detail);
|
||||
@ -72,9 +72,9 @@ namespace PhronCare.Core.Services.Sales
|
||||
}
|
||||
|
||||
// Crear los roles asociados
|
||||
if (quote.Roles != null)
|
||||
if (quote.PhSQuoteRoles != null)
|
||||
{
|
||||
foreach (var role in quote.Roles)
|
||||
foreach (var role in quote.PhSQuoteRoles)
|
||||
{
|
||||
role.QuoteheaderId = newQuote.Id;
|
||||
await _quoteRoleRepository.AddAsync(role);
|
||||
@ -130,9 +130,9 @@ namespace PhronCare.Core.Services.Sales
|
||||
FechaTentativa = q.Estimateddate?.ToString("yyyy-MM-dd"),
|
||||
ImporteEstimado = q.Estimatedamount,
|
||||
ImporteAprobado = q.Approvedamount,
|
||||
Profesional = q.Roles.FirstOrDefault(r => r.Entitytype == "PhS_Professionals")?.Entitytype,
|
||||
Institución = q.Roles.FirstOrDefault(r => r.Entitytype == "PhS_Institutions")?.Entitytype,
|
||||
Paciente = q.Roles.FirstOrDefault(r => r.Entitytype == "PhS_Patients")?.Entitytype
|
||||
Profesional = q.PhSQuoteRoles.FirstOrDefault(r => r.Entitytype == "PhS_Professionals")?.Entitytype,
|
||||
Institución = q.PhSQuoteRoles.FirstOrDefault(r => r.Entitytype == "PhS_Institutions")?.Entitytype,
|
||||
Paciente = q.PhSQuoteRoles.FirstOrDefault(r => r.Entitytype == "PhS_Patients")?.Entitytype
|
||||
}).ToList();
|
||||
|
||||
// Generar archivo Excel
|
||||
|
||||
40
Domain/Entities/EPeopleGroup.cs
Normal file
40
Domain/Entities/EPeopleGroup.cs
Normal file
@ -0,0 +1,40 @@
|
||||
namespace Domain.Entities
|
||||
{
|
||||
public class EPeopleGroup
|
||||
{
|
||||
/// <summary>
|
||||
/// Identificador único del grupo de personas
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Nombre del grupo de vendedores
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Descripción adicional del grupo
|
||||
/// </summary>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unidad de negocio relacionada (opcional)
|
||||
/// </summary>
|
||||
public int? BusinessunitsId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Estado activo o inactivo del grupo
|
||||
/// </summary>
|
||||
public bool Active { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fecha de creación del grupo
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fecha de última modificación
|
||||
/// </summary>
|
||||
public DateTime? ModifiedAt { get; set; }
|
||||
}
|
||||
}
|
||||
59
Domain/Entities/EPerson.cs
Normal file
59
Domain/Entities/EPerson.cs
Normal file
@ -0,0 +1,59 @@
|
||||
namespace Domain.Entities
|
||||
{
|
||||
public class EPerson
|
||||
{
|
||||
/// <summary>
|
||||
/// Identificador único de la persona (vendedor/agente)
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Nombre de la persona
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Teléfono de contacto de la persona
|
||||
/// </summary>
|
||||
public string? Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Correo electrónico de la persona
|
||||
/// </summary>
|
||||
public string? Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unidad de negocio asignada
|
||||
/// </summary>
|
||||
public int BusinessunitsId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grupo comercial opcional
|
||||
/// </summary>
|
||||
public int? PeoplegroupsId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Porcentaje de comisión por defecto
|
||||
/// </summary>
|
||||
public decimal? DefaultCommissionPercent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Activo/Inactivo
|
||||
/// </summary>
|
||||
public bool Active { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fecha de creación
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fecha de última modificación
|
||||
/// </summary>
|
||||
public DateTime? ModifiedAt { get; set; }
|
||||
|
||||
public virtual EBusinessUnit Businessunits { get; set; } = null!;
|
||||
|
||||
public virtual EPeopleGroup? Peoplegroups { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1,14 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Domain.Entities
|
||||
namespace Domain.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// Tabla de detalles de presupuestos
|
||||
/// </summary>
|
||||
public class EQuoteDetail
|
||||
{
|
||||
/// <summary>
|
||||
@ -61,6 +52,8 @@ namespace Domain.Entities
|
||||
/// </summary>
|
||||
public DateTime? Modifiedat { get; set; }
|
||||
|
||||
public virtual EQuoteHeader Quoteheader { get; set; } = null!;
|
||||
public virtual EProduct Product { get; set; } = null!;
|
||||
|
||||
public virtual EQuoteHeader PhSQuoteheader { get; set; } = null!;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Domain.Entities
|
||||
namespace Domain.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// Tabla de cabeceras de presupuestos
|
||||
@ -31,6 +25,11 @@ namespace Domain.Entities
|
||||
/// </summary>
|
||||
public int BusinessunitId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Identificador único del vendedor
|
||||
/// </summary>
|
||||
public int PeopleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Estado: E (Emitido), A (Aprobado), AC (Aprobado para cirugia), etc.
|
||||
/// </summary>
|
||||
@ -86,8 +85,9 @@ namespace Domain.Entities
|
||||
/// </summary>
|
||||
public DateTime? Modifiedat { get; set; }
|
||||
|
||||
public virtual ICollection<EQuoteDetail> Details { get; set; } = new List<EQuoteDetail>();
|
||||
public virtual ICollection<EQuoteDetail> PhSQuoteDetails { get; set; } = new List<EQuoteDetail>();
|
||||
|
||||
public virtual ICollection<EQuoteRole> PhSQuoteRoles { get; set; } = new List<EQuoteRole>();
|
||||
|
||||
public virtual ICollection<EQuoteRole> Roles { get; set; } = new List<EQuoteRole>();
|
||||
}
|
||||
}
|
||||
|
||||
8
Domain/Generics/PeopleSearchParams.cs
Normal file
8
Domain/Generics/PeopleSearchParams.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace Domain.Generics
|
||||
{
|
||||
public class PeopleSearchParams: PagedRequest
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
public string? Email { get; set; }
|
||||
}
|
||||
}
|
||||
@ -7,7 +7,7 @@
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\maski\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.13.2</NuGetToolVersion>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.13.1</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\maski\.nuget\packages\" />
|
||||
|
||||
17
Models/Interfaces/IPhSPeopleRepository.cs
Normal file
17
Models/Interfaces/IPhSPeopleRepository.cs
Normal file
@ -0,0 +1,17 @@
|
||||
using Domain.Entities;
|
||||
using Domain.Generics;
|
||||
|
||||
namespace Models.Interfaces
|
||||
{
|
||||
public interface IPhSPeopleRepository
|
||||
{
|
||||
Task<PagedResult<EPerson>> GetAllAsync(int page = 1, int pageSize = 50);
|
||||
Task<PagedResult<EPerson>> SearchAsync(string? name, string? email,
|
||||
int page = 1, int pageSize = 50);
|
||||
Task<EPerson?> GetByIdAsync(int id);
|
||||
Task<EPerson> AddAsync(EPerson person);
|
||||
Task UpdateAsync(EPerson person);
|
||||
Task DeleteAsync(int id);
|
||||
|
||||
}
|
||||
}
|
||||
@ -13,5 +13,7 @@ public partial class PhSBusinessUnit
|
||||
|
||||
public string? Manager { get; set; }
|
||||
|
||||
public virtual ICollection<PhSPerson> PhSPeople { get; set; } = new List<PhSPerson>();
|
||||
|
||||
public virtual ICollection<PhSProduct> PhSProducts { get; set; } = new List<PhSProduct>();
|
||||
}
|
||||
|
||||
44
Models/Models/PhSPeopleGroup.cs
Normal file
44
Models/Models/PhSPeopleGroup.cs
Normal file
@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Models.Models;
|
||||
|
||||
public partial class PhSPeopleGroup
|
||||
{
|
||||
/// <summary>
|
||||
/// Identificador único del grupo de personas
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Nombre del grupo de vendedores
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Descripción adicional del grupo
|
||||
/// </summary>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unidad de negocio relacionada (opcional)
|
||||
/// </summary>
|
||||
public int? BusinessunitsId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Estado activo o inactivo del grupo
|
||||
/// </summary>
|
||||
public bool Active { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fecha de creación del grupo
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fecha de última modificación
|
||||
/// </summary>
|
||||
public DateTime? ModifiedAt { get; set; }
|
||||
|
||||
public virtual ICollection<PhSPerson> PhSPeople { get; set; } = new List<PhSPerson>();
|
||||
}
|
||||
61
Models/Models/PhSPerson.cs
Normal file
61
Models/Models/PhSPerson.cs
Normal file
@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Models.Models;
|
||||
|
||||
public partial class PhSPerson
|
||||
{
|
||||
/// <summary>
|
||||
/// Identificador único de la persona (vendedor/agente)
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Nombre de la persona
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Teléfono de contacto de la persona
|
||||
/// </summary>
|
||||
public string? Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Correo electrónico de la persona
|
||||
/// </summary>
|
||||
public string? Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unidad de negocio asignada
|
||||
/// </summary>
|
||||
public int BusinessunitsId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Grupo comercial opcional
|
||||
/// </summary>
|
||||
public int? PeoplegroupsId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Porcentaje de comisión por defecto
|
||||
/// </summary>
|
||||
public decimal? DefaultCommissionPercent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Activo/Inactivo
|
||||
/// </summary>
|
||||
public bool Active { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fecha de creación
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fecha de última modificación
|
||||
/// </summary>
|
||||
public DateTime? ModifiedAt { get; set; }
|
||||
|
||||
public virtual PhSBusinessUnit Businessunits { get; set; } = null!;
|
||||
|
||||
public virtual PhSPeopleGroup? Peoplegroups { get; set; }
|
||||
}
|
||||
@ -26,4 +26,6 @@ public partial class PhSProduct
|
||||
public virtual PhSBusinessUnit? Businessunits { get; set; }
|
||||
|
||||
public virtual PhSProductCategory? Category { get; set; }
|
||||
|
||||
public virtual ICollection<PhSQuoteDetail> PhSQuoteDetails { get; set; } = new List<PhSQuoteDetail>();
|
||||
}
|
||||
|
||||
@ -58,5 +58,7 @@ public partial class PhSQuoteDetail
|
||||
/// </summary>
|
||||
public DateTime? Modifiedat { get; set; }
|
||||
|
||||
public virtual PhSProduct Product { get; set; } = null!;
|
||||
|
||||
public virtual PhSQuoteHeader Quoteheader { get; set; } = null!;
|
||||
}
|
||||
|
||||
@ -28,6 +28,11 @@ public partial class PhSQuoteHeader
|
||||
/// </summary>
|
||||
public int BusinessunitId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Identificador único del vendedor
|
||||
/// </summary>
|
||||
public int PeopleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Estado: E (Emitido), A (Aprobado), AC (Aprobado para cirugia), etc.
|
||||
/// </summary>
|
||||
|
||||
@ -43,6 +43,10 @@ public partial class PhronCareOperationsHubContext : DbContext
|
||||
|
||||
public virtual DbSet<PhSPatient> PhSPatients { get; set; }
|
||||
|
||||
public virtual DbSet<PhSPeopleGroup> PhSPeopleGroups { get; set; }
|
||||
|
||||
public virtual DbSet<PhSPerson> PhSPeople { get; set; }
|
||||
|
||||
public virtual DbSet<PhSProduct> PhSProducts { get; set; }
|
||||
|
||||
public virtual DbSet<PhSProductCategory> PhSProductCategories { get; set; }
|
||||
@ -58,15 +62,8 @@ public partial class PhronCareOperationsHubContext : DbContext
|
||||
public virtual DbSet<PhSQuoteRole> PhSQuoteRoles { get; set; }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
#region VERSION DOCKER
|
||||
{
|
||||
if (!optionsBuilder.IsConfigured)
|
||||
{
|
||||
// Dejarlo vacío para usar la configuración externa desde Program.cs o Startup.cs
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
//=> optionsBuilder.UseSqlServer("data source=srv01.saludlab.com.ar,39458;initial catalog=phronCare_OperationsHub;User ID=sa;Password=HS|s[~xxQzTo/n>9jO;encrypt=False;trustServerCertificate=True;MultipleActiveResultSets=True");
|
||||
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263.
|
||||
=> optionsBuilder.UseSqlServer("data source=srv01.saludlab.com.ar,39458;initial catalog=phronCare_OperationsHub;User ID=sa;Password=HS|s[~xxQzTo/n>9jO;encrypt=False;trustServerCertificate=True;MultipleActiveResultSets=True");
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
@ -481,6 +478,96 @@ public partial class PhronCareOperationsHubContext : DbContext
|
||||
.HasConstraintName("FK_Patients_DocumentTypes");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<PhSPeopleGroup>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("PK__PhS_Peop__3213E83F8005BEA1");
|
||||
|
||||
entity.ToTable("PhS_PeopleGroups");
|
||||
|
||||
entity.Property(e => e.Id)
|
||||
.HasComment("Identificador único del grupo de personas")
|
||||
.HasColumnName("id");
|
||||
entity.Property(e => e.Active)
|
||||
.HasDefaultValue(true)
|
||||
.HasComment("Estado activo o inactivo del grupo")
|
||||
.HasColumnName("active");
|
||||
entity.Property(e => e.BusinessunitsId)
|
||||
.HasComment("Unidad de negocio relacionada (opcional)")
|
||||
.HasColumnName("businessunits_id");
|
||||
entity.Property(e => e.CreatedAt)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasComment("Fecha de creación del grupo")
|
||||
.HasColumnType("datetime")
|
||||
.HasColumnName("created_at");
|
||||
entity.Property(e => e.Description)
|
||||
.HasMaxLength(255)
|
||||
.HasComment("Descripción adicional del grupo")
|
||||
.HasColumnName("description");
|
||||
entity.Property(e => e.ModifiedAt)
|
||||
.HasComment("Fecha de última modificación")
|
||||
.HasColumnType("datetime")
|
||||
.HasColumnName("modified_at");
|
||||
entity.Property(e => e.Name)
|
||||
.HasMaxLength(100)
|
||||
.HasComment("Nombre del grupo de vendedores")
|
||||
.HasColumnName("name");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<PhSPerson>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("PK__PhS_Peop__3213E83F52F7C072");
|
||||
|
||||
entity.ToTable("PhS_People");
|
||||
|
||||
entity.Property(e => e.Id)
|
||||
.HasComment("Identificador único de la persona (vendedor/agente)")
|
||||
.HasColumnName("id");
|
||||
entity.Property(e => e.Active)
|
||||
.HasDefaultValue(true)
|
||||
.HasComment("Activo/Inactivo")
|
||||
.HasColumnName("active");
|
||||
entity.Property(e => e.BusinessunitsId)
|
||||
.HasComment("Unidad de negocio asignada")
|
||||
.HasColumnName("businessunits_id");
|
||||
entity.Property(e => e.CreatedAt)
|
||||
.HasDefaultValueSql("(getdate())")
|
||||
.HasComment("Fecha de creación")
|
||||
.HasColumnType("datetime")
|
||||
.HasColumnName("created_at");
|
||||
entity.Property(e => e.DefaultCommissionPercent)
|
||||
.HasComment("Porcentaje de comisión por defecto")
|
||||
.HasColumnType("decimal(5, 2)")
|
||||
.HasColumnName("default_commission_percent");
|
||||
entity.Property(e => e.Email)
|
||||
.HasMaxLength(100)
|
||||
.HasComment("Correo electrónico de la persona")
|
||||
.HasColumnName("email");
|
||||
entity.Property(e => e.ModifiedAt)
|
||||
.HasComment("Fecha de última modificación")
|
||||
.HasColumnType("datetime")
|
||||
.HasColumnName("modified_at");
|
||||
entity.Property(e => e.Name)
|
||||
.HasMaxLength(100)
|
||||
.HasComment("Nombre de la persona")
|
||||
.HasColumnName("name");
|
||||
entity.Property(e => e.PeoplegroupsId)
|
||||
.HasComment("Grupo comercial opcional")
|
||||
.HasColumnName("peoplegroups_id");
|
||||
entity.Property(e => e.Phone)
|
||||
.HasMaxLength(50)
|
||||
.HasComment("Teléfono de contacto de la persona")
|
||||
.HasColumnName("phone");
|
||||
|
||||
entity.HasOne(d => d.Businessunits).WithMany(p => p.PhSPeople)
|
||||
.HasForeignKey(d => d.BusinessunitsId)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_people_businessunits");
|
||||
|
||||
entity.HasOne(d => d.Peoplegroups).WithMany(p => p.PhSPeople)
|
||||
.HasForeignKey(d => d.PeoplegroupsId)
|
||||
.HasConstraintName("FK_people_peoplegroups");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<PhSProduct>(entity =>
|
||||
{
|
||||
entity.ToTable("PhS_Products");
|
||||
@ -651,6 +738,11 @@ public partial class PhronCareOperationsHubContext : DbContext
|
||||
.HasColumnType("decimal(18, 2)")
|
||||
.HasColumnName("unitprice");
|
||||
|
||||
entity.HasOne(d => d.Product).WithMany(p => p.PhSQuoteDetails)
|
||||
.HasForeignKey(d => d.ProductId)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("FK_PhS_QuoteDetails_PhS_Products");
|
||||
|
||||
entity.HasOne(d => d.Quoteheader).WithMany(p => p.PhSQuoteDetails)
|
||||
.HasForeignKey(d => d.QuoteheaderId)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
@ -704,6 +796,10 @@ public partial class PhronCareOperationsHubContext : DbContext
|
||||
entity.Property(e => e.Observations)
|
||||
.HasComment("Observaciones internas")
|
||||
.HasColumnName("observations");
|
||||
entity.Property(e => e.PeopleId)
|
||||
.HasDefaultValue(1)
|
||||
.HasComment("Identificador único del vendedor")
|
||||
.HasColumnName("people_id");
|
||||
entity.Property(e => e.Printcount)
|
||||
.HasComment("Cantidad de impresiones")
|
||||
.HasColumnName("printcount");
|
||||
|
||||
@ -178,4 +178,4 @@ namespace Models.Repositories
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
92
Models/Repositories/PhSPeopleRepository.cs
Normal file
92
Models/Repositories/PhSPeopleRepository.cs
Normal file
@ -0,0 +1,92 @@
|
||||
using Azure;
|
||||
using Domain.Entities;
|
||||
using Domain.Generics;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Models.Helpers;
|
||||
using Models.Interfaces;
|
||||
using Models.Models;
|
||||
|
||||
namespace PhronCare.Core.Data.Repositories.Sales
|
||||
{
|
||||
public class PhSPeopleRepository(PhronCareOperationsHubContext context) : IPhSPeopleRepository
|
||||
{
|
||||
#region Declaraciones
|
||||
private readonly PhronCareOperationsHubContext _context = context;
|
||||
#endregion
|
||||
#region Métodos
|
||||
public async Task<PagedResult<EPerson>> GetAllAsync(int page = 1, int pageSize = 50)
|
||||
{
|
||||
var query = _context.PhSPeople
|
||||
.Include(p => p.Businessunits)
|
||||
.Include(p => p.Peoplegroups)
|
||||
.AsQueryable();
|
||||
var pagedEntities = await query.ToPagedResultAsync(page, pageSize);
|
||||
return new PagedResult<EPerson>
|
||||
{
|
||||
Items = pagedEntities.Items.Select(EntityMapper.MapEntity<PhSPerson, EPerson>),
|
||||
TotalItems = pagedEntities.TotalItems,
|
||||
Page = pagedEntities.Page,
|
||||
PageSize = pagedEntities.PageSize
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<PagedResult<EPerson>> SearchAsync(string? name, string? email,
|
||||
int page = 1, int pageSize = 50)
|
||||
{
|
||||
var query = _context.PhSPeople.AsQueryable();
|
||||
|
||||
if (!string.IsNullOrEmpty(name))
|
||||
{
|
||||
query = query.Where(p => (p.Name).Contains(name));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(email))
|
||||
{
|
||||
query = query.Where(p => p.Email != null && p.Email.Contains(email));
|
||||
}
|
||||
|
||||
var pagedEntities = await query.ToPagedResultAsync(page, pageSize);
|
||||
|
||||
return new PagedResult<EPerson>
|
||||
{
|
||||
Items = pagedEntities.Items.Select(EntityMapper.MapEntity<PhSPerson, EPerson>),
|
||||
TotalItems = pagedEntities.TotalItems,
|
||||
Page = pagedEntities.Page,
|
||||
PageSize = pagedEntities.PageSize
|
||||
};
|
||||
}
|
||||
public async Task<EPerson?> GetByIdAsync(int id)
|
||||
{
|
||||
var entity = await _context.PhSPeople
|
||||
.Include(p => p.Businessunits)
|
||||
.Include(p => p.Peoplegroups)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(p => p.Id == id);
|
||||
|
||||
return entity != null ? EntityMapper.MapEntity<PhSPerson, EPerson>(entity) : null;
|
||||
}
|
||||
public async Task<EPerson> AddAsync(EPerson person)
|
||||
{
|
||||
var dbEntity = EntityMapper.MapEntity<EPerson, PhSPerson>(person);
|
||||
_context.PhSPeople.Add(dbEntity);
|
||||
await _context.SaveChangesAsync();
|
||||
return EntityMapper.MapEntity<PhSPerson, EPerson>(dbEntity);
|
||||
}
|
||||
public async Task UpdateAsync(EPerson person)
|
||||
{
|
||||
var dbEntity = EntityMapper.MapEntity<EPerson, PhSPerson>(person);
|
||||
_context.PhSPeople.Update(dbEntity);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
public async Task DeleteAsync(int id)
|
||||
{
|
||||
var entity = await _context.PhSPeople.FindAsync(id);
|
||||
if (entity != null)
|
||||
{
|
||||
_context.PhSPeople.Remove(entity);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -7,7 +7,7 @@
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\maski\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.13.2</NuGetToolVersion>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.13.1</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\maski\.nuget\packages\" />
|
||||
|
||||
144
phronCare.API/Controllers/Sales/PeopleController.cs
Normal file
144
phronCare.API/Controllers/Sales/PeopleController.cs
Normal file
@ -0,0 +1,144 @@
|
||||
using Domain.Entities;
|
||||
using Domain.Generics;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Models.Interfaces;
|
||||
using System.Reflection;
|
||||
|
||||
namespace phronCare.API.Controllers.Sales
|
||||
{
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class PeopleController : ControllerBase
|
||||
{
|
||||
private readonly IPeopleDom _peopleService;
|
||||
|
||||
public PeopleController(IPeopleDom peopleService)
|
||||
{
|
||||
_peopleService = peopleService ?? throw new ArgumentNullException(nameof(peopleService));
|
||||
}
|
||||
|
||||
#region Get Methods
|
||||
|
||||
[HttpGet("all")]
|
||||
public async Task<IActionResult> GetAll([FromQuery] int page = 1, [FromQuery] int pageSize = 50)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await _peopleService.GetAllAsync(page, pageSize);
|
||||
return Ok(result);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return InternalError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet("{id:int}")]
|
||||
public async Task<IActionResult> GetById(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var person = await _peopleService.GetByIdAsync(id);
|
||||
return person == null ? NotFound() : Ok(person);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return InternalError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet("search")]
|
||||
public async Task<IActionResult> SearchAsync([FromQuery] string? name, [FromQuery] string? email, [FromQuery] int page = 1, [FromQuery] int pageSize = 10)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await _peopleService.SearchAsync(name, email, page, pageSize);
|
||||
return Ok(result);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return InternalError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Post/Put/Delete Methods
|
||||
|
||||
[HttpPost("create")]
|
||||
public async Task<IActionResult> Create([FromBody] EPerson person)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (person == null)
|
||||
return BadRequest("La persona no puede ser nula.");
|
||||
|
||||
var result = await _peopleService.CreateAsync(person);
|
||||
return Ok(result);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return InternalError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPut("update")]
|
||||
public async Task<IActionResult> Update([FromBody] EPerson person)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (person == null || person.Id <= 0)
|
||||
return BadRequest("La persona es inválida o no tiene un ID válido.");
|
||||
|
||||
var success = await _peopleService.UpdateAsync(person);
|
||||
return success ? Ok("Persona actualizada correctamente.") : NotFound($"No se encontró la persona con ID {person.Id}.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return InternalError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpDelete("delete/{id:int}")]
|
||||
public async Task<IActionResult> Delete(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var success = await _peopleService.DeleteAsync(id);
|
||||
return success ? Ok("Persona eliminada correctamente.") : NotFound($"No se encontró la persona con ID {id}.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return InternalError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost("exportfiltered")]
|
||||
public async Task<IActionResult> ExportFilteredPeople([FromBody] PeopleSearchParams searchParams)
|
||||
{
|
||||
try
|
||||
{
|
||||
var file = await _peopleService.ExportFilteredCustomersToExcelAsync(searchParams);
|
||||
return File(file,
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"Vendedores.xlsx");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return InternalError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Helpers
|
||||
|
||||
private IActionResult InternalError(Exception ex)
|
||||
{
|
||||
var methodName = MethodBase.GetCurrentMethod()?.Name ?? "UnknownMethod";
|
||||
return StatusCode(500, $"{methodName} Message: {ex.Message}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -72,7 +72,12 @@ builder.Services.AddScoped<IPhSProfessionalRepository, PhSProfessionalRepository
|
||||
|
||||
builder.Services.AddScoped<IInstitutionDom, InstitutionService>();
|
||||
builder.Services.AddScoped<IPhSInstitutionRepository, PhSInstitutionRepository>();
|
||||
|
||||
builder.Services.AddScoped<IPeopleDom, PeopleService>();
|
||||
builder.Services.AddScoped<IPhSPeopleRepository, PhSPeopleRepository>();
|
||||
|
||||
builder.Services.AddScoped<IQuoteDom, QuoteService>();
|
||||
|
||||
builder.Services.AddScoped<IPhSQuoteHeaderRepository, PhSQuoteHeaderRepository>();
|
||||
builder.Services.AddScoped<IPhSQuoteDetailRepository, PhSQuoteDetailRepository>();
|
||||
builder.Services.AddScoped<IPhSQuoteRoleRepository, PhSQuoteRoleRepository>();
|
||||
|
||||
@ -828,6 +828,138 @@
|
||||
],
|
||||
"ReturnTypes": []
|
||||
},
|
||||
{
|
||||
"ContainingType": "phronCare.API.Controllers.Sales.PeopleController",
|
||||
"Method": "GetById",
|
||||
"RelativePath": "api/People/{id}",
|
||||
"HttpMethod": "GET",
|
||||
"IsController": true,
|
||||
"Order": 0,
|
||||
"Parameters": [
|
||||
{
|
||||
"Name": "id",
|
||||
"Type": "System.Int32",
|
||||
"IsRequired": true
|
||||
}
|
||||
],
|
||||
"ReturnTypes": []
|
||||
},
|
||||
{
|
||||
"ContainingType": "phronCare.API.Controllers.Sales.PeopleController",
|
||||
"Method": "GetAll",
|
||||
"RelativePath": "api/People/all",
|
||||
"HttpMethod": "GET",
|
||||
"IsController": true,
|
||||
"Order": 0,
|
||||
"Parameters": [
|
||||
{
|
||||
"Name": "page",
|
||||
"Type": "System.Int32",
|
||||
"IsRequired": false
|
||||
},
|
||||
{
|
||||
"Name": "pageSize",
|
||||
"Type": "System.Int32",
|
||||
"IsRequired": false
|
||||
}
|
||||
],
|
||||
"ReturnTypes": []
|
||||
},
|
||||
{
|
||||
"ContainingType": "phronCare.API.Controllers.Sales.PeopleController",
|
||||
"Method": "Create",
|
||||
"RelativePath": "api/People/create",
|
||||
"HttpMethod": "POST",
|
||||
"IsController": true,
|
||||
"Order": 0,
|
||||
"Parameters": [
|
||||
{
|
||||
"Name": "person",
|
||||
"Type": "Domain.Entities.EPerson",
|
||||
"IsRequired": true
|
||||
}
|
||||
],
|
||||
"ReturnTypes": []
|
||||
},
|
||||
{
|
||||
"ContainingType": "phronCare.API.Controllers.Sales.PeopleController",
|
||||
"Method": "Delete",
|
||||
"RelativePath": "api/People/delete/{id}",
|
||||
"HttpMethod": "DELETE",
|
||||
"IsController": true,
|
||||
"Order": 0,
|
||||
"Parameters": [
|
||||
{
|
||||
"Name": "id",
|
||||
"Type": "System.Int32",
|
||||
"IsRequired": true
|
||||
}
|
||||
],
|
||||
"ReturnTypes": []
|
||||
},
|
||||
{
|
||||
"ContainingType": "phronCare.API.Controllers.Sales.PeopleController",
|
||||
"Method": "ExportFilteredPeople",
|
||||
"RelativePath": "api/People/exportfiltered",
|
||||
"HttpMethod": "POST",
|
||||
"IsController": true,
|
||||
"Order": 0,
|
||||
"Parameters": [
|
||||
{
|
||||
"Name": "searchParams",
|
||||
"Type": "Domain.Generics.PeopleSearchParams",
|
||||
"IsRequired": true
|
||||
}
|
||||
],
|
||||
"ReturnTypes": []
|
||||
},
|
||||
{
|
||||
"ContainingType": "phronCare.API.Controllers.Sales.PeopleController",
|
||||
"Method": "SearchAsync",
|
||||
"RelativePath": "api/People/search",
|
||||
"HttpMethod": "GET",
|
||||
"IsController": true,
|
||||
"Order": 0,
|
||||
"Parameters": [
|
||||
{
|
||||
"Name": "name",
|
||||
"Type": "System.String",
|
||||
"IsRequired": false
|
||||
},
|
||||
{
|
||||
"Name": "email",
|
||||
"Type": "System.String",
|
||||
"IsRequired": false
|
||||
},
|
||||
{
|
||||
"Name": "page",
|
||||
"Type": "System.Int32",
|
||||
"IsRequired": false
|
||||
},
|
||||
{
|
||||
"Name": "pageSize",
|
||||
"Type": "System.Int32",
|
||||
"IsRequired": false
|
||||
}
|
||||
],
|
||||
"ReturnTypes": []
|
||||
},
|
||||
{
|
||||
"ContainingType": "phronCare.API.Controllers.Sales.PeopleController",
|
||||
"Method": "Update",
|
||||
"RelativePath": "api/People/update",
|
||||
"HttpMethod": "PUT",
|
||||
"IsController": true,
|
||||
"Order": 0,
|
||||
"Parameters": [
|
||||
{
|
||||
"Name": "person",
|
||||
"Type": "Domain.Entities.EPerson",
|
||||
"IsRequired": true
|
||||
}
|
||||
],
|
||||
"ReturnTypes": []
|
||||
},
|
||||
{
|
||||
"ContainingType": "phronCare.API.Controllers.Sales.ProductController",
|
||||
"Method": "GetById",
|
||||
|
||||
208
phronCare.UIBlazor/Pages/Sales/People.razor
Normal file
208
phronCare.UIBlazor/Pages/Sales/People.razor
Normal file
@ -0,0 +1,208 @@
|
||||
@page "/sales/people"
|
||||
@using Domain.Entities
|
||||
@using Domain.Generics
|
||||
@using phronCare.UIBlazor.Services.Sales
|
||||
@inject IToastService toastService
|
||||
@inject NavigationManager Navigation
|
||||
@inject PeopleService peopleService
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-center align-items-center" style="zoom:80%;">
|
||||
<h3 class="card-title m-0">Búsqueda de Vendedores</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body" style="zoom:80%;">
|
||||
<div class="mb-4 space-y-2">
|
||||
<input @bind="SearchParams.Name" placeholder="Nombre" class="border rounded p-1 w-full" />
|
||||
<input @bind="SearchParams.Email" placeholder="Email" class="border rounded p-1 w-full" />
|
||||
|
||||
<button class="btn btn-primary rounded-pill" @onclick="BuscarPersonas">
|
||||
<i class="fas fa-binoculars me-1"></i> Buscar
|
||||
</button>
|
||||
<button class="btn btn-success rounded-pill" @onclick="NuevaPersona">
|
||||
<i class="fas fa-plus me-1"></i> Nueva
|
||||
</button>
|
||||
<button class="btn btn-success rounded-pill" @onclick="ExportarExcel">
|
||||
<i class="fas fa-file-excel me-1"></i> Excel
|
||||
</button>
|
||||
<button class="btn btn-secondary rounded-pill" @onclick="Cancelar">
|
||||
<i class="fas fa-arrow-left me-1"></i> Volver
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div>
|
||||
@if (TablaPersonas != null && TablaPersonas.Any())
|
||||
{
|
||||
<PhTable Columns="TableColumns"
|
||||
Data="TablaPersonas"
|
||||
SelectionField="Id"
|
||||
RowsPerPage="SearchParams.PageSize"
|
||||
RenderButtons="true" Buttons="botones"
|
||||
ShowPageButtons="false"
|
||||
ShowQuickSearch="false"
|
||||
RenderSelect="false" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>No hay resultados.</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-footer d-flex justify-content-center align-items-center" style="zoom:80%;">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<button class="btn btn-secondary rounded-pill" @onclick="PrimeraPagina" disabled="@(SearchParams.Page == 1)">
|
||||
<i class="fas fa-angle-double-left me-1"></i> Primera
|
||||
</button>
|
||||
<button class="btn btn-secondary rounded-pill" @onclick="AnteriorPagina" disabled="@(!PuedeRetroceder)">
|
||||
<i class="fas fa-chevron-left me-1"></i> Anterior
|
||||
</button>
|
||||
<span class="mx-2">
|
||||
Página <strong>@SearchParams.Page</strong> de <strong>@TotalPaginas</strong>
|
||||
</span>
|
||||
<button class="btn btn-secondary rounded-pill" @onclick="SiguientePagina" disabled="@(!PuedeAvanzar)">
|
||||
Siguiente <i class="fas fa-chevron-right ms-1"></i>
|
||||
</button>
|
||||
<button class="btn btn-secondary rounded-pill" @onclick="UltimaPagina" disabled="@(SearchParams.Page == TotalPaginas)">
|
||||
Última <i class="fas fa-angle-double-right ms-1"></i>
|
||||
</button>
|
||||
<div class="d-flex align-items-center ms-3">
|
||||
<input type="number" class="form-control form-control-sm rounded" style="width: 80px;" min="1" max="@TotalPaginas" @bind="PaginaDeseada" />
|
||||
<button class="btn btn-outline-primary btn-sm ms-2 rounded-pill" @onclick="IrAPagina">
|
||||
<i class="fas fa-arrow-right-to-bracket me-1"></i> Ir
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
botones = new List<PhTable.ButtonOptions>
|
||||
{
|
||||
new PhTable.ButtonOptions
|
||||
{
|
||||
Caption = "Editar",
|
||||
ElementClass = "btn btn-dark btn-sm rounded-pill",
|
||||
UrlAction = "/sales/personform/",
|
||||
OnClickAction = async (id) =>
|
||||
{
|
||||
if (int.TryParse(id, out var personId))
|
||||
{
|
||||
Navigation.NavigateTo($"/sales/personform/{personId}");
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private PeopleSearchParams SearchParams = new();
|
||||
private PagedResult<EPerson>? PagedResult;
|
||||
private List<Dictionary<string, object>> TablaPersonas = new();
|
||||
private List<string> TableColumns = new()
|
||||
{
|
||||
"Id", "Nombre", "Email", "Teléfono", "Comision", "Activo"
|
||||
};
|
||||
private int PaginaDeseada = 1;
|
||||
|
||||
private async Task BuscarPersonas()
|
||||
{
|
||||
await CargarPersonas();
|
||||
}
|
||||
|
||||
private async Task CargarPersonas()
|
||||
{
|
||||
PagedResult = await peopleService.SearchPeopleAsync(SearchParams);
|
||||
|
||||
if (PagedResult?.Items is not null)
|
||||
{
|
||||
TablaPersonas = PagedResult.Items.Select(p => new Dictionary<string, object>
|
||||
{
|
||||
{ "Id", p.Id },
|
||||
{ "Nombre", $"{p.Name}" },
|
||||
{ "Email", p.Email ?? string.Empty },
|
||||
{ "Teléfono", p.Phone ?? string.Empty },
|
||||
{ "Comision", p.DefaultCommissionPercent ?? 0 },
|
||||
{ "Activo", p.Active ? "Sí" : "No" }
|
||||
}).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ExportarExcel()
|
||||
{
|
||||
var searchParams = new PeopleSearchParams
|
||||
{
|
||||
Name = SearchParams.Name, // Aquí podés obtener los filtros de los campos en el formulario
|
||||
Email = SearchParams.Email,
|
||||
Page = 1,
|
||||
PageSize = int.MaxValue // Puedes ajustar el tamaño de la página para exportar todos los registros
|
||||
};
|
||||
try
|
||||
{
|
||||
await peopleService.ExportFilteredAsync(searchParams);
|
||||
toastService.ShowSuccess("Exportación completada exitosamente.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
toastService.ShowError($"{ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
private async Task PrimeraPagina()
|
||||
{
|
||||
SearchParams.Page = 1;
|
||||
await BuscarPersonas();
|
||||
}
|
||||
|
||||
private async Task UltimaPagina()
|
||||
{
|
||||
SearchParams.Page = TotalPaginas;
|
||||
await BuscarPersonas();
|
||||
}
|
||||
|
||||
private async Task IrAPagina()
|
||||
{
|
||||
if (PaginaDeseada >= 1 && PaginaDeseada <= TotalPaginas)
|
||||
{
|
||||
SearchParams.Page = PaginaDeseada;
|
||||
await BuscarPersonas();
|
||||
}
|
||||
else
|
||||
{
|
||||
toastService.ShowWarning("Número de página fuera de rango.");
|
||||
}
|
||||
}
|
||||
|
||||
private async Task SiguientePagina() => await CambiarPagina(1);
|
||||
private async Task AnteriorPagina() => await CambiarPagina(-1);
|
||||
|
||||
private async Task CambiarPagina(int delta)
|
||||
{
|
||||
var nuevaPagina = SearchParams.Page + delta;
|
||||
if (nuevaPagina >= 1 && nuevaPagina <= TotalPaginas)
|
||||
{
|
||||
SearchParams.Page = nuevaPagina;
|
||||
await CargarPersonas();
|
||||
}
|
||||
}
|
||||
|
||||
private void NuevaPersona()
|
||||
{
|
||||
Navigation.NavigateTo("/sales/personform/");
|
||||
}
|
||||
|
||||
private void Cancelar()
|
||||
{
|
||||
Navigation.NavigateTo("/DashboardPanel");
|
||||
}
|
||||
|
||||
private bool PuedeRetroceder => PagedResult != null && SearchParams.Page > 1;
|
||||
private bool PuedeAvanzar => PagedResult != null && SearchParams.Page < TotalPaginas;
|
||||
private int TotalPaginas => PagedResult is null ? 1 :
|
||||
(int)Math.Ceiling((double)(PagedResult.TotalItems) / SearchParams.PageSize);
|
||||
|
||||
List<PhTable.ButtonOptions> botones = new();
|
||||
}
|
||||
167
phronCare.UIBlazor/Pages/Sales/PersonForm.razor
Normal file
167
phronCare.UIBlazor/Pages/Sales/PersonForm.razor
Normal file
@ -0,0 +1,167 @@
|
||||
@page "/sales/personform"
|
||||
@page "/sales/personform/{PersonId:int}"
|
||||
|
||||
@using System.ComponentModel.DataAnnotations
|
||||
@using phronCare.UIBlazor.Pages.Shared.Modals
|
||||
@using phronCare.UIBlazor.Services.Sales
|
||||
|
||||
@inject IModalService Modal
|
||||
@inject IToastService toastService
|
||||
@inject PeopleService peopleService
|
||||
@inject NavigationManager Navigation
|
||||
@inject BusinessUnitService businessUnitService
|
||||
|
||||
<div class="card" style="zoom:80%">
|
||||
<div class="card-header d-flex justify-content-center align-items-center">
|
||||
<h3 class="card-title m-0">Información de la Persona</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<EditForm Model="@person" OnValidSubmit="@HandleValidSubmit">
|
||||
<DataAnnotationsValidator />
|
||||
<ValidationSummary />
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label for="Name">Nombre completo:</label>
|
||||
<InputText id="Name" @bind-Value="person.Name" class="form-control" />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="Phone">Teléfono:</label>
|
||||
<InputText id="Phone" @bind-Value="person.Phone" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label for="Email">Email:</label>
|
||||
<InputText id="Email" @bind-Value="person.Email" class="form-control" />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="DefaultCommissionPercent">Porcentaje Comisión (%):</label>
|
||||
<InputNumber id="DefaultCommissionPercent" @bind-Value="person.DefaultCommissionPercent" class="form-control" step="0.01" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label for="BusinessunitsId">Unidad de Negocio:</label>
|
||||
<InputSelect id="BusinessunitsId" @bind-Value="person.BusinessunitsId" class="form-control">
|
||||
<option value="">-- Seleccionar --</option>
|
||||
@foreach (var unit in businessUnits)
|
||||
{
|
||||
<option value="@unit.Id">@unit.Description</option>
|
||||
}
|
||||
</InputSelect>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="PeoplegroupsId">Grupo Comercial (opcional):</label>
|
||||
<InputSelect id="PeoplegroupsId" @bind-Value="person.PeoplegroupsId" class="form-control">
|
||||
<option value="">-- Seleccionar --</option>
|
||||
@foreach (var group in peopleGroups)
|
||||
{
|
||||
<option value="@group.Id">@group.Name</option>
|
||||
}
|
||||
</InputSelect>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-6 d-flex align-items-center justify-content-start">
|
||||
<div class="form-check form-switch">
|
||||
<InputCheckbox id="Active" @bind-Value="person.Active" class="form-check-input" />
|
||||
<label class="form-check-label ms-2" for="Active">Activo</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</EditForm>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
<div class="d-flex justify-content-end align-items-center py-3">
|
||||
<button class="btn btn-primary me-2" type="button" @onclick="HandleValidSubmit" disabled="@isSaving">
|
||||
@(isSaving ? "Guardando..." : "Guardar Persona")
|
||||
</button>
|
||||
<button type="button" class="btn btn-secondary" @onclick="Cancel">Cancelar</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public int? PersonId { get; set; }
|
||||
|
||||
private EPerson person { get; set; } = new();
|
||||
private bool isSaving = false;
|
||||
private string returnUrl = "/sales/people";
|
||||
|
||||
private List<EBusinessUnit> businessUnits = new();
|
||||
private List<EPeopleGroup> peopleGroups = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await LoadBusinessUnits();
|
||||
await LoadPeopleGroups();
|
||||
|
||||
if (PersonId.HasValue)
|
||||
{
|
||||
person = await peopleService.GetPersonByIdAsync(PersonId.Value) ?? new();
|
||||
}
|
||||
}
|
||||
|
||||
private async Task HandleValidSubmit()
|
||||
{
|
||||
var parameters = new ModalParameters();
|
||||
parameters.Add("Message", "¿Desea guardar los cambios de la persona?");
|
||||
var modal = Modal.Show<ConfirmModal>("Confirmación", parameters);
|
||||
var result = await modal.Result;
|
||||
|
||||
if (result.Cancelled)
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
isSaving = true;
|
||||
|
||||
if (PersonId.HasValue)
|
||||
{
|
||||
await peopleService.UpdatePersonAsync(person);
|
||||
}
|
||||
else
|
||||
{
|
||||
await peopleService.CreatePersonAsync(person);
|
||||
}
|
||||
|
||||
toastService.ShowSuccess("Persona guardada exitosamente.");
|
||||
Navigation.NavigateTo(returnUrl);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
toastService.ShowError($"Error: {ex.Message}");
|
||||
}
|
||||
finally
|
||||
{
|
||||
isSaving = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void Cancel()
|
||||
{
|
||||
Navigation.NavigateTo(returnUrl);
|
||||
}
|
||||
|
||||
private async Task LoadBusinessUnits()
|
||||
{
|
||||
businessUnits = await businessUnitService.GetAllAsync();
|
||||
}
|
||||
|
||||
private async Task LoadPeopleGroups()
|
||||
{
|
||||
// Simulamos carga de Grupos Comerciales. Debería venir de un servicio real.
|
||||
peopleGroups = new List<EPeopleGroup>
|
||||
{
|
||||
new EPeopleGroup { Id = 1, Name = "Grupo 1" },
|
||||
new EPeopleGroup { Id = 2, Name = "Grupo 2" },
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -7,7 +7,6 @@ using phronCare.UIBlazor.Services.UI;
|
||||
using Blazored.Modal;
|
||||
using Blazored.Toast;
|
||||
using phronCare.UIBlazor.Services.Tickets;
|
||||
using phronCare.UIBlazor.Shared;
|
||||
using phronCare.UIBlazor.Services.Sales;
|
||||
|
||||
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||
@ -48,6 +47,7 @@ builder.Services.AddScoped<InstitutionService>();
|
||||
builder.Services.AddScoped<ProductService>();
|
||||
builder.Services.AddScoped<BusinessUnitService>();
|
||||
builder.Services.AddScoped<ProfessionalService>();
|
||||
builder.Services.AddScoped<PeopleService>();
|
||||
builder.Services.AddScoped<ProfessionalSpecialtyService>();
|
||||
builder.Services.AddScoped<ProductCategoryService>();
|
||||
#endregion
|
||||
|
||||
21
phronCare.UIBlazor/Services/Sales/PeopleGroupService.cs
Normal file
21
phronCare.UIBlazor/Services/Sales/PeopleGroupService.cs
Normal file
@ -0,0 +1,21 @@
|
||||
using System.Net.Http.Json;
|
||||
using Domain.Entities;
|
||||
|
||||
namespace phronCare.UIBlazor.Services.People
|
||||
{
|
||||
public class PeopleGroupService
|
||||
{
|
||||
private readonly HttpClient _http;
|
||||
|
||||
public PeopleGroupService(HttpClient http)
|
||||
{
|
||||
_http = http;
|
||||
}
|
||||
|
||||
public async Task<List<EPeopleGroup>> GetAllAsync()
|
||||
{
|
||||
var result = await _http.GetFromJsonAsync<List<EPeopleGroup>>("/api/PeopleGroup/All");
|
||||
return result ?? new List<EPeopleGroup>();
|
||||
}
|
||||
}
|
||||
}
|
||||
94
phronCare.UIBlazor/Services/Sales/PeopleService.cs
Normal file
94
phronCare.UIBlazor/Services/Sales/PeopleService.cs
Normal file
@ -0,0 +1,94 @@
|
||||
using Domain.Entities;
|
||||
using Domain.Generics;
|
||||
using System.Net.Http.Json;
|
||||
using System.Text.Json;
|
||||
using System.Text;
|
||||
using Microsoft.JSInterop;
|
||||
using System.Reflection;
|
||||
|
||||
namespace phronCare.UIBlazor.Services.Sales
|
||||
{
|
||||
public class PeopleService
|
||||
{
|
||||
private readonly HttpClient _http;
|
||||
private readonly IJSRuntime _js;
|
||||
|
||||
public PeopleService(HttpClient http, IJSRuntime js)
|
||||
{
|
||||
_http = http;
|
||||
_js = js;
|
||||
}
|
||||
|
||||
// Buscar personas
|
||||
public async Task<PagedResult<EPerson>?> SearchPeopleAsync(PeopleSearchParams searchParams)
|
||||
{
|
||||
var url = $"api/People/search?" +
|
||||
$"name={searchParams.Name}&" +
|
||||
$"email={searchParams.Email}&" +
|
||||
$"page={searchParams.Page}&" +
|
||||
$"pageSize={searchParams.PageSize}";
|
||||
return await _http.GetFromJsonAsync<PagedResult<EPerson>>(url);
|
||||
}
|
||||
|
||||
public async Task ExportFilteredAsync(PeopleSearchParams searchParams)
|
||||
{
|
||||
try
|
||||
{
|
||||
var content = new StringContent(JsonSerializer.Serialize(searchParams), Encoding.UTF8, "application/json");
|
||||
var response = await _http.PostAsync("api/People/exportfiltered", content);
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var errorContent = await response.Content.ReadAsStringAsync();
|
||||
throw new Exception(errorContent);
|
||||
}
|
||||
|
||||
var bytes = await response.Content.ReadAsByteArrayAsync();
|
||||
var base64 = Convert.ToBase64String(bytes);
|
||||
var timestamp = DateTime.Now.ToString("yyyyMMddHHmm");
|
||||
var fileName = $"{timestamp}_vendedores.xlsx";
|
||||
await _js.InvokeVoidAsync("saveAsFile", fileName, base64);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
var methodName = MethodBase.GetCurrentMethod()?.Name ?? "UnknownMethod";
|
||||
var message = ex.Message ?? "No message provided";
|
||||
throw new Exception($"{message}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
// Obtener una persona por Id (para formulario)
|
||||
public async Task<EPerson?> GetPersonByIdAsync(int id)
|
||||
{
|
||||
return await _http.GetFromJsonAsync<EPerson>($"api/People/{id}");
|
||||
}
|
||||
|
||||
// Crear nueva persona
|
||||
public async Task CreatePersonAsync(EPerson person)
|
||||
{
|
||||
var content = new StringContent(JsonSerializer.Serialize(person), Encoding.UTF8, "application/json");
|
||||
var response = await _http.PostAsync("api/People/create", content); // CAMBIADO
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var errorContent = await response.Content.ReadAsStringAsync();
|
||||
throw new Exception(errorContent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Actualizar persona existente
|
||||
public async Task UpdatePersonAsync(EPerson person)
|
||||
{
|
||||
var content = new StringContent(JsonSerializer.Serialize(person), Encoding.UTF8, "application/json");
|
||||
var response = await _http.PutAsync("api/People/update", content); // CAMBIADO
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var errorContent = await response.Content.ReadAsStringAsync();
|
||||
throw new Exception(errorContent);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -86,6 +86,11 @@
|
||||
<li aria-hidden="true"></li> Profesionales
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-1">
|
||||
<NavLink class="nav-link" href="sales/people/">
|
||||
<li aria-hidden="true"></li> Vendedores
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-1">
|
||||
<NavLink class="nav-link" href="sales/institutions/">
|
||||
<li aria-hidden="true"></li> Instituciones
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -99,6 +99,9 @@
|
||||
"projectReferences": {
|
||||
"C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Domain\\Domain.csproj": {
|
||||
"projectPath": "C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Domain\\Domain.csproj"
|
||||
},
|
||||
"C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Transversal\\Transversal.csproj": {
|
||||
"projectPath": "C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Transversal\\Transversal.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -183,6 +186,77 @@
|
||||
"#import": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Transversal\\Transversal.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Transversal\\Transversal.csproj",
|
||||
"projectName": "Transversal",
|
||||
"projectPath": "C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Transversal\\Transversal.csproj",
|
||||
"packagesPath": "C:\\Users\\maski\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Transversal\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\maski\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net8.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.200"
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"dependencies": {
|
||||
"EPPlus": {
|
||||
"target": "Package",
|
||||
"version": "[7.5.2, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.201/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)system.text.json\8.0.0\buildTransitive\net6.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\8.0.0\buildTransitive\net6.0\System.Text.Json.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.net.sdk.webassembly.pack\9.0.3\build\Microsoft.NET.Sdk.WebAssembly.Pack.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.net.sdk.webassembly.pack\9.0.3\build\Microsoft.NET.Sdk.WebAssembly.Pack.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.1\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.1\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||
|
||||
@ -43,6 +43,49 @@
|
||||
"buildMultiTargeting/Blazored.Toast.props": {}
|
||||
}
|
||||
},
|
||||
"EPPlus/7.5.2": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"EPPlus.System.Drawing": "7.5.0",
|
||||
"Microsoft.Extensions.Configuration.Json": "8.0.1",
|
||||
"Microsoft.IO.RecyclableMemoryStream": "3.0.1",
|
||||
"System.ComponentModel.Annotations": "5.0.0",
|
||||
"System.Security.Cryptography.Pkcs": "8.0.1",
|
||||
"System.Text.Encoding.CodePages": "8.0.0"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/EPPlus.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/EPPlus.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"EPPlus.Interfaces/7.5.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net8.0/EPPlus.Interfaces.dll": {}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/EPPlus.Interfaces.dll": {}
|
||||
}
|
||||
},
|
||||
"EPPlus.System.Drawing/7.5.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"EPPlus.Interfaces": "7.5.0",
|
||||
"System.Drawing.Common": "8.0.4"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/EPPlus.System.Drawing.dll": {}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/EPPlus.System.Drawing.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/8.0.6": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
@ -238,7 +281,7 @@
|
||||
"buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/8.0.0": {
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/8.0.1": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "8.0.0",
|
||||
@ -261,14 +304,13 @@
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Json/8.0.0": {
|
||||
"Microsoft.Extensions.Configuration.Json/8.0.1": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "8.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": "8.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
|
||||
"System.Text.Json": "8.0.0"
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": "8.0.1",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/Microsoft.Extensions.Configuration.Json.dll": {
|
||||
@ -451,6 +493,19 @@
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.IO.RecyclableMemoryStream/3.0.1": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.JSInterop/8.0.6": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
@ -493,6 +548,60 @@
|
||||
"build/Microsoft.NET.Sdk.WebAssembly.Pack.targets": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents/8.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net8.0/Microsoft.Win32.SystemEvents.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/Microsoft.Win32.SystemEvents.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/win/lib/net8.0/Microsoft.Win32.SystemEvents.dll": {
|
||||
"assetType": "runtime",
|
||||
"rid": "win"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"ref/netstandard2.1/System.ComponentModel.Annotations.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/System.ComponentModel.Annotations.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Drawing.Common/8.0.4": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.Win32.SystemEvents": "8.0.0"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/System.Drawing.Common.dll": {
|
||||
"related": ".pdb;.xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/System.Drawing.Common.dll": {
|
||||
"related": ".pdb;.xml"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"System.IO.Pipelines/8.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
@ -509,15 +618,15 @@
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"System.Text.Encodings.Web/8.0.0": {
|
||||
"System.Security.Cryptography.Pkcs/8.0.1": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net8.0/System.Text.Encodings.Web.dll": {
|
||||
"lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/System.Text.Encodings.Web.dll": {
|
||||
"lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
@ -525,29 +634,32 @@
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": {
|
||||
"runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
|
||||
"assetType": "runtime",
|
||||
"rid": "browser"
|
||||
"rid": "win"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Json/8.0.0": {
|
||||
"System.Text.Encoding.CodePages/8.0.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "8.0.0"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/System.Text.Json.dll": {
|
||||
"lib/net8.0/System.Text.Encoding.CodePages.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/System.Text.Json.dll": {
|
||||
"lib/net8.0/System.Text.Encoding.CodePages.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"buildTransitive/net6.0/System.Text.Json.targets": {}
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/win/lib/net8.0/System.Text.Encoding.CodePages.dll": {
|
||||
"assetType": "runtime",
|
||||
"rid": "win"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Domain/1.0.0": {
|
||||
@ -559,6 +671,19 @@
|
||||
"runtime": {
|
||||
"bin/placeholder/Domain.dll": {}
|
||||
}
|
||||
},
|
||||
"Transversal/1.0.0": {
|
||||
"type": "project",
|
||||
"framework": ".NETCoreApp,Version=v8.0",
|
||||
"dependencies": {
|
||||
"EPPlus": "7.5.2"
|
||||
},
|
||||
"compile": {
|
||||
"bin/placeholder/Transversal.dll": {}
|
||||
},
|
||||
"runtime": {
|
||||
"bin/placeholder/Transversal.dll": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"net8.0/browser-wasm": {
|
||||
@ -603,6 +728,49 @@
|
||||
"buildMultiTargeting/Blazored.Toast.props": {}
|
||||
}
|
||||
},
|
||||
"EPPlus/7.5.2": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"EPPlus.System.Drawing": "7.5.0",
|
||||
"Microsoft.Extensions.Configuration.Json": "8.0.1",
|
||||
"Microsoft.IO.RecyclableMemoryStream": "3.0.1",
|
||||
"System.ComponentModel.Annotations": "5.0.0",
|
||||
"System.Security.Cryptography.Pkcs": "8.0.1",
|
||||
"System.Text.Encoding.CodePages": "8.0.0"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/EPPlus.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/EPPlus.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"EPPlus.Interfaces/7.5.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net8.0/EPPlus.Interfaces.dll": {}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/EPPlus.Interfaces.dll": {}
|
||||
}
|
||||
},
|
||||
"EPPlus.System.Drawing/7.5.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"EPPlus.Interfaces": "7.5.0",
|
||||
"System.Drawing.Common": "8.0.4"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/EPPlus.System.Drawing.dll": {}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/EPPlus.System.Drawing.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/8.0.6": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
@ -798,7 +966,7 @@
|
||||
"buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/8.0.0": {
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/8.0.1": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "8.0.0",
|
||||
@ -821,14 +989,13 @@
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Json/8.0.0": {
|
||||
"Microsoft.Extensions.Configuration.Json/8.0.1": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "8.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": "8.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
|
||||
"System.Text.Json": "8.0.0"
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": "8.0.1",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/Microsoft.Extensions.Configuration.Json.dll": {
|
||||
@ -1011,6 +1178,19 @@
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.IO.RecyclableMemoryStream/3.0.1": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.JSInterop/8.0.6": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
@ -1053,6 +1233,54 @@
|
||||
"build/Microsoft.NET.Sdk.WebAssembly.Pack.targets": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents/8.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net8.0/Microsoft.Win32.SystemEvents.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/Microsoft.Win32.SystemEvents.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"ref/netstandard2.1/System.ComponentModel.Annotations.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/System.ComponentModel.Annotations.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Drawing.Common/8.0.4": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.Win32.SystemEvents": "8.0.0"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/System.Drawing.Common.dll": {
|
||||
"related": ".pdb;.xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/System.Drawing.Common.dll": {
|
||||
"related": ".pdb;.xml"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"System.IO.Pipelines/8.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
@ -1069,15 +1297,15 @@
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"System.Text.Encodings.Web/8.0.0": {
|
||||
"System.Security.Cryptography.Pkcs/8.0.1": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/net8.0/System.Text.Encodings.Web.dll": {
|
||||
"lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": {
|
||||
"lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
@ -1085,23 +1313,20 @@
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"System.Text.Json/8.0.0": {
|
||||
"System.Text.Encoding.CodePages/8.0.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "8.0.0"
|
||||
},
|
||||
"compile": {
|
||||
"lib/net8.0/System.Text.Json.dll": {
|
||||
"lib/net8.0/System.Text.Encoding.CodePages.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/System.Text.Json.dll": {
|
||||
"lib/net8.0/System.Text.Encoding.CodePages.dll": {
|
||||
"related": ".xml"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"buildTransitive/net6.0/System.Text.Json.targets": {}
|
||||
"buildTransitive/net6.0/_._": {}
|
||||
}
|
||||
},
|
||||
"Domain/1.0.0": {
|
||||
@ -1113,6 +1338,19 @@
|
||||
"runtime": {
|
||||
"bin/placeholder/Domain.dll": {}
|
||||
}
|
||||
},
|
||||
"Transversal/1.0.0": {
|
||||
"type": "project",
|
||||
"framework": ".NETCoreApp,Version=v8.0",
|
||||
"dependencies": {
|
||||
"EPPlus": "7.5.2"
|
||||
},
|
||||
"compile": {
|
||||
"bin/placeholder/Transversal.dll": {}
|
||||
},
|
||||
"runtime": {
|
||||
"bin/placeholder/Transversal.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1158,6 +1396,77 @@
|
||||
"staticwebassets/Blazored.Toast.bundle.scp.css"
|
||||
]
|
||||
},
|
||||
"EPPlus/7.5.2": {
|
||||
"sha512": "qHJurPvgWoheHyyam53NV8d2CiOO2q88Rg/Lk0wSYwi/aoGDtzYihTMCHeTwGM9zHZnnI3aVLu482SODN+HB4g==",
|
||||
"type": "package",
|
||||
"path": "epplus/7.5.2",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"EPPlusLogo.png",
|
||||
"epplus.7.5.2.nupkg.sha512",
|
||||
"epplus.nuspec",
|
||||
"lib/net35/EPPlus.dll",
|
||||
"lib/net35/EPPlus.xml",
|
||||
"lib/net462/EPPlus.dll",
|
||||
"lib/net462/EPPlus.xml",
|
||||
"lib/net6.0/EPPlus.dll",
|
||||
"lib/net6.0/EPPlus.xml",
|
||||
"lib/net7.0/EPPlus.dll",
|
||||
"lib/net7.0/EPPlus.xml",
|
||||
"lib/net8.0/EPPlus.dll",
|
||||
"lib/net8.0/EPPlus.xml",
|
||||
"lib/netstandard2.0/EPPlus.dll",
|
||||
"lib/netstandard2.0/EPPlus.xml",
|
||||
"lib/netstandard2.1/EPPlus.dll",
|
||||
"lib/netstandard2.1/EPPlus.xml",
|
||||
"license.md",
|
||||
"readme.md",
|
||||
"readme.txt"
|
||||
]
|
||||
},
|
||||
"EPPlus.Interfaces/7.5.0": {
|
||||
"sha512": "mGLKgdIKkXRYIu+HIGmZUngVAAlPzIQgI/KqG10m6P5P2112l6p/5dDa35UHu4GV4Qevw0Pq9PxAymrrrl4tzA==",
|
||||
"type": "package",
|
||||
"path": "epplus.interfaces/7.5.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"EPPlusLogo.png",
|
||||
"epplus.interfaces.7.5.0.nupkg.sha512",
|
||||
"epplus.interfaces.nuspec",
|
||||
"lib/net35/EPPlus.Interfaces.dll",
|
||||
"lib/net462/EPPlus.Interfaces.dll",
|
||||
"lib/net6.0/EPPlus.Interfaces.dll",
|
||||
"lib/net7.0/EPPlus.Interfaces.dll",
|
||||
"lib/net8.0/EPPlus.Interfaces.dll",
|
||||
"lib/netstandard2.0/EPPlus.Interfaces.dll",
|
||||
"lib/netstandard2.1/EPPlus.Interfaces.dll",
|
||||
"license.md",
|
||||
"readme.md"
|
||||
]
|
||||
},
|
||||
"EPPlus.System.Drawing/7.5.0": {
|
||||
"sha512": "cgwstM12foFisisURUyxwJOWHMD/rZxPSyBXFsCOFayaKq0oKlOs1mCTueKNNIlpPDG1no9vcaQiJgZXFM4KPA==",
|
||||
"type": "package",
|
||||
"path": "epplus.system.drawing/7.5.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"EPPlusLogo.png",
|
||||
"epplus.system.drawing.7.5.0.nupkg.sha512",
|
||||
"epplus.system.drawing.nuspec",
|
||||
"lib/net35/EPPlus.System.Drawing.dll",
|
||||
"lib/net462/EPPlus.System.Drawing.dll",
|
||||
"lib/net6.0/EPPlus.System.Drawing.dll",
|
||||
"lib/net7.0/EPPlus.System.Drawing.dll",
|
||||
"lib/net8.0/EPPlus.System.Drawing.dll",
|
||||
"lib/netstandard2.0/EPPlus.System.Drawing.dll",
|
||||
"lib/netstandard2.1/EPPlus.System.Drawing.dll",
|
||||
"license.md",
|
||||
"readme.md"
|
||||
]
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/8.0.6": {
|
||||
"sha512": "H1CSbD7UeSPsrJSUpvbms6SqWMa5y8ch4Rw+gyHh2uztOEb20fTP2r0AUnStn1Q9WYghikiDO5wzkgV+n6KC2Q==",
|
||||
"type": "package",
|
||||
@ -1557,10 +1866,10 @@
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/8.0.0": {
|
||||
"sha512": "McP+Lz/EKwvtCv48z0YImw+L1gi1gy5rHhNaNIY2CrjloV+XY8gydT8DjMR6zWeL13AFK+DioVpppwAuO1Gi1w==",
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/8.0.1": {
|
||||
"sha512": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==",
|
||||
"type": "package",
|
||||
"path": "microsoft.extensions.configuration.fileextensions/8.0.0",
|
||||
"path": "microsoft.extensions.configuration.fileextensions/8.0.1",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
@ -1582,15 +1891,15 @@
|
||||
"lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.xml",
|
||||
"lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll",
|
||||
"lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.xml",
|
||||
"microsoft.extensions.configuration.fileextensions.8.0.0.nupkg.sha512",
|
||||
"microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512",
|
||||
"microsoft.extensions.configuration.fileextensions.nuspec",
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Json/8.0.0": {
|
||||
"sha512": "C2wqUoh9OmRL1akaCcKSTmRU8z0kckfImG7zLNI8uyi47Lp+zd5LWAD17waPQEqCz3ioWOCrFUo+JJuoeZLOBw==",
|
||||
"Microsoft.Extensions.Configuration.Json/8.0.1": {
|
||||
"sha512": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==",
|
||||
"type": "package",
|
||||
"path": "microsoft.extensions.configuration.json/8.0.0",
|
||||
"path": "microsoft.extensions.configuration.json/8.0.1",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
@ -1614,7 +1923,7 @@
|
||||
"lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.xml",
|
||||
"lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll",
|
||||
"lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.xml",
|
||||
"microsoft.extensions.configuration.json.8.0.0.nupkg.sha512",
|
||||
"microsoft.extensions.configuration.json.8.0.1.nupkg.sha512",
|
||||
"microsoft.extensions.configuration.json.nuspec",
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
@ -1953,6 +2262,24 @@
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"Microsoft.IO.RecyclableMemoryStream/3.0.1": {
|
||||
"sha512": "s/s20YTVY9r9TPfTrN5g8zPF1YhwxyqO6PxUkrYTGI2B+OGPe9AdajWZrLhFqXIvqIW23fnUE4+ztrUWNU1+9g==",
|
||||
"type": "package",
|
||||
"path": "microsoft.io.recyclablememorystream/3.0.1",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"README.md",
|
||||
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll",
|
||||
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.xml",
|
||||
"lib/netstandard2.0/Microsoft.IO.RecyclableMemoryStream.dll",
|
||||
"lib/netstandard2.0/Microsoft.IO.RecyclableMemoryStream.xml",
|
||||
"lib/netstandard2.1/Microsoft.IO.RecyclableMemoryStream.dll",
|
||||
"lib/netstandard2.1/Microsoft.IO.RecyclableMemoryStream.xml",
|
||||
"microsoft.io.recyclablememorystream.3.0.1.nupkg.sha512",
|
||||
"microsoft.io.recyclablememorystream.nuspec"
|
||||
]
|
||||
},
|
||||
"Microsoft.JSInterop/8.0.6": {
|
||||
"sha512": "E1djWS3d41fcd++7sGlbYhOHde5Pb0oBpOcNvUbn+1ga/yCvsjzUfbd/tDRg1qacNKS0iwKWYOIqTZxJnh99dQ==",
|
||||
"type": "package",
|
||||
@ -2076,6 +2403,171 @@
|
||||
"tools/net9.0/Microsoft.NET.WebAssembly.Webcil.dll"
|
||||
]
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents/8.0.0": {
|
||||
"sha512": "9opKRyOKMCi2xJ7Bj7kxtZ1r9vbzosMvRrdEhVhDz8j8MoBGgB+WmC94yH839NPH+BclAjtQ/pyagvi/8gDLkw==",
|
||||
"type": "package",
|
||||
"path": "microsoft.win32.systemevents/8.0.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"Icon.png",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"buildTransitive/net461/Microsoft.Win32.SystemEvents.targets",
|
||||
"buildTransitive/net462/_._",
|
||||
"buildTransitive/net6.0/_._",
|
||||
"buildTransitive/netcoreapp2.0/Microsoft.Win32.SystemEvents.targets",
|
||||
"lib/net462/Microsoft.Win32.SystemEvents.dll",
|
||||
"lib/net462/Microsoft.Win32.SystemEvents.xml",
|
||||
"lib/net6.0/Microsoft.Win32.SystemEvents.dll",
|
||||
"lib/net6.0/Microsoft.Win32.SystemEvents.xml",
|
||||
"lib/net7.0/Microsoft.Win32.SystemEvents.dll",
|
||||
"lib/net7.0/Microsoft.Win32.SystemEvents.xml",
|
||||
"lib/net8.0/Microsoft.Win32.SystemEvents.dll",
|
||||
"lib/net8.0/Microsoft.Win32.SystemEvents.xml",
|
||||
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll",
|
||||
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.xml",
|
||||
"microsoft.win32.systemevents.8.0.0.nupkg.sha512",
|
||||
"microsoft.win32.systemevents.nuspec",
|
||||
"runtimes/win/lib/net6.0/Microsoft.Win32.SystemEvents.dll",
|
||||
"runtimes/win/lib/net6.0/Microsoft.Win32.SystemEvents.xml",
|
||||
"runtimes/win/lib/net7.0/Microsoft.Win32.SystemEvents.dll",
|
||||
"runtimes/win/lib/net7.0/Microsoft.Win32.SystemEvents.xml",
|
||||
"runtimes/win/lib/net8.0/Microsoft.Win32.SystemEvents.dll",
|
||||
"runtimes/win/lib/net8.0/Microsoft.Win32.SystemEvents.xml",
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {
|
||||
"sha512": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==",
|
||||
"type": "package",
|
||||
"path": "system.componentmodel.annotations/5.0.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"Icon.png",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"lib/MonoAndroid10/_._",
|
||||
"lib/MonoTouch10/_._",
|
||||
"lib/net45/_._",
|
||||
"lib/net461/System.ComponentModel.Annotations.dll",
|
||||
"lib/netcore50/System.ComponentModel.Annotations.dll",
|
||||
"lib/netstandard1.4/System.ComponentModel.Annotations.dll",
|
||||
"lib/netstandard2.0/System.ComponentModel.Annotations.dll",
|
||||
"lib/netstandard2.1/System.ComponentModel.Annotations.dll",
|
||||
"lib/netstandard2.1/System.ComponentModel.Annotations.xml",
|
||||
"lib/portable-net45+win8/_._",
|
||||
"lib/win8/_._",
|
||||
"lib/xamarinios10/_._",
|
||||
"lib/xamarinmac20/_._",
|
||||
"lib/xamarintvos10/_._",
|
||||
"lib/xamarinwatchos10/_._",
|
||||
"ref/MonoAndroid10/_._",
|
||||
"ref/MonoTouch10/_._",
|
||||
"ref/net45/_._",
|
||||
"ref/net461/System.ComponentModel.Annotations.dll",
|
||||
"ref/net461/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/System.ComponentModel.Annotations.dll",
|
||||
"ref/netcore50/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/de/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/es/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/fr/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/it/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/ja/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/ko/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/ru/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/zh-hans/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcore50/zh-hant/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard1.1/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/de/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/es/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/fr/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/it/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/ja/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/ko/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/ru/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/zh-hans/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.1/zh-hant/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard1.3/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/de/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/es/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/fr/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/it/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/ja/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/ko/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/ru/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/zh-hans/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.3/zh-hant/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard1.4/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/de/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/es/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/fr/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/it/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/ja/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/ko/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/ru/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/zh-hans/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard1.4/zh-hant/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard2.0/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard2.0/System.ComponentModel.Annotations.xml",
|
||||
"ref/netstandard2.1/System.ComponentModel.Annotations.dll",
|
||||
"ref/netstandard2.1/System.ComponentModel.Annotations.xml",
|
||||
"ref/portable-net45+win8/_._",
|
||||
"ref/win8/_._",
|
||||
"ref/xamarinios10/_._",
|
||||
"ref/xamarinmac20/_._",
|
||||
"ref/xamarintvos10/_._",
|
||||
"ref/xamarinwatchos10/_._",
|
||||
"system.componentmodel.annotations.5.0.0.nupkg.sha512",
|
||||
"system.componentmodel.annotations.nuspec",
|
||||
"useSharedDesignerContext.txt",
|
||||
"version.txt"
|
||||
]
|
||||
},
|
||||
"System.Drawing.Common/8.0.4": {
|
||||
"sha512": "3G4xpa8mUYGzEF0HlswlBArAFywHJIzsZoB5hU4yMlnYHaabj/lg019BwbyyYBxj0aoM7Cz+jdlgUemeno9LOQ==",
|
||||
"type": "package",
|
||||
"path": "system.drawing.common/8.0.4",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"Icon.png",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"buildTransitive/net461/System.Drawing.Common.targets",
|
||||
"buildTransitive/net462/_._",
|
||||
"buildTransitive/net6.0/_._",
|
||||
"buildTransitive/netcoreapp2.0/System.Drawing.Common.targets",
|
||||
"lib/MonoAndroid10/_._",
|
||||
"lib/MonoTouch10/_._",
|
||||
"lib/net462/System.Drawing.Common.dll",
|
||||
"lib/net462/System.Drawing.Common.pdb",
|
||||
"lib/net462/System.Drawing.Common.xml",
|
||||
"lib/net6.0/System.Drawing.Common.dll",
|
||||
"lib/net6.0/System.Drawing.Common.pdb",
|
||||
"lib/net6.0/System.Drawing.Common.xml",
|
||||
"lib/net7.0/System.Drawing.Common.dll",
|
||||
"lib/net7.0/System.Drawing.Common.pdb",
|
||||
"lib/net7.0/System.Drawing.Common.xml",
|
||||
"lib/net8.0/System.Drawing.Common.dll",
|
||||
"lib/net8.0/System.Drawing.Common.pdb",
|
||||
"lib/net8.0/System.Drawing.Common.xml",
|
||||
"lib/netstandard2.0/System.Drawing.Common.dll",
|
||||
"lib/netstandard2.0/System.Drawing.Common.pdb",
|
||||
"lib/netstandard2.0/System.Drawing.Common.xml",
|
||||
"lib/xamarinios10/_._",
|
||||
"lib/xamarinmac20/_._",
|
||||
"lib/xamarintvos10/_._",
|
||||
"lib/xamarinwatchos10/_._",
|
||||
"system.drawing.common.8.0.4.nupkg.sha512",
|
||||
"system.drawing.common.nuspec",
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"System.IO.Pipelines/8.0.0": {
|
||||
"sha512": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==",
|
||||
"type": "package",
|
||||
@ -2105,45 +2597,47 @@
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"System.Text.Encodings.Web/8.0.0": {
|
||||
"sha512": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
|
||||
"System.Security.Cryptography.Pkcs/8.0.1": {
|
||||
"sha512": "CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA==",
|
||||
"type": "package",
|
||||
"path": "system.text.encodings.web/8.0.0",
|
||||
"path": "system.security.cryptography.pkcs/8.0.1",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"Icon.png",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"buildTransitive/net461/System.Text.Encodings.Web.targets",
|
||||
"buildTransitive/net461/System.Security.Cryptography.Pkcs.targets",
|
||||
"buildTransitive/net462/_._",
|
||||
"buildTransitive/net6.0/_._",
|
||||
"buildTransitive/netcoreapp2.0/System.Text.Encodings.Web.targets",
|
||||
"lib/net462/System.Text.Encodings.Web.dll",
|
||||
"lib/net462/System.Text.Encodings.Web.xml",
|
||||
"lib/net6.0/System.Text.Encodings.Web.dll",
|
||||
"lib/net6.0/System.Text.Encodings.Web.xml",
|
||||
"lib/net7.0/System.Text.Encodings.Web.dll",
|
||||
"lib/net7.0/System.Text.Encodings.Web.xml",
|
||||
"lib/net8.0/System.Text.Encodings.Web.dll",
|
||||
"lib/net8.0/System.Text.Encodings.Web.xml",
|
||||
"lib/netstandard2.0/System.Text.Encodings.Web.dll",
|
||||
"lib/netstandard2.0/System.Text.Encodings.Web.xml",
|
||||
"runtimes/browser/lib/net6.0/System.Text.Encodings.Web.dll",
|
||||
"runtimes/browser/lib/net6.0/System.Text.Encodings.Web.xml",
|
||||
"runtimes/browser/lib/net7.0/System.Text.Encodings.Web.dll",
|
||||
"runtimes/browser/lib/net7.0/System.Text.Encodings.Web.xml",
|
||||
"runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll",
|
||||
"runtimes/browser/lib/net8.0/System.Text.Encodings.Web.xml",
|
||||
"system.text.encodings.web.8.0.0.nupkg.sha512",
|
||||
"system.text.encodings.web.nuspec",
|
||||
"buildTransitive/netcoreapp2.0/System.Security.Cryptography.Pkcs.targets",
|
||||
"lib/net462/System.Security.Cryptography.Pkcs.dll",
|
||||
"lib/net462/System.Security.Cryptography.Pkcs.xml",
|
||||
"lib/net6.0/System.Security.Cryptography.Pkcs.dll",
|
||||
"lib/net6.0/System.Security.Cryptography.Pkcs.xml",
|
||||
"lib/net7.0/System.Security.Cryptography.Pkcs.dll",
|
||||
"lib/net7.0/System.Security.Cryptography.Pkcs.xml",
|
||||
"lib/net8.0/System.Security.Cryptography.Pkcs.dll",
|
||||
"lib/net8.0/System.Security.Cryptography.Pkcs.xml",
|
||||
"lib/netstandard2.0/System.Security.Cryptography.Pkcs.dll",
|
||||
"lib/netstandard2.0/System.Security.Cryptography.Pkcs.xml",
|
||||
"lib/netstandard2.1/System.Security.Cryptography.Pkcs.dll",
|
||||
"lib/netstandard2.1/System.Security.Cryptography.Pkcs.xml",
|
||||
"runtimes/win/lib/net6.0/System.Security.Cryptography.Pkcs.dll",
|
||||
"runtimes/win/lib/net6.0/System.Security.Cryptography.Pkcs.xml",
|
||||
"runtimes/win/lib/net7.0/System.Security.Cryptography.Pkcs.dll",
|
||||
"runtimes/win/lib/net7.0/System.Security.Cryptography.Pkcs.xml",
|
||||
"runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll",
|
||||
"runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.xml",
|
||||
"system.security.cryptography.pkcs.8.0.1.nupkg.sha512",
|
||||
"system.security.cryptography.pkcs.nuspec",
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
"System.Text.Json/8.0.0": {
|
||||
"sha512": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==",
|
||||
"System.Text.Encoding.CodePages/8.0.0": {
|
||||
"sha512": "OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==",
|
||||
"type": "package",
|
||||
"path": "system.text.json/8.0.0",
|
||||
"path": "system.text.encoding.codepages/8.0.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
@ -2151,65 +2645,34 @@
|
||||
"LICENSE.TXT",
|
||||
"PACKAGE.md",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll",
|
||||
"buildTransitive/net461/System.Text.Json.targets",
|
||||
"buildTransitive/net462/System.Text.Json.targets",
|
||||
"buildTransitive/net6.0/System.Text.Json.targets",
|
||||
"buildTransitive/netcoreapp2.0/System.Text.Json.targets",
|
||||
"buildTransitive/netstandard2.0/System.Text.Json.targets",
|
||||
"lib/net462/System.Text.Json.dll",
|
||||
"lib/net462/System.Text.Json.xml",
|
||||
"lib/net6.0/System.Text.Json.dll",
|
||||
"lib/net6.0/System.Text.Json.xml",
|
||||
"lib/net7.0/System.Text.Json.dll",
|
||||
"lib/net7.0/System.Text.Json.xml",
|
||||
"lib/net8.0/System.Text.Json.dll",
|
||||
"lib/net8.0/System.Text.Json.xml",
|
||||
"lib/netstandard2.0/System.Text.Json.dll",
|
||||
"lib/netstandard2.0/System.Text.Json.xml",
|
||||
"system.text.json.8.0.0.nupkg.sha512",
|
||||
"system.text.json.nuspec",
|
||||
"buildTransitive/net461/System.Text.Encoding.CodePages.targets",
|
||||
"buildTransitive/net462/_._",
|
||||
"buildTransitive/net6.0/_._",
|
||||
"buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets",
|
||||
"lib/MonoAndroid10/_._",
|
||||
"lib/MonoTouch10/_._",
|
||||
"lib/net462/System.Text.Encoding.CodePages.dll",
|
||||
"lib/net462/System.Text.Encoding.CodePages.xml",
|
||||
"lib/net6.0/System.Text.Encoding.CodePages.dll",
|
||||
"lib/net6.0/System.Text.Encoding.CodePages.xml",
|
||||
"lib/net7.0/System.Text.Encoding.CodePages.dll",
|
||||
"lib/net7.0/System.Text.Encoding.CodePages.xml",
|
||||
"lib/net8.0/System.Text.Encoding.CodePages.dll",
|
||||
"lib/net8.0/System.Text.Encoding.CodePages.xml",
|
||||
"lib/netstandard2.0/System.Text.Encoding.CodePages.dll",
|
||||
"lib/netstandard2.0/System.Text.Encoding.CodePages.xml",
|
||||
"lib/xamarinios10/_._",
|
||||
"lib/xamarinmac20/_._",
|
||||
"lib/xamarintvos10/_._",
|
||||
"lib/xamarinwatchos10/_._",
|
||||
"runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll",
|
||||
"runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.xml",
|
||||
"runtimes/win/lib/net7.0/System.Text.Encoding.CodePages.dll",
|
||||
"runtimes/win/lib/net7.0/System.Text.Encoding.CodePages.xml",
|
||||
"runtimes/win/lib/net8.0/System.Text.Encoding.CodePages.dll",
|
||||
"runtimes/win/lib/net8.0/System.Text.Encoding.CodePages.xml",
|
||||
"system.text.encoding.codepages.8.0.0.nupkg.sha512",
|
||||
"system.text.encoding.codepages.nuspec",
|
||||
"useSharedDesignerContext.txt"
|
||||
]
|
||||
},
|
||||
@ -2217,6 +2680,11 @@
|
||||
"type": "project",
|
||||
"path": "../Domain/Domain.csproj",
|
||||
"msbuildProject": "../Domain/Domain.csproj"
|
||||
},
|
||||
"Transversal/1.0.0": {
|
||||
"type": "project",
|
||||
"path": "../Transversal/Transversal.csproj",
|
||||
"msbuildProject": "../Transversal/Transversal.csproj"
|
||||
}
|
||||
},
|
||||
"projectFileDependencyGroups": {
|
||||
@ -2228,7 +2696,8 @@
|
||||
"Microsoft.AspNetCore.Components.WebAssembly >= 8.0.6",
|
||||
"Microsoft.AspNetCore.Components.WebAssembly.DevServer >= 8.0.6",
|
||||
"Microsoft.NET.ILLink.Tasks >= 8.0.14",
|
||||
"Microsoft.NET.Sdk.WebAssembly.Pack >= 9.0.3"
|
||||
"Microsoft.NET.Sdk.WebAssembly.Pack >= 9.0.3",
|
||||
"Transversal >= 1.0.0"
|
||||
]
|
||||
},
|
||||
"packageFolders": {
|
||||
@ -2265,6 +2734,9 @@
|
||||
"projectReferences": {
|
||||
"C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Domain\\Domain.csproj": {
|
||||
"projectPath": "C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Domain\\Domain.csproj"
|
||||
},
|
||||
"C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Transversal\\Transversal.csproj": {
|
||||
"projectPath": "C:\\Users\\maski\\source\\repos\\SaludLAB\\phronCare\\Transversal\\Transversal.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Domain\Domain.csproj" />
|
||||
<ProjectReference Include="..\Transversal\Transversal.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user