diff --git a/GEMCO.Backend/.config/dotnet-tools.json b/GEMCO.Backend/.config/dotnet-tools.json new file mode 100644 index 0000000..e80b80f --- /dev/null +++ b/GEMCO.Backend/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "dotnet-ef": { + "version": "6.0.5", + "commands": [ + "dotnet-ef" + ] + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/.vscode/launch.json b/GEMCO.Backend/.vscode/launch.json new file mode 100644 index 0000000..02f31ba --- /dev/null +++ b/GEMCO.Backend/.vscode/launch.json @@ -0,0 +1,37 @@ +{ + "version": "0.2.0", + "configurations": [ + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/bin/Debug/net6.0.300/GEMCO.Backend.dll", + "args": ["run", + "debug"], + "cwd": "${workspaceFolder}", + "stopAtEntry": true, + "justMyCode": false, + // Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\bNow listening on:\\s+(https?://\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/GEMCO.Backend/.vscode/tasks.json b/GEMCO.Backend/.vscode/tasks.json new file mode 100644 index 0000000..d30e950 --- /dev/null +++ b/GEMCO.Backend/.vscode/tasks.json @@ -0,0 +1,51 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/GEMCO.Backend.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/GEMCO.Backend.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/GEMCO.Backend.csproj" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "clean", + "command": "dotnet", + "type": "process", + "args": [ + "clean", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/Contracts/IAmazonRepository.cs b/GEMCO.Backend/Clientes/Amazon/Contracts/IAmazonRepository.cs new file mode 100644 index 0000000..d0e2493 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/Contracts/IAmazonRepository.cs @@ -0,0 +1,67 @@ + +using GEMCO.Backend.Clientes.Amazon.DTO; +using GEMCO.Backend.Clientes.Amazon.Model; +using GEMCO.Backend.DTO; +using GEMCO.Backend.Models; +using GEMCO.Backend.Services.Clientes.SAmazon.Models; + +namespace GEMCO.Backend.Clientes.Amazon.Contracts +{ + public interface IAmazonRepository + { + public Task> AmazonPendingClasificationInvoiceGet(); + /* public Task AmazonInvoiceGet(int Id); */ + public Task> PartidasPendingWebServiceGet(); + public Task> InvoicePendingFromAmazonGet(); + public Task> AmazonFinishedClasificationInvoiceGet(); + public Task> AmazonPendingTraficInvoiceGet(); + public Task> AmazonLinkInvoice2TrafficGet(); + public Task AutorizadoItemFactura(DTO2096FraccionDescripcion data); + public Task SetFraccionDescripcion(DTO2096FraccionDescripcion data); + public Task FraccionSet(DTO2096Fraccion data); + public Task DescripcionSet(DTO2096Descripcion data); + // public Task ItemAutorizadoSet(DTO2096ItemAutorizado data); + public Task> GetFraccionesPendientesValidar(); + public Task SetFraccionPendienteValidar(int id, Boolean valor); + public Task TerminaClasificarFactura(int id); + public Task> NoPartesGet(string Search); + public Task NoPartesUpdate(DTO2096NoParte data); + public Task> NoPartesLogGET(Int64 id); + public Task> NoParteVerificacion(string Parte); + public Task ArchivoRespuestaAmazon(int Id, Int64 IdFile); + public Task> PaisClavesGet(); + public Task DashboardInvoicesGet(Int16 Mode); + public Task SePuedeTerminardeClasificarFactura(int id); + public Task GeneraLogArchivoExcepciones(int IdHeader); + // public Task SePuedeTerminardeClasificarFacturaEsperandoRespuesta(int id); + public Task SightLineSET(DTO2096SightLine data); + public Task SePuedeTerminarXTraficoFactura(int id); + public Task TerminaXTraficoFactura(int id); + + public Task> AmazonInvoiceGet(int id); + + public Task> AmazonShippingInfo(int id); + public Task CheckDetail(int id); + public Task EnviaEsperaRespuestaAmazon(int id); + public Task AssignInvoice(int IdUsuario, int IdFactura); + public Task AsignaFacturasReferencia(DTO2096LinkInvoice2Reference data); + public Task DesasociaFacturasReferencia(DTO2096LinkInvoice2Reference data); + public Task AmazonInvoiceDELETE(int Id); + + + + public Task InvoiceReturnState(byte Estatus, Int64 IdFactura); + public Task SeRecibioRespuestaDeAmazon(int id); + public Task TrafficFieldsUpdate(DTO2096TrafficFieldsUpdate data); + public Task InsertReferenciasSync2IONOS(String Referencia, String ArchivoZip, String ArchivoM, String Aduana, String Patente, String Pedimento, String FPago, String TipoCambio, String Clave); + public Task> AmazonPayedOperationsGET(String Inicio, String Fin); + public Task> RELParteFactruraGET(Int64 id); + public Task SETInvoiceDetail2Unchecked(int IdHeader); + public Task SETInvoiceDetailRevalidateParts(int idHeader); + public Task> InvoiceStatusGET(string Invoice); + public Task> InvoicePrioritySET(int Id, Boolean Prioridad); + public Task GetACKFileById(int IDArchivoACK); + public Task AnswerFromAmazon(IAmazonAnswer data); + public Task SyncAnswers2Invoice(string Invoice); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096CheckDetail.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096CheckDetail.cs new file mode 100644 index 0000000..d1f2840 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096CheckDetail.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096CheckDetail + { + public int Id { get; set; } = 0; + public Boolean Check { get; set; } = false; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096Descripcion.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096Descripcion.cs new file mode 100644 index 0000000..7eb2d72 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096Descripcion.cs @@ -0,0 +1,10 @@ + +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096Descripcion + { + public int Id { get; set; } = 0; + public string Descripcion { get; set; } = null!; + public byte ConfirmaDescripcion { set; get; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096Estatus.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096Estatus.cs new file mode 100644 index 0000000..da0cbb7 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096Estatus.cs @@ -0,0 +1,10 @@ + +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096Estatus + { + public int Code { get; set; } = 0; + public string Respuesta { get; set; } = null!; + public int Estatus { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096Fraccion.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096Fraccion.cs new file mode 100644 index 0000000..d004705 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096Fraccion.cs @@ -0,0 +1,10 @@ + +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096Fraccion + { + public int Id { get; set; } = 0; + public string Fraccion { get; set; } = null!; + public byte ConfirmaFraccion { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096FraccionDescripcion.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096FraccionDescripcion.cs new file mode 100644 index 0000000..9f22e1b --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096FraccionDescripcion.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096FraccionDescripcion + { + public int Id { get; set; } = 0; + public string Fraccion { get; set; } = null!; + public string CumplimientoNormativo { get; set; } = null!; + public string Comentarios { get; set; } = null!; + public string DescripcionGEMCO { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096InvoiceStatus.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096InvoiceStatus.cs new file mode 100644 index 0000000..f09917e --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096InvoiceStatus.cs @@ -0,0 +1,26 @@ +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096InvoiceStatus + { + public int Id { get; set; } = 0; + public String Referencia { get; set; } = string.Empty; + public String CommercialInvoiceDate { get; set; } = string.Empty; + public String InvoiceNumber { get; set; } = string.Empty; + public String Incoterms { get; set; } = string.Empty; + public String TotalInvoiceQuantityUnitOfMeasure { get; set; } = string.Empty; + public int TotalInvoiceQuantity { get; set; } = 0; + public String TotalInvoiceWeightUnitOfMeasure { get; set; } = string.Empty; + public double TotalInvoiceWeight { get; set; } = 0; + public String TotalInvoiceValueChargeOrAllowance { get; set; } = string.Empty; + public String TotalInvoiceValueCurrencyISOCode { get; set; } = string.Empty; + public double TotalInvoiceValueMonetaryAmount { get; set; } = 0; + public String FPago { get; set; } = string.Empty; + public String Patente { get; set; } = string.Empty; + public String Aduana { get; set; } = string.Empty; + public String Pedimento { get; set; } = string.Empty; + public String Estatus { get; set; } = string.Empty; + public int IDArchivoACK { get; set; } = 0; + public String ArchivoACK { get; set; } = string.Empty; + public String FHArchivoACK { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096ItemAutorizado.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096ItemAutorizado.cs new file mode 100644 index 0000000..21f5c95 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096ItemAutorizado.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096ItemAutorizado + { + public int Id { get; set; } = 0; + public Boolean Autorizado { get; set; } = false; + public string RequerimientoNormativo { get; set; } = null!; + public string Comentarios { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096LinkInvoice2Reference.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096LinkInvoice2Reference.cs new file mode 100644 index 0000000..54bb633 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096LinkInvoice2Reference.cs @@ -0,0 +1,10 @@ +using System.Numerics; + +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096LinkInvoice2Reference + { + public string Referencia { get; set; } = null!; + public IEnumerable Facturas { get; set; } = new List { }; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096NoParte.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096NoParte.cs new file mode 100644 index 0000000..bbef5d0 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096NoParte.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096NoParte + { + public int Id { get; set; } = 0; + public string FraccionGEMCO { get; set; } = null!; + public string SubdivisionGEMCO { get; set; } = null!; + public string DescripcionAgenteAduanal { get; set; } = null!; + public int Usuario { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096NoParteVerificacion.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096NoParteVerificacion.cs new file mode 100644 index 0000000..f14b074 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096NoParteVerificacion.cs @@ -0,0 +1,14 @@ + +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096NoParteVerificacion + { + public string Factura { get; set; } = null!; + public string FFactura { get; set; } = null!; + public string Referencia { get; set; } = null!; + public string Patente { get; set; } = null!; + public string Aduana { get; set; } = null!; + public string Pedimento { get; set; } = null!; + public string FPago { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096RELParteFactura.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096RELParteFactura.cs new file mode 100644 index 0000000..5c0c009 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096RELParteFactura.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096RELParteFactura + { + public string Parte { set; get; } = string.Empty; + public string Facturas { set; get; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096ReferenciasSync2IONOS.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096ReferenciasSync2IONOS.cs new file mode 100644 index 0000000..bf55d92 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096ReferenciasSync2IONOS.cs @@ -0,0 +1,13 @@ +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096ReferenciasSync2IONOS + { + public string archivoM { get; set; } = null!; + public string aduana { get; set; } = null!; + public string patente { get; set; } = null!; + public string pedimento { get; set; } = null!; + public string fPago { get; set; } = null!; + public string tipoCambio { get; set; } = null!; + public List files { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096RptOperacionesPagadas.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096RptOperacionesPagadas.cs new file mode 100644 index 0000000..b98608d --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096RptOperacionesPagadas.cs @@ -0,0 +1,25 @@ +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096RptOperacionesPagadas + { + public int Id { get; set; } = 0; + public String Referencia { get; set; } = string.Empty; + public String CommercialInvoiceDate { get; set; } = string.Empty; + public String InvoiceNumber { get; set; } = string.Empty; + public String Incoterms { get; set; } = string.Empty; + public String TotalInvoiceQuantityUnitOfMeasure { get; set; } = string.Empty; + public int TotalInvoiceQuantity { get; set; } = 0; + public String TotalInvoiceWeightUnitOfMeasure { get; set; } = string.Empty; + public double TotalInvoiceWeight { get; set; } = 0; + public String TotalInvoiceValueChargeOrAllowance { get; set; } = string.Empty; + public String TotalInvoiceValueCurrencyISOCode { get; set; } = string.Empty; + public double TotalInvoiceValueMonetaryAmount { get; set; } = 0; + public String FPago { get; set; } = string.Empty; + public String Patente { get; set; } = string.Empty; + public String Aduana { get; set; } = string.Empty; + public String Pedimento { get; set; } = string.Empty; + public int IDArchivoACK { get; set; } = 0; + public String ArchivoACK { get; set; } = string.Empty; + public String FHArchivoACK { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096SightLine.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096SightLine.cs new file mode 100644 index 0000000..f226049 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096SightLine.cs @@ -0,0 +1,12 @@ +using DocumentFormat.OpenXml.Office2021.PowerPoint.Comment; +using DocumentFormat.OpenXml.Presentation; + +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096SightLine + { + public int Id { get; set; } = 0; + public Boolean SightLine { get; set; } = false; + public string ComentariosSightLine { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096TrafficFieldsUpdate.cs b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096TrafficFieldsUpdate.cs new file mode 100644 index 0000000..99f140c --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/DTO/DTO2096TrafficFieldsUpdate.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.Clientes.Amazon.DTO +{ + public class DTO2096TrafficFieldsUpdate + { + public Int64 Id { get; set; } = 0; + public string UnitMeasure { get; set; } = string.Empty; + public float UnitOfMeasure { get; set; } = 0; + public float UnitCost { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/Model/I2096Detail.cs b/GEMCO.Backend/Clientes/Amazon/Model/I2096Detail.cs new file mode 100644 index 0000000..9d12909 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/Model/I2096Detail.cs @@ -0,0 +1,50 @@ +namespace GEMCO.Backend.Clientes.Amazon.Model +{ + public class I2096Detail + { + public Int64 Id { get; set; } = 0; + public int IdHeader { get; set; } = 0; + public string InvoiceNumber { get; set; } = null!; + public string AmazonShipmentReferenceId { get; set; } = null!; + public int Partida { get; set; } = 0; + public string TrailerId { get; set; } = null!; + public string ItemId { get; set; } = null!; + public string ItemIdType { get; set; } = null!; + public string ItemDescription { get; set; } = null!; + public string PedimentoDescription { get; set; } = null!; + public string DestinationHTSCode { get; set; } = null!; + public byte ValidaFraccionOriginal { get; set; } = 0; + public byte ConfirmaFraccion { get; set; } = 0; + public string FraccionGEMCO { get; set; } = null!; + public byte ConfirmaDescripcion { get; set; } = 0; + public string DescripcionGEMCO { get; set; } = null!; + public string SourceHTSCode { get; set; } = null!; + public string ECCN { get; set; } = null!; + public string LicEx { get; set; } = null!; + public string CountryOfOrigin { get; set; } = null!; + public string ProductGroup { get; set; } = null!; + public string UPC { get; set; } = null!; + public string Brand { get; set; } = null!; + public string Model { get; set; } = null!; + public string ItemQuantityUnitOfMeasure { get; set; } = null!; + public int Quantity { get; set; } = 0; + public string NetWeightUnitOfMeasure { get; set; } = null!; + public double WeightValue { get; set; } = 0; + public string ActualUnitCostChargeOrAllowance { get; set; } = null!; + public string ActualUnitCostCurrencyISOCode { get; set; } = null!; + public double ActualUnitCostMonetaryAmount { get; set; } = 0; + public string TotalUnitValueChargeOrAllowance { get; set; } = null!; + public string TotalUnitValueCurrencyISOCode { get; set; } = null!; + public double TotalUnitValueMonetaryAmount { get; set; } = 0; + public string Archivo { get; set; } = null!; + public string FCreacion { get; set; } = null!; + public Int16 Estatus { get; set; } = 0; + public Boolean Autorizado { get; set; } = false; + public string CumplimientoNormativo { get; set; } = null!; + public string Comentarios { get; set; } = null!; + public Boolean SightLine { get; set; } = false; + public string ComentariosSightLine { get; set; } = null!; + public Boolean Checked { get; set; } = false; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/Model/I2096Header.cs b/GEMCO.Backend/Clientes/Amazon/Model/I2096Header.cs new file mode 100644 index 0000000..4ccc2ad --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/Model/I2096Header.cs @@ -0,0 +1,34 @@ +namespace GEMCO.Backend.Clientes.Amazon.Model +{ + public class I2096Header + { + public int Id { get; set; } = 0; + public string Referencia { get; set; } = null!; + public string CommercialInvoiceDate { get; set; } = null!; + public string InvoiceNumber { get; set; } = null!; + public string Name { get; set; } = null!; + public string TrailerNumber { get; set; } = null!; + public string TrailerId { get; set; } = null!; + public string PorOfLoading { get; set; } = null!; + public string PortOfEntry { get; set; } = null!; + public string PaymentsTerms { get; set; } = null!; + public string Incoterms { get; set; } = null!; + public string HAWB { get; set; } = null!; + public string TotalInvoiceQuantityUnitOfMeasure { get; set; } = null!; + public int TotalInvoiceQuantity { get; set; } = 0; + public string TotalInvoiceWeightUnitOfMeasure { get; set; } = null!; + public double TotalInvoiceWeight { get; set; } = 0; + public string TotalInvoiceValueChargeOrAllowance { get; set; } = null!; + public string TotalInvoiceValueCurrencyISOCode { get; set; } = null!; + public double TotalInvoiceValueMonetaryAmount { get; set; } = 0; + public string FootNote { get; set; } = null!; + public string Archivo { get; set; } = null!; + public string FCreacion { get; set; } = null!; + public int Clasificador { get; set; } = 0!; + public Byte NoVuelta { get; set; } = 0; + public Int16 Estatus { get; set; } = 0; + public Boolean max { get; set; } = false; + public Boolean Urgente { get; set; } = false; + public List Detail { get; set; } = new List(); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/Model/I2096ListaIDs.cs b/GEMCO.Backend/Clientes/Amazon/Model/I2096ListaIDs.cs new file mode 100644 index 0000000..79d9a9a --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/Model/I2096ListaIDs.cs @@ -0,0 +1,7 @@ +namespace GEMCO.Backend.Clientes.Amazon.Model +{ + public class I2096ListaIDs + { + public int id { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/Model/I2096NoParteLog.cs b/GEMCO.Backend/Clientes/Amazon/Model/I2096NoParteLog.cs new file mode 100644 index 0000000..3ed1f41 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/Model/I2096NoParteLog.cs @@ -0,0 +1,18 @@ +namespace GEMCO.Backend.Clientes.Amazon.Model +{ + public class I2096NoParteLog + { + public Int64 Id { get; set; } = 0; + public Int64 IdCatNoParte { get; set; } = 0; + public string NoParte { get; set; } = null!; + public string FraccionGEMCO { get; set; } = null!; + public string SubdivisionGEMCO { get; set; } = null!; + public string DescripcionAgenteAduanal { get; set; } = null!; + public string FraccionOriginal { get; set; } = null!; + public string SubdivisionOriginal { get; set; } = null!; + public string DescripcionOriginal { get; set; } = null!; + public int Usuario { get; set; } = 0; + public string FHCreacion { get; set; } = null!; + public string sUsuario { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/Model/I2096NoPartes.cs b/GEMCO.Backend/Clientes/Amazon/Model/I2096NoPartes.cs new file mode 100644 index 0000000..0952e96 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/Model/I2096NoPartes.cs @@ -0,0 +1,23 @@ + +namespace GEMCO.Backend.Clientes.Amazon.Model +{ + public class I2096NoPartes + { + public int id { get; set; } = 0; + public int ClaveCliente { get; set; } = 0; + public string Parte { get; set; } = null!; + public int ClaveProveedor { get; set; } = 0; + public byte TipoOperacion { get; set; } = 0; + public string Fraccion { get; set; } = null!; + public string Subdivision { get; set; } = null!; + public string DescripcionFactura { get; set; } = null!; + public string DescripcionAgenteAduanal { get; set; } = null!; + public string PaisOrigen { get; set; } = null!; + public string UnidadMedidaFactura { get; set; } = null!; + public string UnidadMedidaCOVE { get; set; } = null!; + public string FHActualizacion { get; set; } = null!; + public int UsuarioActualizacion { get; set; } = 0; + public byte Activo { get; set; } = 0; + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/Model/I2096PaisClaves.cs b/GEMCO.Backend/Clientes/Amazon/Model/I2096PaisClaves.cs new file mode 100644 index 0000000..ae7ee94 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/Model/I2096PaisClaves.cs @@ -0,0 +1,9 @@ + +namespace GEMCO.Backend.Clientes.Amazon.Model +{ + public class I2096PaisClaves + { + public string PaisNom { get; set; } = null!; + public string Clave_a3 { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/Model/I2096ShipFromAddress.cs b/GEMCO.Backend/Clientes/Amazon/Model/I2096ShipFromAddress.cs new file mode 100644 index 0000000..4a0c2f7 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/Model/I2096ShipFromAddress.cs @@ -0,0 +1,19 @@ +namespace GEMCO.Backend.Clientes.Amazon.Model +{ + public class I2096ShipFromAddress + { + public int Id { get; set; } = 0; + public int IdHeader { get; set; } = 0; + public string InvoiceNumber { get; set; } = null!; + public string AddressType { get; set; } = null!; + public string Name { get; set; } = null!; + public string AddressLine1 { get; set; } = null!; + public string City { get; set; } = null!; + public string StateProvince { get; set; } = null!; + public string Zip { get; set; } = null!; + public string CountryCode { get; set; } = null!; + public string CountryName { get; set; } = null!; + public string Archivo { get; set; } = null!; + public string FCreacion { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Amazon/Repository/AmazonRepository.cs b/GEMCO.Backend/Clientes/Amazon/Repository/AmazonRepository.cs new file mode 100644 index 0000000..57ff1a0 --- /dev/null +++ b/GEMCO.Backend/Clientes/Amazon/Repository/AmazonRepository.cs @@ -0,0 +1,705 @@ +using System.Data; +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Clientes.Amazon.Model; +using GEMCO.Backend.Clientes.Amazon.Contracts; +using GEMCO.Backend.Clientes.Amazon.DTO; +using GEMCO.Backend.Models; +using GEMCO.Backend.DTO; +using GEMCO.Backend.Services.Clientes.SAmazon.Models; + +namespace GEMCO.Backend.Clientes.Amazon.Repository +{ + public class AmazonRepository : IAmazonRepository + { + + private readonly DapperContext _context; + public AmazonRepository(DapperContext context) + { + _context = context; + } + + public async Task> AmazonPendingClasificationInvoiceGet() + { + using var connection = _context.CreateConnection(); + var sql = "SELECT id FROM [Clientes.Amazon.Invoice.Header] WHERE Estatus in (0,1)"; + var rows = connection.Query(sql); + connection.Close(); + + List data = new List(); + foreach (var row in rows) + { + var parameters = new DynamicParameters(); + parameters.Add("@id", row.id, DbType.Int64, ParameterDirection.Input); + var query = "SELECT a.Id, a.Referencia, a.commercialInvoiceDate, a.InvoiceNumber, a.TrailerNumber, a.TrailerId, a.PorOfLoading, a.PaymentsTerms, a.Incoterms, " + + "a.HAWB, a.TotalInvoiceQuantityUnitOfMeasure, a.TotalInvoiceQuantity, a.TotalInvoiceWeightUnitOfMeasure, a.TotalInvoiceWeight, a.TotalInvoiceValueChargeOrAllowance, " + + "a.TotalInvoiceValueCurrencyISOCode, a.TotalInvoiceValueMonetaryAmount, a.FootNote, a.Archivo, a.FCreacion, a.Clasificador, a.NoVuelta, a.Estatus, b.Name, a.Urgente " + + "FROM [Clientes.Amazon.Invoice.Header] a JOIN[Clientes.Amazon.Invoice.ShipFromAddress] b on a.id = b.IdHeader WHERE a.Id =@Id and b.AddressType = 'SHIPPER';" + + "SELECT Id, IdHeader, InvoiceNumber, AmazonShipmentReferenceId, Partida, TrailerId, ItemId, ItemIdType, ItemDescription, " + + "PedimentoDescription, DestinationHTSCode, ValidaFraccionOriginal, ConfirmaFraccion, FraccionGEMCO, ConfirmaDescripcion, " + + "DescripcionGEMCO, SourceHTSCode, ECCN, LicEx, CountryOfOrigin, ProductGroup, UPC, Brand, Model, ItemQuantityUnitOfMeasure, " + + "Quantity, NetWeightUnitOfMeasure, WeightValue, ActualUnitCostChargeOrAllowance, ActualUnitCostCurrencyISOCode, ActualUnitCostMonetaryAmount, " + + "TotalUnitValueChargeOrAllowance, TotalUnitValueCurrencyISOCode, TotalUnitValueMonetaryAmount, Archivo, FCreacion, Estatus, Autorizado," + + "CumplimientoNormativo, Comentarios, SightLine, ComentariosSightLine, Checked, Activo FROM [Clientes.Amazon.Invoice.Detail] WHERE IdHeader = @Id ORDER BY DestinationHTSCode"; + /* var query = "SELECT a.*, b.Name FROM [Clientes.Amazon.Invoice.Header] a JOIN[Clientes.Amazon.Invoice.ShipFromAddress] b on a.id = b.IdHeader WHERE a.Id =@Id and b.AddressType = 'SHIPPER';" + + "SELECT * FROM [Clientes.Amazon.Invoice.Detail] WHERE IdHeader = @Id ORDER BY DestinationHTSCode"; */ + using (var connection2 = _context.CreateConnection()) + using (var multi = await connection2.QueryMultipleAsync(query, parameters)) + { + var result = await multi.ReadSingleOrDefaultAsync(); + if (result != null) + { + var detail = (await multi.ReadAsync()).ToList(); + if (detail != null) + { + result.Detail = detail; + data.Add(result); + } + } + } + } + return data; + } + + public async Task> PartidasPendingWebServiceGet() + { + using var connection = _context.CreateConnection(); + var sql = "SELECT Id, DestinationHTSCode as Fraccion, ValidacionWebService as ConfirmaFraccion FROM [Clientes.Amazon.Invoice.Detail] WHERE ValidacionWebService=0"; + var rows = await connection.QueryAsync(sql); + connection.Close(); + return rows.ToList(); + } + + public async Task> InvoicePendingFromAmazonGet() + { + using var connection = _context.CreateConnection(); + var sql = "SELECT id FROM [Clientes.Amazon.Invoice.Header] WHERE Estatus=-1 ORDER BY id"; + var rows = connection.Query(sql); + connection.Close(); + + List data = new List(); + foreach (var row in rows) + { + var query = "SELECT a.*, b.Name FROM [Clientes.Amazon.Invoice.Header] a JOIN[Clientes.Amazon.Invoice.ShipFromAddress] b on a.id = b.IdHeader WHERE a.Id =@Id and b.AddressType = 'SHIPPER' ORDER BY a.id;" + + "SELECT * FROM [Clientes.Amazon.Invoice.Detail] WHERE IdHeader = @Id"; + using (var connection2 = _context.CreateConnection()) + using (var multi = await connection2.QueryMultipleAsync(query, new + { + id = row.id + })) + { + var result = await multi.ReadSingleOrDefaultAsync(); + if (result != null) + { + result.Detail = (await multi.ReadAsync()).ToList(); + data.Add(result); + } + } + } + return data; + } + + public async Task> AmazonFinishedClasificationInvoiceGet() + { + using var connection = _context.CreateConnection(); + var sql = "SELECT id FROM [Clientes.Amazon.Invoice.Header] WHERE Estatus=2"; + var rows = connection.Query(sql); + connection.Close(); + + List data = new List(); + foreach (var row in rows) + { + var query = "SELECT * FROM [Clientes.Amazon.Invoice.Header] WHERE Id = @Id;" + + "SELECT * FROM [Clientes.Amazon.Invoice.Detail] WHERE IdHeader = @Id"; + using (var connection2 = _context.CreateConnection()) + using (var multi = await connection2.QueryMultipleAsync(query, new + { + id = row.id + })) + { + var result = await multi.ReadSingleOrDefaultAsync(); + if (result != null) + { + result.Detail = (await multi.ReadAsync()).ToList(); + data.Add(result); + } + } + } + return data; + } + + public async Task> AmazonPendingTraficInvoiceGet() + { + using var connection = _context.CreateConnection(); + var sql = "SELECT id FROM [Clientes.Amazon.Invoice.Header] WHERE Estatus=3"; + var rows = connection.Query(sql); + connection.Close(); + + List data = new List(); + foreach (var row in rows) + { + var query = "SELECT * FROM [Clientes.Amazon.Invoice.Header] WHERE Id = @Id;" + + "SELECT * FROM [Clientes.Amazon.Invoice.Detail] WHERE IdHeader = @Id"; + using (var connection2 = _context.CreateConnection()) + using (var multi = await connection2.QueryMultipleAsync(query, new + { + id = row.id + })) + { + var result = await multi.ReadSingleOrDefaultAsync(); + if (result != null) + { + result.Detail = (await multi.ReadAsync()).ToList(); + data.Add(result); + } + } + } + return data; + } + + public async Task> AmazonLinkInvoice2TrafficGet() + { + var query = "[Clientes.Amazon.Invoice.Finished]"; + using var connection = _context.CreateConnection(); + var rows = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + + List data = new List(); + foreach (var row in rows.ToList()) + { + var subquery = "SELECT * FROM [Clientes.Amazon.Invoice.Header] WHERE Id = @Id;" + + "SELECT * FROM [Clientes.Amazon.Invoice.Detail] WHERE IdHeader = @Id"; + using (var connection2 = _context.CreateConnection()) + using (var multi = await connection2.QueryMultipleAsync(subquery, new + { + id = row.id + })) + { + var result = await multi.ReadSingleOrDefaultAsync(); + if (result != null) + { + result.Detail = (await multi.ReadAsync()).ToList(); + data.Add(result); + } + } + } + return data; + } + + public async Task> AmazonPayedOperationsGET(String Inicio, String Fin) + { + var query = "[Clientes.Amazon.Invoice.PayedOperations.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Inicio, + @Fin + }, + commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + + public async Task AmazonInvoiceDELETE(int Id) + { + var query = "[Clientes.Amazon.Invoice.Header.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Id + }, + commandType: CommandType.StoredProcedure); + return true; + } + + public async Task SetFraccionDescripcion(DTO2096FraccionDescripcion data) + { + var query = "[Clientes.Amazon.Invoice.Detail.FraccionDescripcion.Set]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @data.Id, + @data.Fraccion, + @data.CumplimientoNormativo, + @data.Comentarios, + @data.DescripcionGEMCO + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new I2096Detail()); + } + + public async Task FraccionSet(DTO2096Fraccion data) + { + var query = "[Clientes.Amazon.Invoice.Detail.Fraccion.Set]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @data.Id, + @data.Fraccion, + @data.ConfirmaFraccion + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new I2096Detail()); + } + + public async Task DescripcionSet(DTO2096Descripcion data) + { + var query = "[Clientes.Amazon.Invoice.Detail.Descripcion.Set]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @data.Id, + @data.Descripcion, + @data.ConfirmaDescripcion + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new I2096Detail()); + } + + public async Task AutorizadoItemFactura(DTO2096FraccionDescripcion data) + { + var query = "[Clientes.Amazon.Invoice.Detail.Autorizado.Set]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @data.Id, + @data.Fraccion, + @data.CumplimientoNormativo, + @data.Comentarios, + @data.DescripcionGEMCO + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new I2096Detail()); + } + + public async Task> GetFraccionesPendientesValidar() + { + var query = "[Clientes.Amazon.Invoice.Detail.Fracciones.Iniciales.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task SetFraccionPendienteValidar(int id, Boolean valor) + { + var query = "[Clientes.Amazon.Invoice.Detail.Fracciones.Iniciales.Set]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id, + @valor + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task TerminaClasificarFactura(int id) + { + var query = "[Clientes.Amazon.Invoice.Clasification.Finish]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task EnviaEsperaRespuestaAmazon(int id) + { + var query = "[Clientes.Amazon.Invoice.Clasification.Send2Waiting]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task> NoPartesGet(string Search) + { + var query = "[Clientes.Amazon.Invoice.NoPartes.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @Search }, commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + + public async Task NoPartesUpdate(DTO2096NoParte data) + { + var query = "[Clientes.Amazon.Invoice.NoPartes.Update]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @data.Id, + @data.FraccionGEMCO, + @data.SubdivisionGEMCO, + @data.DescripcionAgenteAduanal, + @data.Usuario + }, commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new I2096NoPartes()); + } + + public async Task> NoPartesLogGET(Int64 id) + { + var query = "[Clientes.Amazon.Invoice.NoPartes.Log.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id + }, commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + + public async Task> NoParteVerificacion(string Parte) + { + var query = "[Clientes.Amazon.Invoice.NoPartes.Verificacion.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @Parte }, commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + + public async Task> PaisClavesGet() + { + var query = "[Catalogo.PaisClaves.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + + public async Task DashboardInvoicesGet(Int16 Mode) + { + var query = "[Dashboard.Clasificacion.Amazon.Invoices.Finished]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @Mode }, commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task SePuedeTerminardeClasificarFactura(int id) + { + var query = "SELECT dbo.IsAmazonInvoiceClasificationReady2Finish(@id)"; // This is a function, not a stored procedure + using var connection = _context.CreateConnection(); + var respuesta = await connection.QueryAsync(query, new { @id }, commandType: CommandType.Text); + DTO2096Estatus answer = new DTO2096Estatus(); + answer.Code = 200; + answer.Estatus = respuesta.First(); + if (answer.Estatus == 0) + { + answer.Respuesta = "Factura incompleta, verifique que todas las partidas tengan la fraccion y una descripcion"; + } + if (answer.Estatus == 1) + { + answer.Respuesta = "Factura lista, contiene por lo menos una partida diferente, se genera archivo de excepciones"; + } + if (answer.Estatus == 2) + { + answer.Respuesta = "Factura lista, se genera excel de numero de partes"; + } + return answer; + } + + public async Task GeneraLogArchivoExcepciones(int IdHeader) + { + var query = "[Clientes.Amazon.Invoice.ExceptionsFile.Log]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdHeader + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task SeRecibioRespuestaDeAmazon(int id) + { + var query = "SELECT dbo.IsAmazonInvoiceClasificationAnswerRecived(@id)"; // This is a function, not a stored procedure + using var connection = _context.CreateConnection(); + var respuesta = await connection.QueryAsync(query, new { @id }, commandType: CommandType.Text); + DTO2096Estatus answer = new DTO2096Estatus(); + answer.Code = 200; + answer.Estatus = respuesta.First() ? 1 : 0; + if (answer.Estatus == 0) + { + answer.Respuesta = "Factura incompleta, verifique que todas las partidas tengan la autorizacion de Amazon"; + } + else if (answer.Estatus == 1) + { + answer.Respuesta = "Factura lista para pasarse al siguiente proceso"; + } + + return answer; + } + + public async Task ArchivoRespuestaAmazon(int Id, Int64 IdFile) + { + var query = "[Clientes.Amazon.Invoice.ExceptionsFile.Arrived]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Id, + @IdFile + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task SightLineSET(DTO2096SightLine data) + { + var query = "[Clientes.Amazon.Invoice.Detail.SightLine.Set]"; // This is a function, not a stored procedure + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @data.Id, @data.SightLine, @data.ComentariosSightLine }, commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new DTO2096SightLine()); + } + + public async Task SePuedeTerminarXTraficoFactura(int id) + { + var query = "SELECT dbo.IsAmazonInvoiceTraficReady(@id)"; // This is a function, not a stored procedure + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @id }, commandType: CommandType.Text); + DTORespuesta answer = new DTORespuesta(); + answer.code = 200; + answer.respuesta = entrada.First() == true ? "Factura lista" : "Factura incompleta"; + return answer; + } + + public async Task TerminaXTraficoFactura(int id) + { + var query = "[Clientes.Amazon.Invoice.Traffic.Finish]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task> AmazonInvoiceGet(int id) + { + using var connection = _context.CreateConnection(); + List data = new List(); + var query = "SELECT a.Id, a.Referencia, a.commercialInvoiceDate, a.InvoiceNumber, a.TrailerNumber, a.TrailerId, a.PorOfLoading, a.PaymentsTerms, a.Incoterms, " + + "a.HAWB, a.TotalInvoiceQuantityUnitOfMeasure, a.TotalInvoiceQuantity, a.TotalInvoiceWeightUnitOfMeasure, a.TotalInvoiceWeight, a.TotalInvoiceValueChargeOrAllowance, " + + "a.TotalInvoiceValueCurrencyISOCode, a.TotalInvoiceValueMonetaryAmount, a.FootNote, a.Archivo, a.FCreacion, a.Clasificador, a.NoVuelta, a.Estatus, b.Name, a.Urgente " + + "FROM [Clientes.Amazon.Invoice.Header] a JOIN[Clientes.Amazon.Invoice.ShipFromAddress] b on a.id = b.IdHeader WHERE a.Id =@Id and b.AddressType = 'SHIPPER';" + + "SELECT Id, IdHeader, InvoiceNumber, AmazonShipmentReferenceId, Partida, TrailerId, ItemId, ItemIdType, ItemDescription, " + + "PedimentoDescription, DestinationHTSCode, ValidaFraccionOriginal, ConfirmaFraccion, FraccionGEMCO, ConfirmaDescripcion, " + + "DescripcionGEMCO, SourceHTSCode, ECCN, LicEx, CountryOfOrigin, ProductGroup, UPC, Brand, Model, ItemQuantityUnitOfMeasure, " + + "Quantity, NetWeightUnitOfMeasure, WeightValue, ActualUnitCostChargeOrAllowance, ActualUnitCostCurrencyISOCode, ActualUnitCostMonetaryAmount, " + + "TotalUnitValueChargeOrAllowance, TotalUnitValueCurrencyISOCode, TotalUnitValueMonetaryAmount, Archivo, FCreacion, Estatus, Autorizado," + + "CumplimientoNormativo, Comentarios, SightLine, ComentariosSightLine, Checked, Activo FROM [Clientes.Amazon.Invoice.Detail] WHERE IdHeader = @Id ORDER BY DestinationHTSCode, ItemID"; + using (var connection2 = _context.CreateConnection()) + using (var multi = await connection2.QueryMultipleAsync(query, new { @id })) + { + var result = await multi.ReadSingleOrDefaultAsync(); + if (result != null) + { + result.Detail = (await multi.ReadAsync()).ToList(); + data.Add(result); + } + } + return data; + } + + public async Task> AmazonShippingInfo(int id) + { + var query = "[Clientes.Amazon.Invoice.ShipFromAddress.Get]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @id + }, commandType: CommandType.StoredProcedure); + return result; + } + + public async Task CheckDetail(int id) + { + var query = "[Clientes.Amazon.Invoice.Detail.Check]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @id + }, commandType: CommandType.StoredProcedure); + return result.FirstOrDefault(new I2096Detail()); + } + + public async Task AssignInvoice(int IdUsuario, int IdFactura) + { + var query = "[Clientes.Amazon.Invoice.Assign.Clasificator]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @IdUsuario, + @IdFactura + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task AsignaFacturasReferencia(DTO2096LinkInvoice2Reference data) + { + var query = "[Clientes.Amazon.Invoice.Assign.Reference]"; + using var connection = _context.CreateConnection(); + foreach (int IdFactura in data.Facturas) + { + var result = await connection.QueryAsync(query, new + { + @IdFactura, + @data.Referencia + }, commandType: CommandType.StoredProcedure); + + } + return true; + } + + public async Task DesasociaFacturasReferencia(DTO2096LinkInvoice2Reference data) + { + var query = "[Clientes.Amazon.Invoice.Unassign.Reference]"; + using var connection = _context.CreateConnection(); + foreach (int IdFactura in data.Facturas) + { + var result = await connection.QueryAsync(query, new + { + @IdFactura, + @data.Referencia + }, commandType: CommandType.StoredProcedure); + + } + return true; + } + + public async Task InvoiceReturnState(byte Estatus, Int64 IdFactura) + { + var query = "[Clientes.Amazon.Invoice.Return.State]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @Estatus, + @IdFactura + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task TrafficFieldsUpdate(DTO2096TrafficFieldsUpdate data) + { + var query = "[Clientes.Amazon.Invoice.Traffic.Fields.Update]"; + using var connection = _context.CreateConnection(); + var parameters = new DynamicParameters(); + parameters.Add("@id", data.Id, DbType.Int64, ParameterDirection.Input); + parameters.Add("@UnitMeasure", data.UnitMeasure, DbType.String, ParameterDirection.Input); + parameters.Add("@UnitOfMeasure", data.UnitOfMeasure, DbType.Double, ParameterDirection.Input, 10); + parameters.Add("@UnitCost", data.UnitCost, DbType.Double, ParameterDirection.Input, 10); + var result = await connection.QueryAsync(query, parameters, commandType: CommandType.StoredProcedure); + return result.First(); + } + + public async Task InsertReferenciasSync2IONOS(String Referencia, String ArchivoZip, String ArchivoM, String Aduana, String Patente, String Pedimento, String FPago, String TipoCambio, String Clave) + { + var query = "[Clientes.Amazon.Referencias.Sync2IONOS.Insert]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Referencia, + @ArchivoZip, + @ArchivoM, + @Aduana, + @Patente, + @Pedimento, + @FPago, + @TipoCambio, + @Clave + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task> RELParteFactruraGET(Int64 id) + { + var query = "[Clientes.Amazon.Invoice.ExceptionsFile.REL.Facturas.Get]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @id + }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + + public async Task SETInvoiceDetail2Unchecked(int idHeader) + { + var query = "[Clientes.Amazon.Invoice.Detail.Correlacion.PartesGEMCO.UnCheked]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @idHeader + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task SETInvoiceDetailRevalidateParts(int idHeader) + { + var query = "[Clientes.Amazon.Invoice.Detail.Correlacion.PartesGEMCO.Revalidate]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @idHeader + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task> InvoiceStatusGET(String Invoice) + { + var query = "[Clientes.Amazon.Invoice.Status.Get]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @Invoice + }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + + + public async Task> InvoicePrioritySET(int Id, Boolean Prioridad) + { + var query = "[Clientes.Amazon.Invoice.Priority.Set]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @Id, + @Prioridad + }, commandType: CommandType.StoredProcedure); + return await AmazonInvoiceGet(Id); + } + + + public async Task GetACKFileById(int IDArchivoACK) + { + using (var connection = _context.CreateConnection()) + { + var sql = @"SELECT replace(Archivo,'ACKs','ACKs\'+Referencia) AS Archivo FROM [Clientes.Amazon.ACKFiles] WHERE id=" + IDArchivoACK; + var result = await connection.QueryFirstAsync(sql); + return result; + } + } + + public async Task AnswerFromAmazon(IAmazonAnswer data) + { + var query = "[Clientes.Amazon.Invoice.Answers.Append]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @data.FechaSolicitud, + @data.VRIDFactura, + @data.ASIN, + @data.HTSFactura, + @data.HTSSugerido, + @data.HTSAmazon, + @data.Estatus + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task SyncAnswers2Invoice(string Invoice) + { + var query = "[Clientes.Amazon.Invoice.Answers.Sync]"; + using var connection = _context.CreateConnection(); + var result = await connection.QueryAsync(query, new + { + @VRIDFactura = Invoice + }, commandType: CommandType.StoredProcedure); + return true; + } + + } + + +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/DTO/DTOLogin.cs b/GEMCO.Backend/Clientes/DTO/DTOLogin.cs new file mode 100644 index 0000000..128421f --- /dev/null +++ b/GEMCO.Backend/Clientes/DTO/DTOLogin.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.Clientes.DTO +{ + public class DTOLogin + { + public string Usuario { get; set; } = null!; + public string Contrasena { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Contracts/IHeinekenRepository.cs b/GEMCO.Backend/Clientes/Heineken/Contracts/IHeinekenRepository.cs new file mode 100644 index 0000000..1ee4d4d --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Contracts/IHeinekenRepository.cs @@ -0,0 +1,13 @@ +using GEMCO.Backend.Clientes.Heineken.Model; + +namespace GEMCO.Backend.Clientes.Heineken.Contracts +{ + public interface IHeinekenRepository + { + public Task> GetHeinekenEmbarquesPorImportar(); + public Task> GetHeinekenEmbarquesPorMes(); + public Task> GetHeinekenExpedienteDigital(string Coindicencia); + public Task> GetAllFiles(long id); + public Task> GetRptFacturasTxtHeader(string Inicio, string Fin); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Model/I2206AllFiles.cs b/GEMCO.Backend/Clientes/Heineken/Model/I2206AllFiles.cs new file mode 100644 index 0000000..523dacc --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Model/I2206AllFiles.cs @@ -0,0 +1,7 @@ +namespace GEMCO.Backend.Clientes.Heineken.Model +{ + public class I2206AllFiles + { + public string Archivo { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Model/I2206ExpedienteDigital.cs b/GEMCO.Backend/Clientes/Heineken/Model/I2206ExpedienteDigital.cs new file mode 100644 index 0000000..0c0e3b3 --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Model/I2206ExpedienteDigital.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Clientes.Heineken.Model +{ + public class I2206ExpedienteDigital + { + public int id { get; set; } = 0!; + public string Coincidencia { get; set; } = null!; + public string Dato { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Model/I2206ListaIDs.cs b/GEMCO.Backend/Clientes/Heineken/Model/I2206ListaIDs.cs new file mode 100644 index 0000000..9f7285b --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Model/I2206ListaIDs.cs @@ -0,0 +1,9 @@ + + +namespace GEMCO.Backend.Clientes.Heineken.Model +{ + public class I2206ListaIDs + { + public int id { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Model/I2206RptEmbarquesPorImportar.cs b/GEMCO.Backend/Clientes/Heineken/Model/I2206RptEmbarquesPorImportar.cs new file mode 100644 index 0000000..429af12 --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Model/I2206RptEmbarquesPorImportar.cs @@ -0,0 +1,52 @@ +namespace GEMCO.Backend.Clientes.Heineken.Model +{ + public class I2206RptEmbarquesPorImportar + { + public int id { get; set; } = 0; + public string Aduana { get; set; } = null!; + public string TipoEmbarque { get; set; } = null!; + public string Destino { get; set; } = null!; + public int DiasEnAduana { get; set; } = 0!; + public string Nombre { get; set; } = null!; + public string Trafico { get; set; } = null!; + public string Referencia { get; set; } = null!; + public string Pedimento { get; set; } = null!; + public string Clave { get; set; } = null!; + public string TipoOperacion { get; set; } = null!; + public string OrdenCompra { get; set; } = null!; + public string Factura { get; set; } = null!; + public string Proveedor { get; set; } = null!; + public string Descripcion { get; set; } = null!; + public string LineaTransportistaInternacional { get; set; } = null!; + public string LineaNaviera { get; set; } = null!; + public string MAWB { get; set; } = null!; + public string HAWB { get; set; } = null!; + public string FechaNotificacion { get; set; } = null!; + public double Bultos { get; set; } = 0!; + public int CantidadContenedores { get; set; } = 0!; + public double PesoNeto { get; set; } = 0!; + public string Incoterm { get; set; } = null!; + public string FechaETA { get; set; } = null!; + public string FechaEntrada { get; set; } = null!; + public string FechaRevalidacionGuia { get; set; } = null!; + public double MontoUSA { get; set; } = 0!; + public string Origen { get; set; } = null!; + public string FraccionArancelaria { get; set; } = null!; + public string DescripcionMercancia { get; set; } = null!; + public string PreferenciaArancelaria { get; set; } = null!; + public string Estatus { get; set; } = null!; + public string Observaciones { get; set; } = null!; + public string FAlmacenajeInicioGastos { get; set; } = null!; + public double CostoDiario { get; set; } = 0!; + public double TotalaPagar { get; set; } = 0!; + public string FechaPago { get; set; } = null!; + public string FHInstrucciones { get; set; } = null!; + public string HoraInstruciones { get; set; } = null!; + public string FDespacho { get; set; } = null!; + public int DiasCPPagado { get; set; } = 0!; + public string FechaSalidaContenedores { get; set; } = null!; + public string NombrePaqueteriaInternacional { get; set; } = null!; + public string NoGuia { get; set; } = null!; + public string FechaEntregaDestinoFinal { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Model/I2206RptFacturasTxtDetail.cs b/GEMCO.Backend/Clientes/Heineken/Model/I2206RptFacturasTxtDetail.cs new file mode 100644 index 0000000..b4e5fad --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Model/I2206RptFacturasTxtDetail.cs @@ -0,0 +1,23 @@ +namespace GEMCO.Backend.Clientes.Heineken.Model +{ + public class I2206RptFacturasTxtDetail + { + public int id { get; set; } = 0; + public int IdHeader { get; set; } = 0; + public string Tipo { get; set; } = null!; + public string SeisDigitos { get; set; } = null!; + public string VeinteDigitos { get; set; } = null!; + public string Descripcion { get; set; } = null!; + public string Medida { get; set; } = null!; + public float Num1 { get; set; } = 0; + public float Num2 { get; set; } = 0; + public float HNumero4 { get; set; } = 0; + public float Num3 { get; set; } = 0; + public float HNumero6 { get; set; } = 0; + public string Unidad { get; set; } = null!; + public float HNumero7 { get; set; } = 0; + public float hNumero8 { get; set; } = 0; + public string FHCreacion { get; set; } = null!; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Model/I2206RptFacturasTxtHeader.cs b/GEMCO.Backend/Clientes/Heineken/Model/I2206RptFacturasTxtHeader.cs new file mode 100644 index 0000000..c524777 --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Model/I2206RptFacturasTxtHeader.cs @@ -0,0 +1,30 @@ +namespace GEMCO.Backend.Clientes.Heineken.Model +{ + public class I2206RptFacturasTxtHeader + { + public int id { get; set; } = 0; + public string Delivery { get; set; } = null!; + public string Fecha { get; set; } = null!; + public string Factura { get; set; } = null!; + public string POCliente { get; set; } = null!; + public string Heineken { get; set; } = null!; + public string Destino { get; set; } = null!; + public string Moneda { get; set; } = null!; + public float Numero4 { get; set; } = 0; + public float Numero5 { get; set; } = 0; + public float Numero6 { get; set; } = 0; + public string Unidad { get; set; } = null!; + public float Numero7 { get; set; } = 0; + public float Numero8 { get; set; } = 0; + public string Incoterm { get; set; } = null!; + public string Incoterm2 { get; set; } = null!; + public string PedidoSAP { get; set; } = null!; + public string Transportista { get; set; } = null!; + public string Caja { get; set; } = null!; + public string Numero12 { get; set; } = null!; + public string FHCreacion { get; set; } = null!; + public byte Activo { get; set; } = 0; + public Boolean max { get; set; } = false; + public List Detail { get; set; } = new List(); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Model/I2206RptMensual.cs b/GEMCO.Backend/Clientes/Heineken/Model/I2206RptMensual.cs new file mode 100644 index 0000000..fee32b0 --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Model/I2206RptMensual.cs @@ -0,0 +1,31 @@ +namespace GEMCO.Backend.Clientes.Heineken.Model +{ + public class I2206RptMensual + { + public int id { get; set; } = 0; + public int Patente { get; set; } = 0!; + public int Aduana { get; set; } = 0!; + public string Pedimento { get; set; } = null!; + public int Partidas { get; set; } = 0!; + public string TipoInsumo { get; set; } = null!; + public string FechaPedimento { get; set; } = null!; + public string FechaArribo { get; set; } = null!; + public string FechaEntrada { get; set; } = null!; + public string OrdenCompra { get; set; } = null!; + public string Factura { get; set; } = null!; + public string NombreProveedor { get; set; } = null!; + public string DescripcionMaterial { get; set; } = null!; + public double ValorAduanaMXP { get; set; } = 0!; + public double MontoAlmacenajes { get; set; } = 0!; + public string FraccionArancelaria { get; set; } = null!; + public string Incoterm { get; set; } = null!; + public double Fletes { get; set; } = 0!; + public double Seguros { get; set; } = 0!; + public double Embalaje { get; set; } = 0!; + public double Otros { get; set; } = 0!; + public double DTA { get; set; } = 0!; + public double IGI { get; set; } = 0!; + public double IEPS { get; set; } = 0!; + public int PromedioDiasEnAduana { get; set; } = 0!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Repository/HeinekenRepository.cs b/GEMCO.Backend/Clientes/Heineken/Repository/HeinekenRepository.cs new file mode 100644 index 0000000..de92c58 --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Repository/HeinekenRepository.cs @@ -0,0 +1,105 @@ +using Dapper; +using GEMCO.Backend.Context; +using System.Data; +using GEMCO.Backend.Clientes.Heineken.Model; +using GEMCO.Backend.Clientes.Heineken.Contracts; + +namespace GEMCO.Backend.Clientes.Heineken.Repository +{ + public class HeinekenRepository : IHeinekenRepository + { + + private readonly DapperContext _context; + + public HeinekenRepository(DapperContext context) + { + _context = context; + } + + public async Task> GetHeinekenEmbarquesPorImportar() + { + var query = "[Reportes.Web.Clientes.Heineken.Embarques.PorImportar.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { }, + commandTimeout: 180, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + public async Task> GetHeinekenEmbarquesPorMes() + { + var query = "[Reportes.Web.Clientes.Heineken.Embarques.PorMes.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { }, + commandTimeout: 180, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + public async Task> GetHeinekenExpedienteDigital(string Coincidencia) + { + var query = "[Reportes.Web.Clientes.Heineken.ExpedienteDigital.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Coincidencia = Coincidencia }, + commandTimeout: 180, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + public async Task> GetAllFiles(long id) + { + var query = "[Clientes.Heineken.Filelist.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @id = id }, + commandTimeout: 180, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + public async Task> GetRptFacturasTxtHeader(string Inicio, string Fin) + { + + using var connection = _context.CreateConnection(); + /* var rows = connection.Query("SELECT id FROM [Clientes.Heineken.FacturasTxt.Headers] WHERE Fecha BETWEN @Inicio and @Fin").ToList(); + connection.Close(); */ + + var parameters = new { @Inicio = Inicio, @Fin = Fin }; + var sql = "SELECT id FROM [Clientes.Heineken.FacturasTxt.Headers] WHERE Fecha BETWEEN @Inicio and @Fin"; + var rows = connection.Query(sql, parameters); + connection.Close(); + + List data = new List(); + foreach (var row in rows) + { + var query = "SELECT * FROM [Clientes.Heineken.FacturasTxt.Headers] WHERE Id = @Id;" + + "SELECT * FROM [Clientes.Heineken.FacturasTxt.Detail] WHERE IdHeader = @Id"; + using (var connection2 = _context.CreateConnection()) + using (var multi = await connection2.QueryMultipleAsync(query, new + { + id = row.id + })) + { + var result = await multi.ReadSingleOrDefaultAsync(); + if (result != null) + { + result.Detail = (await multi.ReadAsync()).ToList(); + data.Add(result); + } + } + } + return data; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/Heineken/Servicio/SvcZipAllFiles.cs b/GEMCO.Backend/Clientes/Heineken/Servicio/SvcZipAllFiles.cs new file mode 100644 index 0000000..d396dd0 --- /dev/null +++ b/GEMCO.Backend/Clientes/Heineken/Servicio/SvcZipAllFiles.cs @@ -0,0 +1,58 @@ +using GEMCO.Backend.Clientes.Heineken.Contracts; +using GEMCO.Backend.Clientes.Heineken.Model; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO; +using GEMCO.Backend.DTO.ArchivoElectronico; +using GEMCO.Backend.DTO.Reportes; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Reportes; +using System.IO.Compression; + +namespace GEMCO.Backend.Clientes.Heineken.Servicio +{ + public class SvcZipAllFiles + { + private readonly IHeinekenRepository _Repo; + private readonly IConfiguration _config; + private readonly string DOCsPath; + + public SvcZipAllFiles(IHeinekenRepository Repo, IConfiguration config) + { + _Repo = Repo; + _config = config; + DOCsPath = _config.GetValue("AllFiles"); + } + + public byte[] ZipAllFiles(IEnumerable allFiles) + { + DateTime now = DateTime.Now; + string zipPath = _config.GetValue("pathTemp") + "Allfiles_" + now.ToString("dd_MM_yy_hh_mm_ss") + ".zip"; + CreateZipFileFromList(allFiles, zipPath); + return System.IO.File.ReadAllBytes(zipPath); + } + + public void CreateZipFileFromList(IEnumerable listaPDFs, string zipPath) + { + using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)) + { + foreach (I2206AllFiles pdf in listaPDFs) + { + string filename = DOCsPath + pdf.Archivo; + if (System.IO.File.Exists(filename)) + { + FileInfo file_info = new FileInfo(filename); + string entry_name = file_info.Name; + for (int version = 1; version < 10000; version++) + { + ZipArchiveEntry? old_entry = archive.GetEntry(entry_name); + if (old_entry == null) break; + entry_name = Path.GetFileNameWithoutExtension(file_info.Name) + $"({version})" + file_info.Extension; + } + archive.CreateEntryFromFile(filename, entry_name); + } + } + } + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/Contracts/IZincInternacionalRepository.cs b/GEMCO.Backend/Clientes/ZincInternacional/Contracts/IZincInternacionalRepository.cs new file mode 100644 index 0000000..478d413 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/Contracts/IZincInternacionalRepository.cs @@ -0,0 +1,25 @@ +using GEMCO.Backend.Clientes.ZincInternacional.Model; +using GEMCO.Backend.Clientes.ZincInternacional.DTO; + +namespace GEMCO.Backend.Clientes.ZincInternacional.Contracts +{ + public interface IZincInternacionalRepository + { + public Task Append(I1868Factura data); + public Task AppendDetail(I1868FacturaDetalle data); + public Task RelacionaPDFaFactura(long id, string Filename); + public Task RelacionaPorProceso(int id, long IdFile, int Proceso); + public Task> getAll(string Inicio, string Fin, int UserId); + public Task> getAllDetail(string Inicio, string Fin); + public Task UpdateMaster(DTO1868Factura data); + public Task UpdateDetail(DTO1868FacturaDetalle data); + public Task> getClientes(); + public Task> getCatProductos(); + public Task> getCatClaveSAT(); + public Task> getCatDestinos(); + public Task> GetCatResponsables(); + public Task CatDestinosAppend(I1868CatDestinos data); + public Task CatResponsablesAppend(I1868CatResponsables data); + public Task AppendSCACCAT(DTO1868SCACCAAT data); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868Clientes.cs b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868Clientes.cs new file mode 100644 index 0000000..e673723 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868Clientes.cs @@ -0,0 +1,7 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.DTO +{ + public class DTO1868Clientes + { + public string Cliente { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868Factura.cs b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868Factura.cs new file mode 100644 index 0000000..b88dbad --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868Factura.cs @@ -0,0 +1,13 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.DTO +{ + public class DTO1868Factura + { + public int id { get; set; } = 0; + public string Sello { get; set; } = null!; + public string Placas { get; set; } = null!; + public int IdResponsable { get; set; } = 0; + public string Responsable { get; set; } = null!; + public int IdDestino { get; set; } = 0; + public string Entregar { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868FacturaDetalle.cs b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868FacturaDetalle.cs new file mode 100644 index 0000000..832cac3 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868FacturaDetalle.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.DTO +{ + public class DTO1868FacturaDetalle + { + public int id { get; set; } = 0; + public string ClaveSAT { get; set; } = null!; + public string Empaque { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868ReporteFactura.cs b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868ReporteFactura.cs new file mode 100644 index 0000000..df4322b --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868ReporteFactura.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace GEMCO.Backend.Clientes.ZincInternacional.DTO +{ + public class DTO1868ReporteFactura + { + public int id { get; set; } = 0; + public string FechaFactura { get; set; } = null!; + public string Invoice { get; set; } = null!; + public double PesoBruto { get; set; } = 0!; + public string Aduana { get; set; } = null!; + public string Ruta { get; set; } = null!; + public string Cliente { get; set; } = null!; + public string PedidoCliente { get; set; } = null!; + public string Transportista { get; set; } = null!; + public int IdResponsableCruce { get; set; } = 0!; + public string ResponsableCruce { get; set; } = null!; + public string Sello { get; set; } = null!; + public string Placas { get; set; } = null!; + public string Carga { get; set; } = null!; + public string TipoPedimento { get; set; } = null!; + public int IdDestino { get; set; } = 0!; + public string Entregar { get; set; } = null!; + public string FolioReferencia { get; set; } = null!; + public long IDXML { get; set; } = 0; + public long IDPDF { get; set; } = 0; + public long IDDoda { get; set; } = 0; + public long IDPrefile { get; set; } = 0; + public long IDBL { get; set; } = 0; + public string FRegistro { get; set; } = null!; + public string FActualizacion { get; set; } = null!; + public byte EsHazmat { get; set; } = 0; + public string SCAC { get; set; } = null!; + public string CAAT { get; set; } = null!; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868SCACCAAT.cs b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868SCACCAAT.cs new file mode 100644 index 0000000..3885fa8 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/DTO/DTO1868SCACCAAT.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.DTO +{ + public class DTO1868SCACCAAT + { + public int id { get; set; } = 0; + public string SCAC { get; set; } = null!; + public string CAAT { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatClaveSAT.cs b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatClaveSAT.cs new file mode 100644 index 0000000..149770b --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatClaveSAT.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.Model +{ + public class I1868CatClaveSAT + { + public int id { get; set; } = 0; + public string Clave { get; set; } = null!; + public string Descripcion { get; set; } = null!; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatDestinos.cs b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatDestinos.cs new file mode 100644 index 0000000..3449cff --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatDestinos.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.Model +{ + public class I1868CatDestinos + { + public int id { get; set; } = 0; + public string Lugar { get; set; } = null!; + public string Direccion { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatProductos.cs b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatProductos.cs new file mode 100644 index 0000000..438b1b6 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatProductos.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.Model +{ + public class I1868CatProductos + { + public int id { get; set; } = 0; + public int Codigo { get; set; } = 0; + public string Descripcion { get; set; } = null!; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatResponsables.cs b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatResponsables.cs new file mode 100644 index 0000000..b041152 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868CatResponsables.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.Model +{ + public class I1868CatResponsables + { + public int id { get; set; } = 0; + public string Responsable { get; set; } = null!; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868Factura.cs b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868Factura.cs new file mode 100644 index 0000000..1ff38e7 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868Factura.cs @@ -0,0 +1,34 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.Model +{ + public class I1868Factura + { + public int id { get; set; } = 0; + public string FechaFactura { get; set; } = null!; + public string Invoice { get; set; } = null!; + public double PesoBruto { get; set; } = 0!; + public string Aduana { get; set; } = null!; + public string Ruta { get; set; } = null!; + public string Cliente { get; set; } = null!; + public string PedidoCliente { get; set; } = null!; + public string Transportista { get; set; } = null!; + public string ResponsableCruce { get; set; } = null!; + public string Sello { get; set; } = null!; + public string Placas { get; set; } = null!; + public string Carga { get; set; } = null!; + public string TipoPedimento { get; set; } = null!; + public int IdDestino { get; set; } = 0; + public string Entregar { get; set; } = null!; + public string ConceptoEmbalaje { get; set; } = null!; + public string FolioReferencia { get; set; } = null!; + public long IDXML { get; set; } = 0; + public long IDPDF { get; set; } = 0; + public long IDDoda { get; set; } = 0; + public long IDPrefile { get; set; } = 0; + public string FRegistro { get; set; } = null!; + public string FActualizacion { get; set; } = null!; + public byte EsHazmat { get; set; } = 0; + public string SCAC { get; set; } = null!; + public string CAAT { get; set; } = null!; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868FacturaDetalle.cs b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868FacturaDetalle.cs new file mode 100644 index 0000000..32fea38 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/Model/I1868FacturaDetalle.cs @@ -0,0 +1,21 @@ +namespace GEMCO.Backend.Clientes.ZincInternacional.Model +{ + public class I1868FacturaDetalle + { + public int id { get; set; } = 0; + public int IdFactura { get; set; } = 0; + public string Cliente { get; set; } = null!; + public string FFactura { get; set; } = null!; + public int Partida { get; set; } = 0; + public double PesoBruto { get; set; } = 0; + public double TotalBultos { get; set; } = 0; + public string ProductoMateriaPrima { get; set; } = null!; + public string FraccionArancelaria { get; set; } = null!; + public string Codigo { get; set; } = null!; // Me sirve para relacionar la Fraccion Arancelaria con producto + public string ClaveSAT1 { get; set; } = null!; + public string ConceptoProductoMP { get; set; } = null!; + public string EmpaqueDescripcion { get; set; } = null!; + public string ClaveSAT2 { get; set; } = null!; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/Repository/ZincInternacionalRepository.cs b/GEMCO.Backend/Clientes/ZincInternacional/Repository/ZincInternacionalRepository.cs new file mode 100644 index 0000000..045a3c1 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/Repository/ZincInternacionalRepository.cs @@ -0,0 +1,229 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Clientes.ZincInternacional.Contracts; +using GEMCO.Backend.Clientes.ZincInternacional.Model; +using GEMCO.Backend.Clientes.ZincInternacional.DTO; +using System.Data; + +namespace GEMCO.Backend.Clientes.ZincInternacional.Repository +{ + public class ZincInternacionalRepository : IZincInternacionalRepository + { + private readonly DapperContext _context; + public ZincInternacionalRepository(DapperContext context) { _context = context; } + public async Task Append(I1868Factura data) + { + var query = "[Clientes.ZincInternacional.Factura.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @FechaFactura = data.FechaFactura, + @Invoice = data.Invoice, + @PesoBruto = data.PesoBruto, + @Ruta = data.Ruta, + @Cliente = data.Cliente, + @PedidoCliente = data.PedidoCliente, + @Transportista = data.Transportista, + @ResponsableCruce = data.ResponsableCruce, + @FolioReferencia = data.FolioReferencia, + @IdXML = data.IDXML, + @EsHazmat = data.EsHazmat, + @IdDestino = data.IdDestino, + @Activo = 1 + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task AppendDetail(I1868FacturaDetalle data) + { + var query = "[Clientes.ZincInternacional.Factura.Detalle.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @IdFactura = data.IdFactura, + @FFactura = data.FFactura, + @Partida = data.Partida, + @TotalBultos = data.TotalBultos, + @PesoBruto = data.PesoBruto, + @Codigo = data.Codigo, + @ProductoMateriaPrima = data.ProductoMateriaPrima, + @FraccionArancelaria = data.FraccionArancelaria, + @ClaveSAT1 = data.ClaveSAT1, + @ConceptoProductoMP = data.ConceptoProductoMP, + @EmpaqueDescripcion = data.EmpaqueDescripcion, + @ClaveSAT2 = data.ClaveSAT2, + @Activo = 1 + }, + commandType: CommandType.StoredProcedure); + return true; + } + public async Task CatDestinosAppend(I1868CatDestinos data) + { + var query = "[Clientes.ZincInternacional.CatDestinos.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @Lugar = data.Lugar, + @Direccion = data.Direccion + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task CatResponsablesAppend(I1868CatResponsables data) + { + var query = "[Clientes.ZincInternacional.CatResponsables.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @Responsable = data.Responsable, + @Activo = data.Activo + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task RelacionaPDFaFactura(long id, string Filename) + { + var query = "[Clientes.ZincInternacional.Factura.Relate]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + @Filename = Filename + }, + commandType: CommandType.StoredProcedure); + return true; + } + public async Task RelacionaPorProceso(int id, long IdFile, int Proceso) + { + var query = "[Clientes.ZincInternacional.Factura.RelateByProcess]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + @idFile = IdFile, + @Proceso = Proceso + }, + commandType: CommandType.StoredProcedure); + return true; + } + public async Task> getAll(string Inicio, string Fin, int UserId) + { + var query = "[Reportes.Web.Clientes.ZincInternacional.Factura.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Inicio = Inicio, + @Fin = Fin, + @UserId = UserId + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task> getAllDetail(string Inicio, string Fin) + { + var query = "[Reportes.Web.Clientes.ZincInternacional.Factura.Detalle.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Inicio = Inicio, + @Fin = Fin + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task> getCatProductos() + { + var query = "[Clientes.ZincInternacional.CatProductos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { }, commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + public async Task> getCatClaveSAT() + { + var query = "[Clientes.ZincInternacional.CatClaveSAT.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { }, commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + public async Task> getCatDestinos() + { + var query = "[Clientes.ZincInternacional.CatDestinos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { }, commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + public async Task> GetCatResponsables() + { + var query = "[Clientes.ZincInternacional.CatResponsables.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { }, commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + public async Task UpdateMaster(DTO1868Factura data) + { + var query = "[Clientes.ZincInternacional.Factura.Update]"; + using var connection = _context.CreateConnection(); + try + { + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @Sello = data.Sello, + @Placas = data.Placas, + @IdResponsable = data.IdResponsable, + @Responsable = data.Responsable, + @IdDestino = data.IdDestino, + @Entregar = data.Entregar, + }, + commandType: CommandType.StoredProcedure); + } + catch (InvalidCastException e) + { + Console.WriteLine(e.ToString()); + return false; + } + return true; + } + public async Task UpdateDetail(DTO1868FacturaDetalle data) + { + var query = "[Clientes.ZincInternacional.Factura.Detalle.Update]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @ClaveSAT = data.ClaveSAT, + @Empaque = data.Empaque + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task> getClientes() + { + var query = "[Clientes.ZincInternacional.Clientes.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { }, commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task AppendSCACCAT(DTO1868SCACCAAT data) + { + var query = "[Clientes.ZincInternacional.Factura.SCACCAAT.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @SCAC = data.SCAC, + @CAAT = data.CAAT + }, + commandType: CommandType.StoredProcedure); + return true; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Clientes/ZincInternacional/Services/SvcZincInternacional.cs b/GEMCO.Backend/Clientes/ZincInternacional/Services/SvcZincInternacional.cs new file mode 100644 index 0000000..b2c1328 --- /dev/null +++ b/GEMCO.Backend/Clientes/ZincInternacional/Services/SvcZincInternacional.cs @@ -0,0 +1,233 @@ +using System.Reflection.Metadata; +using System.Numerics; +using System; +using System.Xml.Linq; +using GEMCO.Backend.Clientes.ZincInternacional.Contracts; +using GEMCO.Backend.Clientes.ZincInternacional.Model; +namespace GEMCO.Backend.Clientes.ZincInternacional.Services +{ + public class SvcZincInternacional + { + private readonly IZincInternacionalRepository _Repo; + private readonly string rutaArchivo; + public SvcZincInternacional(IZincInternacionalRepository Repo, String Archivo) + { + _Repo = Repo; + rutaArchivo = Archivo; + } + + public async Task ReadXml(long IdArchivo) + { + XDocument doc = XDocument.Load(rutaArchivo); + I1868Factura data = new I1868Factura(); + var allElements = doc.Descendants(); + // Get header for master record + foreach (XElement element in allElements) + { + foreach (XAttribute attribute in element.Attributes()) + { + if (attribute.ToString().Contains("FechaTimbrado")) data.FechaFactura = attribute.Value.Replace("T", " "); + if (attribute.ToString().Contains("SerieFolio")) data.Invoice = attribute.Value; + if (attribute.ToString().Contains("PesoBruto")) data.PesoBruto = Convert.ToDouble(attribute.Value.Length > 0 ? attribute.Value : "0"); + if (attribute.ToString().Contains("NoContenedor")) data.Ruta = attribute.Value; + if (attribute.ToString().Contains("RazonSocial")) data.Cliente = attribute.Value; + if (attribute.ToString().Contains("FolioOrdenCompra")) data.PedidoCliente = attribute.Value; + if (attribute.ToString().Contains("Transportista")) + { + data.Transportista = attribute.Value; + data.ResponsableCruce = attribute.Value; + } + if (attribute.ToString().Contains("FolioReferencia")) data.FolioReferencia = attribute.Value; + } + } + data.IDXML = IdArchivo; + + + + // Get destination for invoice + I1868CatDestinos DestinoFinal = new I1868CatDestinos(); + string Destino = ""; + foreach (XElement element in allElements) + { + foreach (XAttribute attribute in element.Attributes()) + { + if (attribute.ToString().Contains("SucursalDesc")) Destino += attribute.Value; + if (attribute.ToString().Contains("DireccionSucursal")) Destino += " " + attribute.Value; + if (attribute.ToString().Contains("DomicilioSucursalCliente")) Destino += " " + attribute.Value; + if (attribute.ToString().Contains("CPSucursalCliente")) Destino += " " + attribute.Value; + } + } + DestinoFinal.id = 0; + DestinoFinal.Lugar = Destino; + DestinoFinal.Direccion = Destino; + var InfoDestino = await _Repo.CatDestinosAppend(DestinoFinal); + data.IdDestino = InfoDestino.id; + + + // Get detail for master record + List LFDetail = new List(); + LFDetail = getDetail(allElements.Elements()); + I1868Factura resultMaster = await _Repo.Append(data); + + foreach (I1868FacturaDetalle obj in LFDetail) + { + obj.IdFactura = resultMaster.id; + obj.Cliente = resultMaster.Cliente; + obj.FFactura = resultMaster.FechaFactura; + } + foreach (I1868FacturaDetalle obj in LFDetail) + { + await _Repo.AppendDetail(obj); + } + return true; + } + + static List getDetail(IEnumerable list1) + { + List LFDetail = new List(); + // var data = new I1868FacturaDetalle(); + string Substring = ""; + string LineaClave = ""; + string LineaInnecesaria = ""; + string Renglon = "", Codigo = "", PesoNeto = "", TotalBultos = ""; + int NoRenglones = 0, TotBultos = 0; + foreach (XElement el in list1) + { + if (new string[] { "Addenda" }.Any(s => el.ToString().Contains(s))) // Header tag + { + var Linea = el.ToString(); + + for (var ciclo = 1; ciclo <= 10; ciclo++) + { + //Substring = getBetween(Linea, ""); + Substring = getBetween(Linea, ""); + //LineaClave = ""; + LineaClave = ""; + Linea = Linea.Replace(LineaClave, ""); + LineaInnecesaria = getBetween(LineaClave, ""); + LineaClave = LineaClave.Replace("", ""); + Renglon = getValue(LineaClave, "Renglon="); + var isNumeric = int.TryParse(Renglon, out int n); + if (!isNumeric) break; + else NoRenglones = Int32.Parse(Renglon); + Codigo = getValue(LineaClave, "Codigo="); + PesoNeto = getValue(LineaClave, "PesoNeto="); + PesoNeto = DigitsOnly(PesoNeto); + TotalBultos = getValue(LineaClave, "TotalBultos="); + isNumeric = int.TryParse(TotalBultos, out int m); + if (!isNumeric) break; + else TotBultos = Int32.Parse(TotalBultos); + var data = new I1868FacturaDetalle(); + data.Partida = ciclo; + isNumeric = double.TryParse(PesoNeto, out double d); + if (!isNumeric) data.PesoBruto = 0; + else data.PesoBruto = Convert.ToDouble(PesoNeto); + data.TotalBultos = TotBultos; + data.Codigo = Codigo; + data.ProductoMateriaPrima = ""; + data.FraccionArancelaria = ""; + data.ClaveSAT1 = ""; + data.ConceptoProductoMP = ""; + data.EmpaqueDescripcion = ""; + data.ClaveSAT2 = ""; + data.FFactura = ""; + LFDetail.Add(data); + } + } + } + string NoIdentificacion = "", FraccionArancelaria = ""; + // Extrae Numero de Identificacion y Fraccion Arancelaria + foreach (XElement el in list1) + { + if (new string[] { "cfdi:Complemento" }.Any(s => el.ToString().Contains(s))) // Header tag + { + var Linea = el.ToString(); + Linea = getBetween(Linea, "", ""); + LineaClave = getBetween(Linea, ""); + for (var ciclo = 1; ciclo <= NoRenglones; ciclo++) + { + LineaClave = ""; + NoIdentificacion = getValue(LineaClave, "NoIdentificacion="); + FraccionArancelaria = getValue(LineaClave, "FraccionArancelaria="); + foreach (I1868FacturaDetalle obj in LFDetail) + { + //if (obj.Partida == ciclo && obj.Codigo == NoIdentificacion) + if (obj.Codigo == NoIdentificacion) + { + obj.FraccionArancelaria = FraccionArancelaria; + break; + } + } + //Console.WriteLine(getValue(LineaClave, "NoIdentificacion") + " " + getValue(LineaClave, "FraccionArancelaria")); + LineaClave = Linea.Replace(LineaClave, ""); + //Console.WriteLine(""); // Child tags + } + //Console.WriteLine(""); + } + } + return LFDetail; + } + + static string DigitsOnly(string s) + { + string res = ""; + for (int i = 0; i < s.Length; i++) + { + if (Char.IsDigit(s[i]) || s[i] == '.') + res += s[i]; + } + return res; + } + + static string cleanValue(string strOriginal, string strRemove) + { + strOriginal = strOriginal.Replace(strRemove, ""); + strOriginal = strOriginal.Replace("\"", ""); + return ""; + } + + static string getBetween(string strSource, string strStart, string strEnd) + { + if (strSource.Contains(strStart) && strSource.Contains(strEnd)) + { + int Start, End; + Start = strSource.IndexOf(strStart, 0) + strStart.Length; + End = strSource.IndexOf(strEnd, Start); + return strSource.Substring(Start, End - Start); + } + return ""; + } + + static string getValue(string Cadena, string key) + { + var array = Cadena.Split(' '); + foreach (string x in array) + { + if (x.Contains(key)) + { + var strOriginal = x; + strOriginal = strOriginal.Replace(key, ""); + strOriginal = strOriginal.Replace("\"", ""); + return strOriginal; + } + } + return ""; + } + + public async Task EsProductoHAZMAT(int Codigo) + { + IEnumerable ProductosHAZMAT = new List(); + ProductosHAZMAT = await _Repo.getCatProductos(); + I1868CatProductos? found = ProductosHAZMAT.FirstOrDefault(x => x.Codigo == Codigo); + if (found != null) return 1; + return 0; + } + + public async Task RelacionaPDFaFactura(long id, string Filename) + { + var arrFilename = Filename.Split('_'); // El nombre del archivo viene con la fecha y hora de subida, hay que limpiar esto... + await _Repo.RelacionaPDFaFactura(id, arrFilename[0]); + return true; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Context/DapperContext.cs b/GEMCO.Backend/Context/DapperContext.cs new file mode 100644 index 0000000..85566ca --- /dev/null +++ b/GEMCO.Backend/Context/DapperContext.cs @@ -0,0 +1,18 @@ +using Microsoft.Data.SqlClient; +using System.Data; + +namespace GEMCO.Backend.Context +{ + public class DapperContext + { + private readonly IConfiguration _configuration; + private readonly string _connectionString; + public DapperContext(IConfiguration configuration) + { + _configuration = configuration; + _connectionString = _configuration.GetConnectionString("SqlConnection"); + } + public IDbConnection CreateConnection() + => new SqlConnection(_connectionString); + } +} diff --git a/GEMCO.Backend/Contracts/AnexoFacturacion/IAnexoFacturacionRepository.cs b/GEMCO.Backend/Contracts/AnexoFacturacion/IAnexoFacturacionRepository.cs new file mode 100644 index 0000000..7da08e3 --- /dev/null +++ b/GEMCO.Backend/Contracts/AnexoFacturacion/IAnexoFacturacionRepository.cs @@ -0,0 +1,12 @@ +using GEMCO.Backend.Models.AnexoFacturacion; +using GEMCO.Backend.DTO.AnexoFacturacion; + +namespace GEMCO.Backend.Contracts.AnexoFacturacion +{ + public interface IAnexoFacturacionRepository + { + public Task> GetRptAnexoFacturacionMission(DTOAnexoFacturacionMission data); + public Task> GetRptConsolidadosSinCerrar(); + public Task> GetRptAnexoFacturacionAlen(DTOAnexoFacturacionAlen data); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Catalogos/ICorresponsalesRepository.cs b/GEMCO.Backend/Contracts/Catalogos/ICorresponsalesRepository.cs new file mode 100644 index 0000000..874d6d8 --- /dev/null +++ b/GEMCO.Backend/Contracts/Catalogos/ICorresponsalesRepository.cs @@ -0,0 +1,12 @@ +using GEMCO.Backend.Models.Catalogos; + +namespace GEMCO.Backend.Contracts.Catalogos +{ + public interface ICorresponsalesRepository + { + public Task> GetAll(); + public Task> GetAllFormated(); + public Task Append(CatCorresponsales data); + public Task Delete(int id); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Catalogos/IProveedoresRepository.cs b/GEMCO.Backend/Contracts/Catalogos/IProveedoresRepository.cs new file mode 100644 index 0000000..4e8eaf5 --- /dev/null +++ b/GEMCO.Backend/Contracts/Catalogos/IProveedoresRepository.cs @@ -0,0 +1,11 @@ +using GEMCO.Backend.Models; + +namespace GEMCO.Backend.Contracts.Catalogos +{ + public interface IProveedoresRepository + { + public Task> GetAll(int Clasificacion); + public Task Append(CatProveedores data); + public Task Delete(int id); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Catalogos/ITabuladorDetalleRepository.cs b/GEMCO.Backend/Contracts/Catalogos/ITabuladorDetalleRepository.cs new file mode 100644 index 0000000..62e5f8a --- /dev/null +++ b/GEMCO.Backend/Contracts/Catalogos/ITabuladorDetalleRepository.cs @@ -0,0 +1,13 @@ +using GEMCO.Backend.DTO; +using GEMCO.Backend.Models.Catalogos; +namespace GEMCO.Backend.Contracts.Catalogos +{ + public interface ITabuladorDetalleRepository + { + public Task> Append(TabuladorDetalle data); + public Task> GetDetailByIdTab(int id); + public Task> GetAll(int id, int IdCliente); + public Task Delete(int id); + public Task> GetAllConcepts(); + } +} diff --git a/GEMCO.Backend/Contracts/Catalogos/ITabuladorRepository.cs b/GEMCO.Backend/Contracts/Catalogos/ITabuladorRepository.cs new file mode 100644 index 0000000..b695972 --- /dev/null +++ b/GEMCO.Backend/Contracts/Catalogos/ITabuladorRepository.cs @@ -0,0 +1,10 @@ +using GEMCO.Backend.Models.Catalogos; +namespace GEMCO.Backend.Contracts.Catalogos +{ + public interface ITabuladorRepository + { + public Task> GetAll(int id, int IdCliente); + public Task Append(Tabulador data); + public Task Delete(int id); + } +} diff --git a/GEMCO.Backend/Contracts/Clientes/CasaCuervo/ICasaCuervoRepository.cs b/GEMCO.Backend/Contracts/Clientes/CasaCuervo/ICasaCuervoRepository.cs new file mode 100644 index 0000000..7fcbbdf --- /dev/null +++ b/GEMCO.Backend/Contracts/Clientes/CasaCuervo/ICasaCuervoRepository.cs @@ -0,0 +1,16 @@ +using GEMCO.Backend.Models.Clientes.CasaCuervo; +using GEMCO.Backend.DTO.Clientes.CasaCuervo; + +namespace GEMCO.Backend.Contracts.Clientes.CasaCuervo +{ + public interface ICasaCuervoRepository + { + public Task Append(List data); + public Task UpdateInfoFromCorresponsal(List data); + public Task> getAll(string Inicio, string Fin, string Aduana); + public Task GetById(int Id); + public Task UpdateInfoFromWeb(DTO325UpdateFromWeb data); + public Task> getAduanas(int Usuario, int TipoUsuario); + public Task> GetRptCOVE(string Inicio, string Fin); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Contabilidad/Corresponsalias/IContabilidadCorresponsaliasRepository.cs b/GEMCO.Backend/Contracts/Contabilidad/Corresponsalias/IContabilidadCorresponsaliasRepository.cs new file mode 100644 index 0000000..49d6fe3 --- /dev/null +++ b/GEMCO.Backend/Contracts/Contabilidad/Corresponsalias/IContabilidadCorresponsaliasRepository.cs @@ -0,0 +1,10 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Contabilidad.Corresponsalias +{ + public interface IContabilidadCorresponsaliasRepository + { + public Task Append(CorresponsalTraficoContabilidad data); + public Task> Get(int IdTrafico, int tipo); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasAnticiposRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasAnticiposRepository.cs new file mode 100644 index 0000000..5dba5e3 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasAnticiposRepository.cs @@ -0,0 +1,15 @@ +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasAnticiposRepository + { + public Task Append(CorresponsalAnticipos data); + public Task> getAll(int IdTrafico); + public Task Delete(int id); + public Task GetTotalAnticiposPendientes(); + public Task Autoriza(DTOCorresponsalesAnticipo data); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatAduanasRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatAduanasRepository.cs new file mode 100644 index 0000000..f8e3713 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatAduanasRepository.cs @@ -0,0 +1,9 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasCatAduanasRepository + { + public Task> getAll(int IdCliente); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatDestinosRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatDestinosRepository.cs new file mode 100644 index 0000000..ba2db58 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatDestinosRepository.cs @@ -0,0 +1,9 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasCatDestinosRepository + { + public Task> getAll(int IdCliente); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatMediosEmbarqueRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatMediosEmbarqueRepository.cs new file mode 100644 index 0000000..dea4de9 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatMediosEmbarqueRepository.cs @@ -0,0 +1,9 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasCatMediosEmbarqueRepository + { + public Task> getAll(); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatTipoEmbarqueRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatTipoEmbarqueRepository.cs new file mode 100644 index 0000000..f52169e --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatTipoEmbarqueRepository.cs @@ -0,0 +1,9 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasCatTipoEmbarqueRepository + { + public Task> getAll(); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatTiposDocumentosRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatTiposDocumentosRepository.cs new file mode 100644 index 0000000..026436c --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCatTiposDocumentosRepository.cs @@ -0,0 +1,11 @@ +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasCatTiposDocumentosRepository + { + public Task> getAll(int Cliente, int Clasificacion); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasContenedoresRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasContenedoresRepository.cs new file mode 100644 index 0000000..669c918 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasContenedoresRepository.cs @@ -0,0 +1,12 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasContenedoresRepository + { + public Task> GetAll(int IdTrafico); + public Task Append(CorresponsalesContenedores data); + public Task Delete(int id); + public Task Appendc1896(CorresponsalesContenedores data); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCuentasComplementarias.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCuentasComplementarias.cs new file mode 100644 index 0000000..7d07c21 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasCuentasComplementarias.cs @@ -0,0 +1,17 @@ +using GEMCO.Backend.Models.Corresponsales; +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Models; +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasCuentasComplementarias + { + public Task Append(DTOCorresponsalCuentaComplementaria data); + public Task> Get(int IdTrafico); + public Task GetPendientes(); + public Task> GetEstatus(); + public Task AppendEstatus(CorresponsalCuentasComplementariasEstatus data); + public Task ChangeEstatus(DTOCorresponsalCuentaComplementariaEstatus data); + public Task> GetLogEstatus(int id); + public Task ClearFile(int id, byte witchFile); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasFacturasRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasFacturasRepository.cs new file mode 100644 index 0000000..4d64339 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasFacturasRepository.cs @@ -0,0 +1,12 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasFacturasRepository + { + public Task> GetAll(int idTrafico); + public Task Append(CorresponsalFacturas data); + public Task Delete(int id); + public Task Appendc1896(CorresponsalFacturas data, string UUID); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasFacturasTercerosRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasFacturasTercerosRepository.cs new file mode 100644 index 0000000..71ca933 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasFacturasTercerosRepository.cs @@ -0,0 +1,10 @@ +using GEMCO.Backend.Models.Corresponsales; +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasFacturasTercerosRepository + { + public Task> GetAll(int IdTrafico); + public Task Append(CorresponsalFacturasTerceros data); + public Task Delete(int id); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasGuiasRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasGuiasRepository.cs new file mode 100644 index 0000000..cfeff7b --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasGuiasRepository.cs @@ -0,0 +1,10 @@ +using GEMCO.Backend.Models.Corresponsales; +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasGuiasRepository + { + public Task> GetAll(int IdTrafico); + public Task Append(CorresponsalesGuias data); + public Task Delete(int id); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasPedimentoPartidasRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasPedimentoPartidasRepository.cs new file mode 100644 index 0000000..0c232b5 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasPedimentoPartidasRepository.cs @@ -0,0 +1,11 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasPedimentoPartidasRepository + { + public Task Append(CorresponsalPedimentoPartida data); + public Task> getAll(int IdTrafico); + public Task Delete(int id); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasPedimentoRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasPedimentoRepository.cs new file mode 100644 index 0000000..c69abb2 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasPedimentoRepository.cs @@ -0,0 +1,11 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasPedimentoRepository + { + public Task Append(CorresponsalPedimento data); + public Task Get(int IdTrafico); + public Task Delete(int id); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasPrecuentaRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasPrecuentaRepository.cs new file mode 100644 index 0000000..52aae5c --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasPrecuentaRepository.cs @@ -0,0 +1,11 @@ +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasPrecuentaRepository + { + public Task> GetAll(int id, int IdTrafico); + public Task ChangeStatus(int id); + public Task> Append(int IdTabulador, int IdTrafico); + } +} diff --git a/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasTraficosRepository.cs b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasTraficosRepository.cs new file mode 100644 index 0000000..8e6ca44 --- /dev/null +++ b/GEMCO.Backend/Contracts/Corresponsalias/ICorresponsaliasTraficosRepository.cs @@ -0,0 +1,20 @@ +using GEMCO.Backend.Models; +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Models.Corresponsales; +using GEMCO.Backend.Repository.Corresponsalias; + +namespace GEMCO.Backend.Contracts.Corresponsalias +{ + public interface ICorresponsaliasTraficosRepository + { + public Task Get(int id); + public Task GetAll(int Mode); + public Task> GetRectificaciones(int id); + public Task AddRectificacion(int id); + public Task Append(ITrafico data); + public Task> GetTraficoEstatus(); + public Task ValidaTraficoCompleto(DTOTraficoCompleto data); + public Task RectificacionHistoricoAppend(DTORectificacionHistorico data); + public Task RectificacionHistoricoGet(int IdTrafico); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Dashboard/IDashboardCorresponsalesRepository.cs b/GEMCO.Backend/Contracts/Dashboard/IDashboardCorresponsalesRepository.cs new file mode 100644 index 0000000..0563c1b --- /dev/null +++ b/GEMCO.Backend/Contracts/Dashboard/IDashboardCorresponsalesRepository.cs @@ -0,0 +1,10 @@ +using GEMCO.Backend.Models; + +namespace GEMCO.Backend.Contracts.Dashboard +{ + public interface IDashboardCorresponsalesRepository + { + public Task> Get(); + public Task GetTipoCambio(string Fecha); + } +} diff --git a/GEMCO.Backend/Contracts/IArchivoElectronico.cs b/GEMCO.Backend/Contracts/IArchivoElectronico.cs new file mode 100644 index 0000000..7410a35 --- /dev/null +++ b/GEMCO.Backend/Contracts/IArchivoElectronico.cs @@ -0,0 +1,16 @@ +using GEMCO.Backend.DTO.ArchivoElectronico; +using GEMCO.Backend.DTO.Battery; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Reportes; + +namespace GEMCO.Backend.Contracts +{ + public interface IArchivoElectronico + { + public Task> GetAOCheckLists(); + public Task> getArchivoOficial(DTOAEPeriodoSeleccion data); + public Task createLogFotosBodega(LogFotosBodega data); + public Task> getLogFotosBodega(DTOLogFotosBodega data); + public Task> getRptPedimentoPagadosAEO(DTOAEPeriodo data); + } +} diff --git a/GEMCO.Backend/Contracts/IBatteryRepository.cs b/GEMCO.Backend/Contracts/IBatteryRepository.cs new file mode 100644 index 0000000..a10acd0 --- /dev/null +++ b/GEMCO.Backend/Contracts/IBatteryRepository.cs @@ -0,0 +1,14 @@ +using GEMCO.Backend.DTO.Battery; +using GEMCO.Backend.DTO.Reportes; +using GEMCO.Backend.Models; + +namespace GEMCO.Backend.Contracts +{ + public interface IBatteryRepository + { + public Task updatePallete2Warehouse(DTOBatteryEntry data); + public Task> getBatteryInfo(DTOBatteryInfo data); + public Task> getReportFromWarehouse(DTOReporte data); + public Task getPalletWeight(string data); + } +} diff --git a/GEMCO.Backend/Contracts/IClientesRepository.cs b/GEMCO.Backend/Contracts/IClientesRepository.cs new file mode 100644 index 0000000..0d9ddd9 --- /dev/null +++ b/GEMCO.Backend/Contracts/IClientesRepository.cs @@ -0,0 +1,16 @@ +using GEMCO.Backend.DTO.Cliente; +using GEMCO.Backend.DTO.Usuario; +using GEMCO.Backend.Models; + +namespace GEMCO.Backend.Contracts +{ + public interface IClientesRepository + { + public Task> getAllClientes(int id); + public Task> getClientesAsignados(int id); + public Task GetCustomerName(int sClave); + public Task> addCliente(DTOClienteUsuario CU); + public Task> asignaClienteProveedor(DTOClienteProveedor cp); + public Task> asignaUsuarioTransportista(DTOUsuarioTransportista t); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/IMenuRepository.cs b/GEMCO.Backend/Contracts/IMenuRepository.cs new file mode 100644 index 0000000..2a5531f --- /dev/null +++ b/GEMCO.Backend/Contracts/IMenuRepository.cs @@ -0,0 +1,9 @@ +using GEMCO.Backend.Models; + +namespace GEMCO.Backend.Contracts +{ + public interface IMenuRepository + { + public Task> GetItemsMenu(Usuarios user); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/IPerfilesRepository.cs b/GEMCO.Backend/Contracts/IPerfilesRepository.cs new file mode 100644 index 0000000..4866fa2 --- /dev/null +++ b/GEMCO.Backend/Contracts/IPerfilesRepository.cs @@ -0,0 +1,20 @@ +using GEMCO.Backend.DTO; +using GEMCO.Backend.DTO.Usuario; +using GEMCO.Backend.Models; + +namespace GEMCO.Backend.Contracts +{ + public interface IPerfilesRepository + { + public Task> getPerfiles(); + public Task PerfilGetById(int id); + public Task> getMenu(); + public Task> getPerfilMenuById(int id); + public Task> getAllPerfilesMenu(); + public Task> createPerfil(DTOPerfilCreate data); + public Task> createItemMenu(Menu data); + public Task> asignaItemMenuPerfil(DTOItemMenuPerfil data); + public Task> getAllTransportistas(int id); + public Task> getAllProveedores(int id); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/IUsuariosRepository.cs b/GEMCO.Backend/Contracts/IUsuariosRepository.cs new file mode 100644 index 0000000..d649f81 --- /dev/null +++ b/GEMCO.Backend/Contracts/IUsuariosRepository.cs @@ -0,0 +1,23 @@ +using GEMCO.Backend.DTO; +using GEMCO.Backend.DTO.Usuario; +using GEMCO.Backend.Models; + +namespace GEMCO.Backend.Contracts +{ + public interface IUsuariosRepository + { + public Task> getAllUsuariosShort(); + public Task> getAllUsuarios(); + public Task GetUsuario(DTOLogin user); + public Task searchUsuario(string Usuario); + public Task GetUsuarioById(int id); + public Task createUsuario(Usuarios user); + public Task CreatePIN(int Id); + public Task ValidatePIN(DTOPINUsuario data); + public Task resetPassword(DTOResetPassword user); + public Task> clonarUsuario(DTOClonarUsuario user); + public Task> CatalogoRolesGET(); + public Task> RolesAsignadosGET(int id); + public Task> GETPerfilesParecidos(string Perfil); + } +} diff --git a/GEMCO.Backend/Contracts/ReportesRepository.cs b/GEMCO.Backend/Contracts/ReportesRepository.cs new file mode 100644 index 0000000..28ba2a9 --- /dev/null +++ b/GEMCO.Backend/Contracts/ReportesRepository.cs @@ -0,0 +1,22 @@ +using GEMCO.Backend.Models.Reportes; +using GEMCO.Backend.DTO.Reportes; +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Clientes.Heineken.Model; + +namespace GEMCO.Backend.Contracts +{ + public interface IReportesRepository + { + public Task> getPedimentosPagados(DTOReporte data); + public Task> getPedimentosPagadosImpuestos(DTOReporte data); + public Task> getPedimentosPagadosFacturasCruzadas(DTOReporte data); + public Task> getDetalleAnexo24(DTOReporte data); + public Task> getOperacionesRemesa(); + public Task> getPedimentosConsolidados(DTOReporte data); + public Task> GetRptCorresponsalesTraficos(DTOReporteCorresponsales data); + public Task> GetRptOperaciones(string Inicio, string Fin, int TipoOperacion, int NoCliente); + public Task> GetRptOperacionesConsolidadas(string Inicio, string Fin, int TipoOperacion, int NoCliente); + public Task GenerateControlDocumentosClientes(); + public Task> GetRptOperacionesDiarias(string Inicio, string Fin, int TipoOperacion, int Cliente); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Utils/IFileManagerRepository.cs b/GEMCO.Backend/Contracts/Utils/IFileManagerRepository.cs new file mode 100644 index 0000000..bad2aaf --- /dev/null +++ b/GEMCO.Backend/Contracts/Utils/IFileManagerRepository.cs @@ -0,0 +1,14 @@ +using GEMCO.Backend.Models.Utils; + +namespace GEMCO.Backend.Contracts.Utils +{ + public interface IFileManagerRepository + { + public Task FileManager(FileManager data); + public Task getFileByProcess(long id, int Proceso); + public Task> getAllFilesByProcess(long Tags, int Proceso); + public Task getFileById(long id); + public Task deleteFileByProcess(long id, int Proceso); + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Utils/IFilePaths4ProcessRepository.cs b/GEMCO.Backend/Contracts/Utils/IFilePaths4ProcessRepository.cs new file mode 100644 index 0000000..2af85a0 --- /dev/null +++ b/GEMCO.Backend/Contracts/Utils/IFilePaths4ProcessRepository.cs @@ -0,0 +1,10 @@ +using System.Numerics; +using GEMCO.Backend.Models.Utils; + +namespace GEMCO.Backend.Contracts.Utils +{ + public interface IFilePaths4ProcessRepository + { + public Task getPaths4ProcessById(long id); + } +} diff --git a/GEMCO.Backend/Contracts/Utils/IPDFGenerator.cs b/GEMCO.Backend/Contracts/Utils/IPDFGenerator.cs new file mode 100644 index 0000000..7436807 --- /dev/null +++ b/GEMCO.Backend/Contracts/Utils/IPDFGenerator.cs @@ -0,0 +1,9 @@ +using GEMCO.Backend.Models.Clientes.CasaCuervo; + +namespace GEMCO.Backend.Contracts.Utils +{ + public interface IPDFGenerator + { + public Task GeneratePdfFromString(string htmlContent); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Utils/IValidaFraccion.cs b/GEMCO.Backend/Contracts/Utils/IValidaFraccion.cs new file mode 100644 index 0000000..9ca68d4 --- /dev/null +++ b/GEMCO.Backend/Contracts/Utils/IValidaFraccion.cs @@ -0,0 +1,7 @@ +namespace GEMCO.Backend.Contracts.Utils +{ + public interface IValidaFraccion + { + public Boolean ValidaFraccion(string Fraccion); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Contracts/Utils/Notificaciones/INotificacionesRepository.cs b/GEMCO.Backend/Contracts/Utils/Notificaciones/INotificacionesRepository.cs new file mode 100644 index 0000000..76f1f47 --- /dev/null +++ b/GEMCO.Backend/Contracts/Utils/Notificaciones/INotificacionesRepository.cs @@ -0,0 +1,20 @@ +using GEMCO.Backend.DTO.Utils; +using GEMCO.Backend.Models.Utils.Notificaciones; + +namespace GEMCO.Backend.Contracts.Utils.Notificaciones +{ + public interface INotificacionesRepository + { + public Task ContactosAppend(INotificacionesContactos data); + public Task> ContactosGet(); + public Task GruposAppend(INotificacionesGrupos data); + public Task> GruposGet(); + public Task ContactosGruposAppend(INotificacionesContactosGrupos data); + public Task AccionContactosGrupos(DTONotificacionesContactoGrupo data); + public Task> ContactosdelGrupoGet(int IdGrupo); + public Task CatalogoAppend(INotificacionesCatalogo data); + public Task> CatalogoGet(); + public Task NotificacionesLogAppend(int IdUsuario, string Concepto, int IdGrupo); + public Task> NotificacionesLogGet(); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/AgenciaAduanal/AvisoCruceController.cs b/GEMCO.Backend/Controllers/AgenciaAduanal/AvisoCruceController.cs new file mode 100644 index 0000000..eeb92df --- /dev/null +++ b/GEMCO.Backend/Controllers/AgenciaAduanal/AvisoCruceController.cs @@ -0,0 +1,119 @@ +using DinkToPdf; +using DinkToPdf.Contracts; +using Microsoft.AspNetCore.Mvc; + +// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 + +namespace GEMCO.Backend.Controllers.AgenciaAduanal +{ + [Route("api/[controller]")] + [ApiController] + public class AvisoCruceController : ControllerBase + { + private readonly IConverter _converter; + + public AvisoCruceController(IConverter converter) + { + _converter = converter; + } + + // GET: api/ + [HttpGet] + public IEnumerable Get() + { + return new string[] { "value1", "value2" }; + } + + // GET api//5 + [HttpGet("{id}")] + public string Get(int id) + { + return "value"; + } + + // POST api/ + [HttpPost] + public IActionResult Post([FromBody] string value) + { + DateTime now = DateTime.Now; + string bgcolor = "", Issues = "", InOutText = "", ControlNumber = "", CarrierName = "", Forklift = "", InTime = "", TotPallets = "", Today = "", Trailer = "", OutTime = "", DriverName = "", TotWeight = ""; + var Info = $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@""; + Info += $@""; + Info += $@""; + Info += "
JOHNSON CONTROLS {InOutText} FORM
# 115: {ControlNumber}CARRIER/BROKER NAME:
 {CarrierName}
DATE :{Today}DRIVER NAME: {DriverName}
Forklift Driver Name: {Forklift}TRAILER # {Trailer}
TABLET ISSUES OR DRIVER CONCERNS:IN TIMEOUT TIME
{Issues} {InTime}{OutTime}
 
 
PALLET STICKER NUMBERWEIGHTPALLET STICKER NUMBERWEIGHT
TOTAL PALLET COUNTTOT WEIGHTLOADER SIGNATURE
{TotPallets}{string.Format("{0:N2}", TotWeight)} LB
"; + var html = $@" + + + + + + {Info} + + + "; + GlobalSettings globalSettings = new GlobalSettings(); + globalSettings.ColorMode = ColorMode.Color; + globalSettings.Orientation = Orientation.Portrait; + globalSettings.PaperSize = PaperKind.A4; + globalSettings.Margins = new MarginSettings { Top = 25, Bottom = 25 }; + ObjectSettings objectSettings = new ObjectSettings(); + objectSettings.PagesCount = true; + objectSettings.HtmlContent = html; + WebSettings webSettings = new WebSettings(); + webSettings.DefaultEncoding = "utf-8"; + HeaderSettings headerSettings = new HeaderSettings(); + headerSettings.FontSize = 15; + headerSettings.FontName = "Ariel"; + headerSettings.Right = ""; + headerSettings.Line = false; + FooterSettings footerSettings = new FooterSettings(); + footerSettings.FontSize = 12; + footerSettings.FontName = "Ariel"; + footerSettings.Center = ""; + footerSettings.Line = false; + objectSettings.HeaderSettings = headerSettings; + objectSettings.FooterSettings = footerSettings; + objectSettings.WebSettings = webSettings; + HtmlToPdfDocument htmlToPdfDocument = new HtmlToPdfDocument() + { + GlobalSettings = globalSettings, + Objects = { objectSettings }, + }; + var pdfFile = _converter.Convert(htmlToPdfDocument); + Stream stream = new MemoryStream(pdfFile); + SaveStreamAsFile("c:\\downs\\temp", stream, now.ToString("MM_dd_yyyy_HH_mm_ss") + ".pdf"); + return new OkObjectResult(new { respuesta = "Archivo generado" }); + } + + public static void SaveStreamAsFile(string filePath, Stream inputStream, string fileName) + { + DirectoryInfo info = new DirectoryInfo(filePath); + if (!info.Exists) { info.Create(); } + string path = Path.Combine(filePath, fileName); + using (FileStream outputFileStream = new FileStream(path, FileMode.Create)) { inputStream.CopyTo(outputFileStream); } + // CreateMessageWithAttachment(filePath + "\\" + fileName, Status); + } + + // PUT api//5 + [HttpPut("{id}")] + public void Put(int id, [FromBody] string value) + { + } + + // DELETE api//5 + [HttpDelete("{id}")] + public void Delete(int id) + { + } + } +} diff --git a/GEMCO.Backend/Controllers/AnexoFacturacion/AnexoFacturacionController.cs b/GEMCO.Backend/Controllers/AnexoFacturacion/AnexoFacturacionController.cs new file mode 100644 index 0000000..bdf33d0 --- /dev/null +++ b/GEMCO.Backend/Controllers/AnexoFacturacion/AnexoFacturacionController.cs @@ -0,0 +1,46 @@ +using System.CodeDom.Compiler; +using GEMCO.Backend.Models.AnexoFacturacion; +using GEMCO.Backend.Contracts.AnexoFacturacion; +using GEMCO.Backend.DTO.AnexoFacturacion; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.AnexoFacturacion +{ + [ApiController] + [Route("api/[controller]")] + public class AnexoFacturacionController : ControllerBase + { + + public IConfiguration _configuration; + private readonly IAnexoFacturacionRepository _Repo; + public AnexoFacturacionController(IConfiguration config, IAnexoFacturacionRepository Repo) + { + _configuration = config; + _Repo = Repo; + } + + [Route("GetRptAnexoFacturacionMission")] + [HttpPost] + public async Task> GetRptAnexoFacturacionMission(DTOAnexoFacturacionMission data) + { + var result = await _Repo.GetRptAnexoFacturacionMission(data); + return result; + } + + [Route("GetRptConsolidadosSinCerrar")] + [HttpPost] + public async Task> GetRptConsolidadosSinCerrar() + { + var result = await _Repo.GetRptConsolidadosSinCerrar(); + return result; + } + + [Route("GetRptAnexoFacturacionAlen")] + [HttpPost] + public async Task> GetRptAnexoFacturacionAlen(DTOAnexoFacturacionAlen data) + { + var result = await _Repo.GetRptAnexoFacturacionAlen(data); + return result; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/ArchivoElectronicoController.cs b/GEMCO.Backend/Controllers/ArchivoElectronicoController.cs new file mode 100644 index 0000000..794b4e3 --- /dev/null +++ b/GEMCO.Backend/Controllers/ArchivoElectronicoController.cs @@ -0,0 +1,213 @@ +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Reportes; +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Services.ArchivoElectronicoOficial; +using GEMCO.Backend.DTO.ArchivoElectronico; +using GEMCO.Backend.DTO.Battery; + +namespace GEMCO.Backend.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class ArchivoElectronicoController : ControllerBase + { + private readonly IClientesRepository _clientesRepo; + private readonly IReportesRepository _reportesRepo; + private readonly IArchivoElectronico _AERepo; + private readonly IConfiguration _config; + private readonly string DOCsPath; + private readonly string PicturesPath; + + public ArchivoElectronicoController(IClientesRepository usuariosRepo, IReportesRepository reportesRepo, IArchivoElectronico AERepo, + IConfiguration config) + { + _config = config; + _clientesRepo = usuariosRepo; + _reportesRepo = reportesRepo; + _AERepo = AERepo; + DOCsPath = _config.GetValue("pathArchivoElectronico"); + PicturesPath = _config.GetValue("pathFotosBodega"); + } + + [HttpPost] + [Route("upload")] + public async Task UploadImageFromWarehouse(IFormFile image) + { + string fullPath = PicturesPath; + if (image.Length > 0 && (image.FileName.EndsWith(".jpg") || image.FileName.EndsWith(".png"))) + { + var fileName = image.FileName; + if (fileName.Contains("_")) + { + var arrfileName = fileName.Split('_'); + string Proceso = arrfileName[0]; + string Referencia = arrfileName[1]; + if (Proceso == "1") Proceso = "01 CAJA LLEGO"; + if (Proceso == "2") Proceso = "02 RECIBO ASI LLEGO"; + if (Proceso == "3") Proceso = "03 REVISION"; + if (Proceso == "4") Proceso = "04 ASI SE FUE"; + if (Proceso == "5") Proceso = "05 DANOS SIN GEMCO"; + if (Proceso == "6") Proceso = "06 ETIQUETADO"; + if (Proceso == "7") Proceso = "07 MANIOBRAS ARCOSA"; + fullPath = PicturesPath + Proceso + "\\" + Referencia; + if (!Directory.Exists(fullPath)) + { + DirectoryInfo di = Directory.CreateDirectory(fullPath); + } + if (image.FileName.Contains(Referencia)) + { + var filePath = Path.Combine(PicturesPath + Proceso + "\\" + Referencia, image.FileName); + fullPath = filePath; + using (var stream = System.IO.File.Create(filePath)) { await image.CopyToAsync(stream); } + } + + } + } + // return Ok(new { respuesta = "The file has been uploaded." }); + LogFotosBodega log = await _AERepo.createLogFotosBodega( + new LogFotosBodega + { + Id = 0, + Nombre = image.FileName, + Proceso = 0, + Referencia = "", + Registrado = "", + Creado = "", + Usuario = "", + Activo = true + }); + long fileLength = new System.IO.FileInfo(fullPath).Length / 1024; + return Ok(new { respuesta = "The file has been uploaded.", size = fileLength }); + } + + [HttpGet] + [Route("getLogFotosBodega")] + public async Task> getFotosBodega([FromQuery] DTOLogFotosBodega data) + { + List _data = await _AERepo.getLogFotosBodega(data); + return _data; + } + + [HttpGet, DisableRequestSizeLimit] + [Route("getPictureContent")] + public IActionResult getPictureContent([FromQuery] LogFotosBodega data) + { + var arrFileName = data.Nombre.Split('_'); + String Proceso = arrFileName[0], Referencia = arrFileName[1], targetFile = ""; + if (Proceso == "1") Proceso = "01 CAJA LLEGO"; + if (Proceso == "2") Proceso = "02 RECIBO ASI LLEGO"; + if (Proceso == "3") Proceso = "03 REVISION"; + if (Proceso == "4") Proceso = "04 ASI SE FUE"; + if (Proceso == "5") Proceso = "05 DANOS SIN GEMCO"; + if (Proceso == "6") Proceso = "06 ETIQUETADO"; + if (Proceso == "7") Proceso = "07 MANIOBRAS ARCOSA"; + targetFile = PicturesPath + Proceso + "\\" + Referencia + "\\" + data.Nombre; + byte[] pdfBytes = System.IO.File.ReadAllBytes(targetFile); + MemoryStream ms = new MemoryStream(pdfBytes); + return new FileStreamResult(ms, "image/jpeg"); + } + + [HttpGet, DisableRequestSizeLimit] + [Route("getFile")] + public async Task getPDFContent([FromQuery] ArchivoElectronico data) + { + SArchivoElectronicoOficial SAEO = new SArchivoElectronicoOficial(_clientesRepo, _reportesRepo, _AERepo, _config); + byte[] pdfBytes = await SAEO.GetPDFContent(data); + MemoryStream ms = new MemoryStream(pdfBytes); + return new FileStreamResult(ms, "application/pdf"); + } + + // Proceso que genera un archivo zip a partir de un inicio y fin de fechas con todos los PDFs dentro de estas fechas + [HttpPost, DisableRequestSizeLimit] + [Route("downloadPDFs")] + public async Task DownloadPDFs(DTOPedimentosSeleccion data) + { + SArchivoElectronicoOficial SAEO = new SArchivoElectronicoOficial(_clientesRepo, _reportesRepo, _AERepo, _config); + byte[] pdfBytes = await SAEO.GetSeveralPDFs(data); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = "application/octet-stream"; + resp.Headers.Add("Content-Disposition", "attachment; filename=todosPedimentos.zip"); + return new FileStreamResult(ms, "application/zip"); + } + + + [HttpGet] + [Route("RptArchivoElectronicoOficial")] + public async Task> GetReporteArchivElectronicoOficial([FromQuery] DTOAEPeriodo DTOData) + { + List data = await _AERepo.getRptPedimentoPagadosAEO(DTOData); + return data; + } + + [HttpPost, DisableRequestSizeLimit] + [Route("downloadReferencesByPeriod")] + public async Task downloadReferenceByPeriod(DTOAEPeriodoSeleccion DTOData) + { + DateTime now = DateTime.Now; + string Start = now.ToString("dd_MM_yy_hh_mm_ss"); + SArchivoElectronicoOficial SAEO = new SArchivoElectronicoOficial(_clientesRepo, _reportesRepo, _AERepo, _config); + byte[] pdfBytes = await SAEO.GetReferenceFilesByPeriod(DTOData, Start); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = "application/octet-stream"; + resp.Headers.Add("Content-Disposition", "attachment; filename=" + Start + ".zip"); + return new FileStreamResult(ms, "application/zip"); + } + + + [HttpPost, DisableRequestSizeLimit] + [Route("getFilesByReference")] + public async Task getFilesByReference(ArchivoElectronicoSeleccion data) + { + DateTime now = DateTime.Now; + string Start = now.ToString("dd_MM_yy_hh_mm_ss"); + SArchivoElectronicoOficial SAEO = new SArchivoElectronicoOficial(_clientesRepo, _reportesRepo, _AERepo, _config); + byte[] pdfBytes = await SAEO.GetFilesByReference(data, Start); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = "application/octet-stream"; + resp.Headers.Add("Content-Disposition", "attachment; filename=" + data.Referencia + ".zip"); + return new FileStreamResult(ms, "application/zip"); + } + + + [HttpGet] + [Route("getFileList")] + public async Task getFileList([FromQuery] ArchivoElectronicoSeleccion data) + { + var arrPedimentoLargo = data.PedimentoLargo.Split(' '); + string Patente = arrPedimentoLargo[1]; + string Pedimento = arrPedimentoLargo[2]; + string nombreCliente = await _clientesRepo.GetCustomerName(data.NoCliente); + string Anio = "20" + data.Referencia.Substring(0, 2); + string targetFolder = DOCsPath + nombreCliente + "\\" + Anio + "\\" + data.Referencia; + SArchivoElectronicoOficial SAEO = new SArchivoElectronicoOficial(_clientesRepo, _reportesRepo, _AERepo, _config); + List MatchingFiles = await SAEO.RegExpFilesInChecklist(data, Patente, Pedimento); + List SelectedFiles = SAEO.GetSelectedFilelist(data, MatchingFiles, targetFolder); + var FilterFileNames = SelectedFiles.Select(x => x.Replace(targetFolder + "\\", string.Empty)).ToList(); + return Ok(FilterFileNames); + } + + + [HttpGet, DisableRequestSizeLimit] + [Route("getFileContent")] + public async Task getFileContent([FromQuery] ArchivoElectronico data) + { + string nombreCliente = await _clientesRepo.GetCustomerName(data.NoCliente); + if (nombreCliente.Length < 1) return NotFound(); + string Anio = "20" + data.Referencia.Substring(0, 2); + string fileMime = data.Archivo.Substring(data.Archivo.Length - 3).ToLower(); + var mime = "application/" + fileMime.ToLower(); + if (fileMime == "pdf") mime = "application/pdf"; + else if (fileMime == "xml") mime = "application/xml"; + else mime = "text/plain"; + string targetFile = DOCsPath + nombreCliente + "\\" + Anio + "\\" + data.Referencia + "\\" + data.Archivo; + byte[] pdfBytes = System.IO.File.ReadAllBytes(targetFile); + MemoryStream ms = new MemoryStream(pdfBytes); + return new FileStreamResult(ms, mime); + } + } +} diff --git a/GEMCO.Backend/Controllers/AuthController.cs b/GEMCO.Backend/Controllers/AuthController.cs new file mode 100644 index 0000000..dc0557e --- /dev/null +++ b/GEMCO.Backend/Controllers/AuthController.cs @@ -0,0 +1,215 @@ +using GEMCO.Backend.Models; +using Microsoft.IdentityModel.Tokens; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Text; +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO; +using Microsoft.AspNetCore.Authorization; +using GEMCO.Backend.DTO.Usuario; +using GEMCO.Backend.Services.Utilerias; +using GEMCO.Backend.Clientes.ZincInternacional.DTO; + +namespace GEMCO.Backend.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class AuthController : ControllerBase + { + public IConfiguration _config; + private readonly IUsuariosRepository _usuariosRepo; + private readonly IPerfilesRepository _perfilesRepo; + private readonly IMenuRepository _menuRepo; + + public AuthController(IConfiguration config, IUsuariosRepository usuariosRepo, IMenuRepository menuRepo, IPerfilesRepository perfilesRepo) + { + _config = config; + _usuariosRepo = usuariosRepo; + _perfilesRepo = perfilesRepo; + _menuRepo = menuRepo; + } + + [HttpPost] + public async Task Post(DTOLogin _userData) + { + if (_userData.Contrasena == _config.GetValue("DefaultUser:Password")) + { + return StatusCode(401, "La primera vez que accese debera cambiar su contraseña!"); + } + if (_userData != null && _userData.Usuario != null && _userData.Contrasena != null) + { + var user = await _usuariosRepo.GetUsuario(_userData); + if (user == null) return BadRequest("Invalid credentials"); + if (user != null) + { + var menu = await _menuRepo.GetItemsMenu(user); + var claims = new List(); + var ProfileData = await _perfilesRepo.PerfilGetById(user.Id); + claims.Add(new Claim(JwtRegisteredClaimNames.Sub, _config["Jwt:Subject"])); + claims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())); + claims.Add(new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString())); + claims.Add(new Claim("UserId", user.Id.ToString())); + claims.Add(new Claim("Usuario", user.Usuario)); + claims.Add(new Claim("Departamento", (user.sDept ?? user.sDept ?? "No asignado"))); + claims.Add(new Claim("UserType", (user != null) ? user.TipoUsuario.ToString() : "0")); + claims.Add(new Claim("Perfil", ProfileData.Perfil)); + foreach (Menu item in menu) { claims.Add(new Claim(ClaimTypes.Role, item.Url)); } + var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"])); + var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); + var token = new JwtSecurityToken( + _config["Jwt:Issuer"], + _config["Jwt:Audience"], + claims, + expires: DateTime.UtcNow.AddHours(Int32.Parse(_config["Jwt:ExpirationHours"])), + //expires: DateTime.UtcNow.AddMinutes(5), + signingCredentials: signIn); + + var _token = new JwtSecurityTokenHandler().WriteToken(token); + return new OkObjectResult(new { menu = menu, token = _token }); + } + else + { + return BadRequest("Invalid credentials"); + } + } + else + { + return BadRequest(); + } + } + + [HttpGet] + [Route("GetPermissions")] + public async Task GetPermissions(string Usuario, string Contrasena) + { + DTOLogin _userData = new DTOLogin(); + _userData.Usuario = Usuario; + _userData.Contrasena = Contrasena; + if (_userData.Contrasena == _config.GetValue("DefaultUser:Password")) + { + return StatusCode(401, "La primera vez que accese debera cambiar su contraseña!"); + } + if (_userData != null && _userData.Usuario != null && _userData.Contrasena != null) + { + var user = await _usuariosRepo.GetUsuario(_userData); + if (user == null) return BadRequest("Invalid credentials"); + if (user != null) + { + var menu = await _menuRepo.GetItemsMenu(user); + var claims = new List(); + /* claims.Add(new Claim(JwtRegisteredClaimNames.Sub, _config["Jwt:Subject"])); + claims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())); + claims.Add(new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString())); + claims.Add(new Claim("UserId", user.Id.ToString())); + claims.Add(new Claim("Usuario", user.Usuario)); + claims.Add(new Claim("Departamento", (user.sDept ?? user.sDept ?? "No asignado"))); + claims.Add(new Claim("UserType", (user != null) ? user.TipoUsuario.ToString() : "0")); */ + foreach (Menu item in menu) { claims.Add(new Claim(ClaimTypes.Role, item.Url)); } + var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"])); + var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); + var token = new JwtSecurityToken( + _config["Jwt:Issuer"], + _config["Jwt:Audience"], + claims, + expires: DateTime.UtcNow.AddHours(Int32.Parse(_config["Jwt:ExpirationHours"])), + //expires: DateTime.UtcNow.AddMinutes(5), + signingCredentials: signIn); + + var _token = new JwtSecurityTokenHandler().WriteToken(token); + return new OkObjectResult(new { menu = menu, token = _token }); + } + else + { + return BadRequest("Invalid credentials"); + } + } + else + { + return BadRequest(); + } + } + + [HttpGet] + [Route("GetEnvironment")] + public IActionResult GetEnvironment() + { + return StatusCode(200, Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") + ' ' + _config.GetValue("AmazonPyAPI")); + } + + [HttpPost] + [Route("validatePIN")] + public async Task validatePIN(DTOPINUsuario userData) + { + var EsPINValido = await _usuariosRepo.ValidatePIN(userData); + if (!EsPINValido) + { + //return new OkObjectResult(new { respuesta = "Acceso denegado" }); + //return NotFound(); + //return BadRequest(new { respuesta = "Acceso denegado" }); + return StatusCode(403, "Acceso denegado"); + } + return new OkObjectResult(new { respuesta = "Continua con el proceso" }); + } + + [HttpPost] + [Route("forgotPassword")] + public async Task forgotPassword(DTOLogin userData) + { + if (userData == null) return BadRequest(new { respuesta = "Usuario invalido" }); + int IdUser = await _usuariosRepo.searchUsuario(userData.Usuario); + if (IdUser == 0) return StatusCode(403, "Acceso denegado"); + DTOPINData PINData = await _usuariosRepo.CreatePIN(IdUser); + string htmlContent = $@" + + + + +
Estimado usuario, mediante este correo se le notifica que esta en proceso de cambiar su contraseña
Se ha generado un PIN para poder cambiar su contraseña. PIN : {PINData.PIN}
El PIN tiene un tiempo de vida de 10 minutos, a partir de su generacion, despues de ese tiempo caduca
Si usted no es quien ha activando este mecanismo, favor de ponerse en contacto con personal de GEMCO
"; + if (PINData.PIN > 0) + { + Utilerias email = new Utilerias(_config); + var dataEmail = new DTOSendEmail() + { + To = PINData.Correo, + Subject = "GEMCO informa: Se le generado un PIN para el cambio de su contraseña, expira en 10 minutos", + Text = "GEMCO informa: Se le generado un PIN para el cambio de su contraseña, expira en 10 minutos", + Html = htmlContent + }; + await email.SendEmail(dataEmail); + return new OkObjectResult(new { respuesta = "Continua con el proceso" }); + } + return BadRequest(new { respuesta = "Invalid Request" }); + } + + + [Route("resetPassword")] + [HttpPost] + public async Task resetPassword(DTOResetPassword data) + { + try + { + var result = await _usuariosRepo.resetPassword(data); + if (result == null) + { + return StatusCode(400, "Cuenta de usuario no existe"); + } + return Ok(result); + } + catch (Exception ex) + { + return StatusCode(500, ex); + } + } + + + [Authorize] + [Route("Validate")] + [HttpGet] + public IActionResult GetValidation() + { + return StatusCode(200, "Its Ok"); + } + + } +} diff --git a/GEMCO.Backend/Controllers/BatteryController.cs b/GEMCO.Backend/Controllers/BatteryController.cs new file mode 100644 index 0000000..8f1779b --- /dev/null +++ b/GEMCO.Backend/Controllers/BatteryController.cs @@ -0,0 +1,220 @@ +using DinkToPdf; +using DinkToPdf.Contracts; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO.Battery; +using GEMCO.Backend.DTO.Reportes; +using GEMCO.Backend.Models; +using Microsoft.AspNetCore.Mvc; +using System.Net; +using System.Net.Mail; +using System.Net.Mime; + +// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 + +namespace GEMCO.Backend.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class BatteryController : ControllerBase + { + private readonly IBatteryRepository _batteryRepo; + private readonly IConverter _converter; + + public BatteryController(IBatteryRepository batteryRepo, IConverter converter) + { + _batteryRepo = batteryRepo; + _converter = converter; + } + + [HttpGet] + [Route("getPalletWeight")] + public async Task GetPalletWeight(string IDPallet) + { + var entrada = await _batteryRepo.getPalletWeight(IDPallet); + return entrada; + } + + [HttpPost] + [Route("sendEntry")] + public async Task sendEntry([FromBody] DTOBatteryEntry data) + { + var entrada = await _batteryRepo.updatePallete2Warehouse(data); + return entrada; + } + + + [HttpPost("GeneratePDF")] + public async Task GeneratePDF([FromBody] DTOBatteryInfo data) + { + var Entry = await _batteryRepo.getBatteryInfo(data); + DateTime now = DateTime.Now; + string Trailer = "", ControlNumber = "", Today = "", CarrierName = "", DriverName = "", Forklift = "", Issues = "", InTime = "", OutTime = ""; + string InOutText = ""; + string bgcolor = ""; + int r = 0; + List Renglones = new List() { }; + int MaxRow = 24; + string color = ""; + int TotPallets = Entry.Count(); + double TotWeight = 0; + foreach (BatteryEntry row in Entry) + { + if (r == 0) + { + Trailer = row.Trailer; + ControlNumber = row.ControlNumber; + Today = (row.Today != null) ? row.Today : ""; + CarrierName = row.CarrierName; + DriverName = row.DriverName; + Forklift = row.Forklift; + Issues = (row.Issues != null) ? row.Issues : ""; + InTime = row.InTime; + OutTime = (row.OutTime != null) ? row.OutTime : ""; + } + if (r++ % 2 == 0) color = "#FFFFFF"; else color = bgcolor; + if (r <= MaxRow) Renglones.Add($@"I/A" + row.IDPallet + "" + row.Weight + " LB "); + else + { + string val = Renglones[r - (MaxRow + 1)]; + Renglones[r - (MaxRow + 1)] = val + "I/A" + row.IDPallet + "" + row.Weight + " LB "; + } + TotWeight += row.Weight; + } + // Termina la primer columna + int last = r; + if (last < MaxRow) + { + for (int i = (last - 1); i <= MaxRow - 1; i++) + { + if (r++ % 2 == 0) color = "#FFFFFF"; else color = bgcolor; + Renglones.Add($@"I/A500      -      LB "); + } + } + // Termina la segunda columna + last = r - 1; + if (last < (MaxRow * 2)) + { + for (int i = (last - 1); i <= (MaxRow * 2) - 2; i++) + { + string val = Renglones[(i - MaxRow) + 1]; + Renglones[(i - MaxRow) + 1] = val + $@"I/A500      -      LB "; + } + } + string content = ""; + for (int i = 0; i <= MaxRow - 1; i++) { content += Renglones[i]; } + if (data.InOut == 1) + { + InOutText = "INBOUND"; + bgcolor = "#DBF1C3"; + } + else + { + InOutText = "OUTBOUND"; + bgcolor = "#75DCFE"; + } + var Info = $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@"" + + $@""; + Info += content; + Info += $@""; + Info += $@""; + Info += "
JOHNSON CONTROLS {InOutText} FORM
# 115: {ControlNumber}CARRIER/BROKER NAME:
 {CarrierName}
DATE :{Today}DRIVER NAME: {DriverName}
Forklift Driver Name: {Forklift}TRAILER # {Trailer}
TABLET ISSUES OR DRIVER CONCERNS:IN TIMEOUT TIME
{Issues} {InTime}{OutTime}
 
 
PALLET STICKER NUMBERWEIGHTPALLET STICKER NUMBERWEIGHT
TOTAL PALLET COUNTTOT WEIGHTLOADER SIGNATURE
{TotPallets}{string.Format("{0:N2}", TotWeight)} LB
"; + var html = $@" + + + + + + {Info} + + + "; + GlobalSettings globalSettings = new GlobalSettings(); + globalSettings.ColorMode = ColorMode.Color; + globalSettings.Orientation = Orientation.Portrait; + globalSettings.PaperSize = PaperKind.A4; + globalSettings.Margins = new MarginSettings { Top = 25, Bottom = 25 }; + ObjectSettings objectSettings = new ObjectSettings(); + objectSettings.PagesCount = true; + objectSettings.HtmlContent = html; + WebSettings webSettings = new WebSettings(); + webSettings.DefaultEncoding = "utf-8"; + HeaderSettings headerSettings = new HeaderSettings(); + headerSettings.FontSize = 15; + headerSettings.FontName = "Ariel"; + headerSettings.Right = ""; + headerSettings.Line = false; + FooterSettings footerSettings = new FooterSettings(); + footerSettings.FontSize = 12; + footerSettings.FontName = "Ariel"; + footerSettings.Center = ""; + footerSettings.Line = false; + objectSettings.HeaderSettings = headerSettings; + objectSettings.FooterSettings = footerSettings; + objectSettings.WebSettings = webSettings; + HtmlToPdfDocument htmlToPdfDocument = new HtmlToPdfDocument() + { + GlobalSettings = globalSettings, + Objects = { objectSettings }, + }; + var pdfFile = _converter.Convert(htmlToPdfDocument); + Stream stream = new MemoryStream(pdfFile); + SaveStreamAsFile("c:\\downs\\temp", stream, now.ToString("MM_dd_yyyy_HH_mm_ss") + ".pdf", data.InOut); + return data; + } + + public static void SaveStreamAsFile(string filePath, Stream inputStream, string fileName, int Status) + { + DirectoryInfo info = new DirectoryInfo(filePath); + if (!info.Exists) { info.Create(); } + string path = Path.Combine(filePath, fileName); + using (FileStream outputFileStream = new FileStream(path, FileMode.Create)) { inputStream.CopyTo(outputFileStream); } + CreateMessageWithAttachment(filePath + "\\" + fileName, Status); + } + + public static void CreateMessageWithAttachment(string file, int Status) + { + string InOut = ""; + if (Status == 1) InOut = "Entry"; + else InOut = "Departure"; + try + { + using (var smtp = new SmtpClient("146.20.161.11", 587)) + { + smtp.Credentials = new NetworkCredential("noreply@gemcousa.com", "N#16rm87"); + var correo = new MailMessage(); + correo.From = new MailAddress("noreply@gemcousa.com", "noreply"); + correo.To.Add("agarcia@gemcousa.com"); + correo.Subject = InOut + " notification"; + correo.Body = InOut + " notification"; + Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); + correo.Attachments.Add(data); + smtp.Send(correo); + } + } + catch (Exception ex) + { + if (ex.Source != null) + Console.WriteLine("Error, Battery Controller: {0}", ex.Source); + throw; + } + } + + [HttpGet] + [Route("getWarehouseReport")] + public async Task> getWarehouseReport([FromQuery] DTOReporte data) + { + var entrada = await _batteryRepo.getReportFromWarehouse(data); + return entrada; + } + + } +} diff --git a/GEMCO.Backend/Controllers/Catalogos/CorresponsalesController.cs b/GEMCO.Backend/Controllers/Catalogos/CorresponsalesController.cs new file mode 100644 index 0000000..7255894 --- /dev/null +++ b/GEMCO.Backend/Controllers/Catalogos/CorresponsalesController.cs @@ -0,0 +1,56 @@ + +using GEMCO.Backend.Models.Catalogos; +using GEMCO.Backend.Contracts.Catalogos; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +namespace GEMCO.Backend.Controllers.Catalogos +{ + [Authorize] + [Route("api/Catalogos/[controller]")] + public class CorresponsalesController : Controller + { + private readonly ICorresponsalesRepository _Repo; + private readonly IConfiguration _config; + private readonly string ZipsCorresponsalesPath; + private readonly string CorresponsalesFilePath; + + public CorresponsalesController(ICorresponsalesRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + ZipsCorresponsalesPath = _config.GetValue("pathZipCorresponsales"); + CorresponsalesFilePath = _config.GetValue("CorresponsalesFilePath"); + } + + [Route("getAll")] + [HttpGet] + public async Task> GatAll() + { + var entrada = await _Repo.GetAll(); + return entrada; + } + + [Route("getAllFormated")] + [HttpGet] + public async Task> getAllFormated() + { + var entrada = await _Repo.GetAllFormated(); + return entrada; + } + + [Route("Append")] + [HttpPost] + public async Task Append([FromBody] CatCorresponsales data) + { + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpDelete("Delete/{id}")] + public async Task Delete(int id) + { + return await _Repo.Delete(id); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Catalogos/ProveedoresController.cs b/GEMCO.Backend/Controllers/Catalogos/ProveedoresController.cs new file mode 100644 index 0000000..6b370f7 --- /dev/null +++ b/GEMCO.Backend/Controllers/Catalogos/ProveedoresController.cs @@ -0,0 +1,47 @@ +using GEMCO.Backend.Contracts.Catalogos; +using GEMCO.Backend.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Catalogos +{ + [Authorize] + [Route("api/Catalogos/Corresponsales/[controller]")] + [ApiController] + public class ProveedoresController : Controller + { + private readonly IProveedoresRepository _Repo; + private readonly IConfiguration _config; + + public ProveedoresController(IProveedoresRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + /// Catalogo de Proveedores + [HttpGet] + [Route("getAll")] + public async Task> GetAll(int Clasificacion) + { + var entrada = await _Repo.GetAll(Clasificacion); + return entrada; + } + + [HttpPost] + [Route("Append")] + public async Task Append([FromBody] CatProveedores data) + { + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpDelete("Delete/{id}")] + public async Task Delete(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Catalogos/TabuladorController.cs b/GEMCO.Backend/Controllers/Catalogos/TabuladorController.cs new file mode 100644 index 0000000..474346e --- /dev/null +++ b/GEMCO.Backend/Controllers/Catalogos/TabuladorController.cs @@ -0,0 +1,52 @@ +using GEMCO.Backend.Contracts.Catalogos; +using GEMCO.Backend.Models.Catalogos; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + + +namespace GEMCO.Backend.Controllers.Catalogos +{ + [Authorize] + [Route("api/Catalogos/[controller]")] + public class TabuladorController : ControllerBase + { + + private readonly ITabuladorRepository _Repo; + private readonly IConfiguration _config; + + public TabuladorController(ITabuladorRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("getAll")] + public async Task> GetAll(int id, int IdCliente) + { + return await _Repo.GetAll(id, IdCliente); + } + + [HttpGet] + [Route("getByCustomer")] + public async Task> GetByCustomer(int IdCliente) + { + return await _Repo.GetAll(0, IdCliente); + } + + + [HttpPost] + [Route("Append")] + public async Task Post([FromBody] Tabulador data) + { + return await _Repo.Append(data); + } + + [HttpDelete("Delete/{id}")] + public async Task Delete(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + } +} diff --git a/GEMCO.Backend/Controllers/Catalogos/TabuladorDetalleController.cs b/GEMCO.Backend/Controllers/Catalogos/TabuladorDetalleController.cs new file mode 100644 index 0000000..dc8e542 --- /dev/null +++ b/GEMCO.Backend/Controllers/Catalogos/TabuladorDetalleController.cs @@ -0,0 +1,58 @@ +using GEMCO.Backend.Contracts.Catalogos; +using GEMCO.Backend.Models.Catalogos; +using GEMCO.Backend.DTO; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +namespace GEMCO.Backend.Controllers.Catalogos +{ + [Authorize] + [Route("api/Catalogos/[controller]")] + [ApiController] + public class TabuladorDetalleController : ControllerBase + { + private readonly ITabuladorDetalleRepository _Repo; + private readonly IConfiguration _config; + + public TabuladorDetalleController(ITabuladorDetalleRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("getDetailByIdTab")] + public async Task> GetDetailByIdTab(int id) + { + return await _Repo.GetDetailByIdTab(id); + } + + [HttpGet] + [Route("getAll")] + public async Task> GetAll(int id, int IdTabulador) + { + return await _Repo.GetAll(id, IdTabulador); + } + + [HttpGet] + [Route("Conceptos/getAllConcepts")] + public async Task> GetAllConcepts() + { + return await _Repo.GetAllConcepts(); + } + + [HttpPost] + [Route("Append")] + public async Task> Post([FromBody] TabuladorDetalle data) + { + return await _Repo.Append(data); + } + + [HttpDelete("Delete/{id}")] + public async Task Delete(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + } +} diff --git a/GEMCO.Backend/Controllers/Clientes/Amazon/AmazonInvoiceController.cs b/GEMCO.Backend/Controllers/Clientes/Amazon/AmazonInvoiceController.cs new file mode 100644 index 0000000..0b02a73 --- /dev/null +++ b/GEMCO.Backend/Controllers/Clientes/Amazon/AmazonInvoiceController.cs @@ -0,0 +1,711 @@ +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Clientes.Amazon.Contracts; +using GEMCO.Backend.Clientes.Amazon.Model; +using GEMCO.Backend.Clientes.Amazon.DTO; +using GEMCO.Backend.Services.ValidaFraccion; +using System.Net.Http.Headers; +using System.Net; +using GEMCO.Backend.Models; +using GEMCO.Backend.DTO; +using GEMCO.Backend.Contracts.Utils; +using System.IO.Compression; +using GEMCO.Backend.Models.Utils; +using GEMCO.Backend.Services.Clientes.SAmazon; + +namespace GEMCO.Backend.Controllers.Clientes.Amazon +{ + [ApiController] + [Route("api/[controller]")] + public class AmazonInvoiceController : ControllerBase + { + public IConfiguration _config; + private readonly IAmazonRepository _Repo; + private readonly String _connectionString; + private readonly IPDFGenerator _RepoPDFGenerator; + private readonly string TempRootPath, PathArchivoElectronico, URLPythonAPI, URLEjsAPI, URLNodeAPI, DefaultFilePath; + + public AmazonInvoiceController(IConfiguration config, IAmazonRepository Repo, IPDFGenerator RepoPDFGenerator) + { + _config = config; + _Repo = Repo; + _RepoPDFGenerator = RepoPDFGenerator; + _connectionString = _config.GetConnectionString("SqlConnection"); + TempRootPath = _config.GetValue("pathTemp"); + PathArchivoElectronico = _config.GetValue("PathArchivoElectronico"); + URLPythonAPI = _config.GetValue("AmazonPyAPI"); + URLEjsAPI = _config.GetValue("AmazonEJSAPI"); + URLNodeAPI = _config.GetValue("AmazonNodeAPI"); + DefaultFilePath = _config.GetValue("AllFiles"); + } + + /*************************************** Procesos Iniciales *************************************/ + [HttpGet] + [Route("C2096ValidaFraccion")] + public IActionResult C2096ValidaFraccion(string Fraccion) + { + Fraccion = Fraccion.Replace(".", ""); + if (Fraccion.Length != 10) + { + return Ok(new { Respuesta = "No" }); + } + SrvValidaFraccion SrvValFraccion = new SrvValidaFraccion(); + Boolean resultado = SrvValFraccion.ValidaFraccion(Fraccion); + if (resultado) return Ok(new { Respuesta = "Si" }); + return Ok(new { Respuesta = "No" }); + } + [HttpGet] + [Route("ValidaFraccionesIniciales")] + public async Task ValidaFraccionesIniciales() + { + var Fracciones = await _Repo.GetFraccionesPendientesValidar(); + SrvValidaFraccion SrvValFraccion = new SrvValidaFraccion(); + foreach (DTO2096Fraccion row in Fracciones) + { + await _Repo.SetFraccionPendienteValidar(row.Id, SrvValFraccion.ValidaFraccion(row.Fraccion.Replace(".", ""))); + } + return true; + } + [HttpPut] + [Route("AsignaFactura")] + public async Task AsignaFactura(int IdUsuario, int IdFactura) + { + return await _Repo.AssignInvoice(IdUsuario, IdFactura); + } + + + [HttpGet] + [Route("ValidacionWebService")] + public async Task> ValidacionWebService() + { + var Partidas = await _Repo.PartidasPendingWebServiceGet(); + foreach (DTO2096Fraccion partida in Partidas) + { + var Fraccion = partida.Fraccion.Replace(".", ""); + if (Fraccion.Length == 10) + { + SrvValidaFraccion SrvValFraccion = new SrvValidaFraccion(); + Boolean resultado = SrvValFraccion.ValidaFraccion(Fraccion); + } + } + return Partidas; + } + + /*************************************** Procesos Iniciales *************************************/ + + + /*************************************** Pending Clasification *************************************/ + [HttpGet] + [Route("AmazonPendingClasificationInvoiceGet")] + public async Task> AmazonPendingClasificationInvoice() + { + var entrada = await _Repo.AmazonPendingClasificationInvoiceGet(); + return entrada; + } + + [HttpGet] + [Route("InvoicePendingFromAmazonGet")] + public async Task> InvoicePendingFromAmazonGet() + { + var entrada = await _Repo.InvoicePendingFromAmazonGet(); + return entrada; + } + + [HttpPut] + [Route("C2096FraccionDescripcionSET")] + public async Task C2096SetFraccionDescripcion(DTO2096FraccionDescripcion data) + { + var entrada = await _Repo.SetFraccionDescripcion(data); + return entrada; + } + + [HttpPost] + [Route("C2096FraccionSet")] + public async Task C2096SetFraccion(DTO2096Fraccion data) + { + var entrada = await _Repo.FraccionSet(data); + return entrada; + } + + [HttpPost] + [Route("C2096DescripcionSet")] + public async Task C2096SetDescripcion(DTO2096Descripcion data) + { + var entrada = await _Repo.DescripcionSet(data); + return entrada; + } + + [HttpPut] + [Route("C2096CheckDetail")] + public async Task C2096CheckDetail(int id) + { + return await _Repo.CheckDetail(id); + } + [HttpGet] + [Route("SePuedeTerminardeClasificarFactura")] + public async Task SePuedeTerminardeClasificarFactura(int id) + { + return await _Repo.SePuedeTerminardeClasificarFactura(id); + } + [HttpGet] + [Route("SeRecibioRespuestaDeAmazon")] + public async Task SeRecibioRespuestaDeAmazon(int id) + { + return await _Repo.SeRecibioRespuestaDeAmazon(id); + } + /* [HttpGet] + [Route("SePuedeTerminardeClasificarFacturaEsperandoRespuesta")] + public async Task SePuedeTerminardeClasificarFacturaEsperandoRespuesta(int id) + { + return await _Repo.SePuedeTerminardeClasificarFacturaEsperandoRespuesta(id); + } */ + [HttpGet] + [Route("EnviaEsperaRespuestaAmazon")] + public async Task EnviaEsperaRespuestaAmazon(int id) + { + return await _Repo.EnviaEsperaRespuestaAmazon(id); + } + + [HttpPut] + [Route("ArchivoRespuestaAmazon")] + public async Task ArchivoRespuestaAmazon(int Id, Int64 IdFile) + { + return await _Repo.ArchivoRespuestaAmazon(Id, IdFile); + } + + [HttpPut] + [Route("InvoiceReturnState")] + public async Task InvoiceReturnState(Int64 IdFactura, byte Estatus) + { + return await _Repo.InvoiceReturnState(Estatus, IdFactura); + } + + [HttpDelete] + [Route("AmazonInvoiceDELETE")] + public async Task AmazonInvoiceDELETE(int Id) + { + return await _Repo.AmazonInvoiceDELETE(Id); + } + + /*************************************** End Pending Clasification *************************************/ + + + /*************************************** Finished Clasification *************************************/ + [HttpGet] + [Route("AmazonFinishedClasificationInvoiceGet")] + public async Task> AmazonFinishedClasificationInvoiceGet() + { + var entrada = await _Repo.AmazonFinishedClasificationInvoiceGet(); + return entrada; + } + [HttpPut] + [Route("C2096AutorizaItemFactura")] + public async Task C2096AutorizaItemFactura(DTO2096FraccionDescripcion data) + { + return await _Repo.AutorizadoItemFactura(data); + } + [HttpGet] + [Route("TerminaClasificarFactura")] + public async Task TerminaClasificarFactura(int id) + { + return await _Repo.TerminaClasificarFactura(id); + } + /*************************************** End Finished Clasification *************************************/ + + + /****************************************** Pending Traffic ******************************************/ + [HttpGet] + [Route("AmazonPendingTraficInvoiceGet")] + public async Task> AmazonPendingTraficInvoiceGet() + { + var entrada = await _Repo.AmazonPendingTraficInvoiceGet(); + return entrada; + } + /**************************************** End Pending Traffic *****************************************/ + + + /****************************************** Linking Traffic ******************************************/ + [HttpGet] + [Route("AmazonLinkInvoice2TrafficGet")] + public async Task> AmazonLinkInvoice2TrafficGet() + { + var entrada = await _Repo.AmazonLinkInvoice2TrafficGet(); + return entrada; + } + [HttpPut] + [Route("AmazonSightLineSET")] + public async Task AmazonSightLineSET(DTO2096SightLine data) + { + return await _Repo.SightLineSET(data); + } + [HttpGet] + [Route("SePuedeTerminarXTraficoFactura")] + public async Task SePuedeTerminarXTraficoFactura(int id) + { + return await _Repo.SePuedeTerminarXTraficoFactura(id); + } + [HttpGet] + [Route("TerminaXTraficoFactura")] + public async Task TerminaXTraficoFactura(int id) + { + return await _Repo.TerminaXTraficoFactura(id); + } + [HttpPost] + [Route("AsignaFacturasReferencia")] + public async Task AsignaFacturasReferencia(DTO2096LinkInvoice2Reference data) + { + return await _Repo.AsignaFacturasReferencia(data); + } + [HttpPost] + [Route("DesasociaFacturasReferencia")] + public async Task DesasociaFacturasReferencia(DTO2096LinkInvoice2Reference data) + { + return await _Repo.AsignaFacturasReferencia(data); + } + [HttpPut] + [Route("TrafficFieldsUpdate")] + public async Task TrafficUpdateFields(DTO2096TrafficFieldsUpdate data) + { + return await _Repo.TrafficFieldsUpdate(data); + } + /***************************************End Linking Traffic ******************************************/ + + [HttpGet] + [Route("RELParteFacturasGET")] + public async Task> RELParteFacturasGET(Int16 id) + { + var entrada = await _Repo.RELParteFactruraGET(id); + return entrada; + } + + /*****************************************Payed Operations *****************************************/ + [HttpGet] + [Route("AmazonPayedOperationsGET")] + public async Task> AmazonPayedOperationsGET(String Inicio, String Fin) + { + var entrada = await _Repo.AmazonPayedOperationsGET(Inicio, Fin); + return entrada; + } + /***********************************************************************************************/ + + /*************************************** Procesos Auxiliares ******************************************/ + [HttpGet] + [Route("NoPartesGet")] + public async Task> NoPartesGet(string Search) + { + return await _Repo.NoPartesGet(Search); + } + + [HttpPut] + [Route("NoPartesUpdate")] + public async Task NoPartesUpdate(DTO2096NoParte data) + { + return await _Repo.NoPartesUpdate(data); + } + [HttpGet] + [Route("NoPartesLogGET")] + public async Task> NoPartesLogGET(Int64 id) + { + return await _Repo.NoPartesLogGET(id); + } + [HttpGet] + [Route("NoParteVerificacionGET")] + public async Task> NoParteVerificacionGET(String Parte) + { + return await _Repo.NoParteVerificacion(Parte); + } + + [HttpGet] + [Route("PaisClavesGet")] + public async Task> PaisClavesGet() + { + return await _Repo.PaisClavesGet(); + } + + [Route("GetNoPartesAmazon2SIR")] + [HttpGet, DisableRequestSizeLimit] + public async Task GetNoPartesAmazon2SIR(int id) + { + byte[] emptyFile = System.IO.File.ReadAllBytes("c:\\downs\\empty.png"); + MemoryStream emptyms = new MemoryStream(emptyFile); + try + { + using (var client = GetHttpClient(URLNodeAPI + "/getNoPartesAmazon?id=" + id)) + { + HttpResponseMessage response = await client.GetAsync(""); + if (response.StatusCode == HttpStatusCode.OK) + { + byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync(); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = "application/vnd.ms-excel"; + resp.Headers.Add("Content-Disposition", "attachment; filename=PlantillaPartesSIR.xlsx"); + return new FileStreamResult(ms, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + } + return new FileStreamResult(emptyms, "image/png"); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + return new FileStreamResult(emptyms, "image/png"); + } + } + + [Route("ExceptionsFileAmazonGET")] + [HttpGet, DisableRequestSizeLimit] + public async Task ExceptionsFileAmazonGET(int id) + { + var generaLogExcepciones = await _Repo.GeneraLogArchivoExcepciones(id); + byte[] emptyFile = System.IO.File.ReadAllBytes("c:\\downs\\empty.png"); + MemoryStream emptyms = new MemoryStream(emptyFile); + String ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + try + { + using (var client = GetHttpClient(URLNodeAPI + "/getExceptionsFile4Amazon?id=" + id)) + { + HttpResponseMessage response = await client.GetAsync(""); + if (response.StatusCode == HttpStatusCode.OK) + { + byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync(); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = "application/vnd.ms-excel"; + resp.Headers.Add("Content-Disposition", "attachment; filename=ExceptionsFile.xlsx"); + return new FileStreamResult(ms, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + } + return new FileStreamResult(emptyms, ContentType); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + return new FileStreamResult(emptyms, "image/png"); + } + } + + [HttpGet] + [Route("AmazonInvoiceGET")] + public async Task> AmazonInvoiceGET(int id) + { + return await _Repo.AmazonInvoiceGet(id); + } + + [HttpGet] + [Route("AmazonShippingInfoGET")] + public async Task> AmazonShippingInfoGET(int id) + { + return await _Repo.AmazonShippingInfo(id); + } + + [HttpGet] + [Route("PDFAmazonInvoiceGET")] + public async Task PDFAmazonInvoiceGET(int id) + { + byte[] emptyFile = System.IO.File.ReadAllBytes("c:\\downs\\empty.png"); + MemoryStream emptyms = new MemoryStream(emptyFile); + try + { + //using (var client = GetHttpClient(URLEJSAPI + "getAmazonInvoicePDF?id=" + id)) + using (var client = GetHttpClient(URLEjsAPI + "getAmazonInvoicePDF?id=" + id)) + { + HttpResponseMessage response = await client.GetAsync(""); + if (response.StatusCode == HttpStatusCode.OK) + { + byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync(); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = "application/pdf"; + resp.Headers.Add("Content-Disposition", "attachment; filename=AmazonInvoice.pdf"); + return new FileStreamResult(ms, "application/pdf"); + } + return new FileStreamResult(emptyms, "image/png"); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + Response.ContentType = "application/pdf"; + Response.Headers.Add("content-disposition", $"attachment; filename=AmazonInvoice.pdf"); + return new FileStreamResult(emptyms, "image/png"); + } + } + + + [HttpGet] + [Route("GETAmazonPartidasByReference")] + public async Task GETAmazonPartidasByReference(string referencia) + { + byte[] emptyFile = System.IO.File.ReadAllBytes("c:\\downs\\empty.png"); + MemoryStream emptyms = new MemoryStream(emptyFile); + try + { + using (var client = GetHttpClient(URLNodeAPI + "/getAmazonPartidasByReferenceV2?referencia=" + referencia)) + { + HttpResponseMessage response = await client.GetAsync(""); + String ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + if (response.StatusCode == HttpStatusCode.OK) + { + byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync(); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = ContentType; + resp.Headers.Add("Content-Disposition", "attachment; filename=PARTIDAS_MODIFICA.xls"); + return new FileStreamResult(ms, ContentType); + } + return new FileStreamResult(emptyms, ContentType); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + Response.ContentType = "application/pdf"; + Response.Headers.Add("content-disposition", $"attachment; filename=AmazonInvoice.png"); + return new FileStreamResult(emptyms, "image/png"); + } + } + + [HttpGet] + [Route("GETAmazonFacturasByReference")] + public async Task GETAmazonFacturasByReference(string referencia) + { + byte[] emptyFile = System.IO.File.ReadAllBytes("c:\\downs\\empty.png"); + MemoryStream emptyms = new MemoryStream(emptyFile); + try + { + using (var client = GetHttpClient(URLNodeAPI + "/getAmazonFacturasByReferenceV2?referencia=" + referencia)) + { + HttpResponseMessage response = await client.GetAsync(""); + String ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + if (response.StatusCode == HttpStatusCode.OK) + { + byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync(); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = ContentType; + resp.Headers.Add("Content-Disposition", "attachment; filename=FACTURAS_MODIFICA.xls"); + return new FileStreamResult(ms, ContentType); + } + return new FileStreamResult(emptyms, ContentType); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + Response.ContentType = "image/png"; + Response.Headers.Add("content-disposition", $"attachment; filename=NotFound.png"); + return new FileStreamResult(emptyms, "image/png"); + } + } + + [HttpGet] + [Route("SETInvoiceDetail2Unchecked")] + public async Task SETInvoiceDetail2Unchecked(int id) + { + return await _Repo.SETInvoiceDetail2Unchecked(id); + } + + [HttpGet] + [Route("SETInvoiceDetailRevalidateParts")] + public async Task SETInvoiceDetailRevalidateParts(int id) + { + return await _Repo.SETInvoiceDetailRevalidateParts(id); + } + + [HttpGet] + [Route("AmazonInvoiceStatusGET")] + public async Task> AmazonInvoiceStatusGET(String Invoice) + { + return await _Repo.InvoiceStatusGET(Invoice); + } + + [HttpGet] + [Route("AmazonInvoicePrioritySET")] + public async Task> AmazonInvoicePrioritySET(int Id, Boolean Prioridad) + { + return await _Repo.InvoicePrioritySET(Id, Prioridad); + } + + + [HttpGet] + [Route("SyncInvoicesInFilePath")] + public async Task SyncInvoicesThruWeb() + { + try + { + using (var client = GetHttpClient(URLPythonAPI + "LoadInvoicesInFilePath")) + { + HttpResponseMessage response = await client.GetAsync(""); + if (response.StatusCode == HttpStatusCode.OK) + { + return new OkObjectResult(new { respuesta = "Termino proceso" }); + } + } + } + catch (Exception ex) + { + return StatusCode(500, new { respuesta = "Ocurrio un error: " + ex.ToString() }); + } + return StatusCode(500, new { respuesta = "Ocurrio un error" }); + } + + [HttpGet] + [Route("CreateACKFile")] + public async Task CreateACKFile(String Referencia) + { + try + { + using (var client = GetHttpClient(URLPythonAPI + "CreateACKs?Referencia=" + Referencia)) + { + HttpResponseMessage response = await client.GetAsync(""); + if (response.StatusCode == HttpStatusCode.OK) + { + return new OkObjectResult(new { respuesta = "Termino proceso" }); + } + } + } + catch (Exception ex) + { + return StatusCode(409, new { respuesta = "No se pudo generar el archivo ACK " + ex.ToString() }); + } + return StatusCode(409, new { respuesta = "No se pudo generar el archivo ACK" }); + } + + + [HttpGet] + [Route("UploadACKFile2Amazon")] + public async Task UploadACKFile2Amazon(String Referencia) + { + try + { + using (var client = GetHttpClient(URLPythonAPI + "FTPPutACK2Server?Referencia=" + Referencia)) + { + HttpResponseMessage response = await client.GetAsync(""); + if (response.StatusCode == HttpStatusCode.OK) + { + return new OkObjectResult(new { respuesta = "Termino proceso" }); + } + } + } + catch (Exception ex) + { + return StatusCode(500, new { respuesta = "Ocurrio un error: " + ex.ToString() }); + } + return StatusCode(500, new { respuesta = "Ocurrio un error" }); + } + + [HttpGet] + [Route("SyncInvoicesByFTP")] + public async Task SyncInvoicesByFTP() + { + try + { + using (var client = GetHttpClient(URLPythonAPI + "LoadInvoicesByFTP")) + { + HttpResponseMessage response = await client.GetAsync(""); + if (response.StatusCode == HttpStatusCode.OK) + { + return new OkObjectResult(new { respuesta = "Termino proceso" }); + } + } + } + catch (Exception ex) + { + return StatusCode(500, new { respuesta = "Ocurrio un error: " + ex.ToString() }); + } + return StatusCode(500, new { respuesta = "Ocurrio un error" }); + } + + + private static HttpClient GetHttpClient(string url) + { + var client = new HttpClient { BaseAddress = new Uri(url) }; + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/csv")); + return client; + } + + + [Route("GETACKFileById")] + [HttpGet, DisableRequestSizeLimit] + public async Task GETACKFileById(int IDArchivoACK) + { + string EntireFilenamePath = await _Repo.GetACKFileById(IDArchivoACK); + byte[] Content = System.IO.File.ReadAllBytes(EntireFilenamePath); + MemoryStream FileContent = new MemoryStream(Content); + String ContentType = "application/xhtml+xml"; + return new FileStreamResult(FileContent, ContentType) + { + FileDownloadName = "test.xml" + }; + } + /*************************************** End Procesos Auxiliares ***************************************/ + + [HttpPost] + [Route("UploadSIRReference")] + public async Task> UpdateSIRReference(List files, String ArchivoM, String Aduana, String Patente, String Pedimento, String FPago, String TipoCambio, String Clave) + { + var target = TempRootPath; + Directory.CreateDirectory(target); + foreach (var file in files) + { + var filePath = Path.Combine(target, file.FileName); + using (var stream = new FileStream(filePath, FileMode.Create)) + { + await file.CopyToAsync(stream); + } + } + + foreach (var file in files) + { + var filePath = Path.Combine(target, file.FileName); + string[] fileParts = file.FileName.Split("_____"); + string[] Reference = fileParts[0].Split("-"); + string zipPath = file.FileName; + string extractPath = PathArchivoElectronico + fileParts[1].Replace(".zip", "") + "\\20" + Reference[0] + "\\" + fileParts[0]; + if (!Directory.Exists(extractPath)) ZipFile.ExtractToDirectory(filePath, extractPath); + } + + var Referencias = new List(); + foreach (var file in files) + { + var filePath = Path.Combine(target, file.FileName); + string[] fileParts = file.FileName.Split("_____"); + string[] Reference = fileParts[0].Split("-"); + string zipPath = file.FileName; + string extractPath = PathArchivoElectronico + fileParts[1].Replace(".zip", "") + "\\20" + Reference[0] + "\\" + fileParts[0]; + if (Directory.Exists(extractPath)) + { + Referencias.Add(fileParts[0]); + await _Repo.InsertReferenciasSync2IONOS(fileParts[0], file.FileName, ArchivoM, Aduana, Patente, Pedimento, FPago, TipoCambio, Clave); + } + } + return Referencias; + } + /*********************************** Proceso recepcion de referencias ************************************/ + + + /******************************* Fin del proceso recepcion de referencias **********************************/ + + /******************************************** Dashboard ********************************************/ + [HttpGet] + [Route("DashboardInvoices")] + public async Task DashboardInvoices(Int16 Mode) + { + return await _Repo.DashboardInvoicesGet(Mode); + } + /****************************************** End Dashboard *******************************************/ + + + [HttpPost] + [Route("ApplyAnswerFile2Invoice")] + public async Task ApplyAnswerFile2Invoice(string[] Files) + { + foreach (string filename in Files) + { + SAmazonAnswerFile srv = new SAmazonAnswerFile(_config, _Repo); + Boolean result = await srv.ValidateAnswerFile(filename); + } + return true; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Clientes/CasaCuervo/PedidosController.cs b/GEMCO.Backend/Controllers/Clientes/CasaCuervo/PedidosController.cs new file mode 100644 index 0000000..556bea8 --- /dev/null +++ b/GEMCO.Backend/Controllers/Clientes/CasaCuervo/PedidosController.cs @@ -0,0 +1,534 @@ +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Services.Clientes.SCasaCuervo; +using GEMCO.Backend.Contracts.Clientes.CasaCuervo; +using GEMCO.Backend.Models.Clientes.CasaCuervo; +using GEMCO.Backend.DTO.Clientes.CasaCuervo; +using GEMCO.Backend.Contracts.Utils; +using GEMCO.Backend.Models.Utils; +using System.Reflection.Metadata.Ecma335; +/* using Microsoft.AspNetCore.Authorization; +using GEMCO.Backend.Services.PDFGenerator; */ + +namespace GEMCO.Backend.Controllers.Clientes.CasaCuervo +{ + /* [Authorize] */ + [Route("api/Clientes/CasaCuervo/[controller]")] + [ApiController] + + public class PedidosController : ControllerBase + { + private readonly ICasaCuervoRepository _Repo; + private readonly IFileManagerRepository _RepoFM; + private readonly IFilePaths4ProcessRepository _RepoRelativePath; + private readonly IConfiguration _config; + private readonly string rootPath; + private readonly IPDFGenerator _RepoPDFGenerator; + + + public PedidosController(ICasaCuervoRepository Repo, IFileManagerRepository RepoFM, + IFilePaths4ProcessRepository RepoRelativePath, IConfiguration config, IPDFGenerator RepoPDFGenerator) + { + _Repo = Repo; + _RepoFM = RepoFM; + _RepoRelativePath = RepoRelativePath; + _RepoPDFGenerator = RepoPDFGenerator; + _config = config; + rootPath = _config.GetValue("AllFiles"); + } + + + [Route("uploadExcel")] + [HttpGet] + public async Task UploadExcel(long id, int Proceso) + { + if (Proceso == 5) + { + FileManager archivo = await _RepoFM.getFileById(id); + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + SCasaCuervo proc = new SCasaCuervo(_Repo, rootPath + RelativePath.Path + archivo.NombreArchivo); + var result = await proc.ReadExcel(); + return result; + } + if (Proceso == 6) + { + FileManager archivo = await _RepoFM.getFileById(id); + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + SCasaCuervo proc = new SCasaCuervo(_Repo, rootPath + RelativePath.Path + archivo.NombreArchivo); + return await proc.UpdateInfoFromCorresponsal(); + } + return false; + } + + [Route("getAll")] + [HttpGet] + public async Task> getAll([FromQuery] string Inicio, string Fin, string Aduana) + { + return await _Repo.getAll(Inicio, Fin, Aduana); + } + + [Route("GetById")] + [HttpGet] + public async Task GetById(int Id) + { + return await _Repo.GetById(Id); + } + + [Route("getAduanas")] + [HttpGet] + public async Task> getAduanas(int Usuario, int TipoUsuario) + { + return await _Repo.getAduanas(Usuario, TipoUsuario); + } + + /* [HttpPut("Update/{id}/{Campo}/{Valor}")] + public async Task Update(int id, string Campo, string Valor) + { + var entrada = await _Repo.Update(id, Campo, Valor); + return entrada; + } */ + + [HttpPut("UpdateInfo/{id}")] + public async Task UpdateInfoFromWeb(int id, [FromBody] DTO325UpdateFromWeb data) + { + var entrada = await _Repo.UpdateInfoFromWeb(data); + return entrada; + } + + + [Route("GeneratePDF4CC")] + [HttpGet] + public async Task GeneratePDF4CC(int id) + { + I325Pedidos data = await _Repo.GetById(id); + + DateTime now = DateTime.Now; + string MedidaCaja = ""; + if (data.MedidaCaja == "1") MedidaCaja = "Caja 53 pies"; + if (data.MedidaCaja == "2") MedidaCaja = "Caja 48 pies"; + if (data.MedidaCaja == "3") MedidaCaja = "Refrigerada 53 pies"; + if (data.MedidaCaja == "4") MedidaCaja = "Pipa"; + var htmlContent = $@" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + + Nota de revisión de mercancía y sellos de seguridad +
+
+ Fecha y hora de impresión: {now}  +
+ Sr Despachador / Tramitador +
+ 1. Tomar sellos de seguridad +
+ 2. Romper los sellos de seguridad de origen +
+ 3. Abrir caja trailer y tomar fotos de la mercancía +
+ 4. Vertificar números de lote contra factura +
+ 5. Contar la cantidad de bultos +
+ 6. Colocar la caja trailer y colocar nuevos sellos +
Si no se cuenta con sellos del cliente, poner sellos de GEMCO previa autorización del cliente
+   +
+ + + + + + + + + + + + + + + + + +
No. de pedidoNo. de facturaCartonesBultosNo. de CajaMedida de la caja
{data.PO}{data.Factura}  {data.TruckNumber}{MedidaCaja}
+
 
+ Nombre de la línea: + {data.Carrier} +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Número de sellos +
+ Origen + + Izquierdo + + Derecho + + Nuevos despues de la revisión + + Izquierdo + + Derecho +
{data.Sello1} +   +   +   +   +   +
{data.Sello2}     
+
 
+
Número de placa y estado de Origen
+
 
+
Condiciones de la caja o pipa
+
 
+
Resultado de la revisión de la mercancía
+
 
+ + + + + + + + + +
  
Nombre y firma del revisorFecha y hora de la revisión
+
OM-F20 
+ + + "; + var pdfBytes = await _RepoPDFGenerator.GeneratePdfFromString(htmlContent); + MemoryStream ms = new MemoryStream(pdfBytes); + Response.ContentType = "application/pdf"; + Response.Headers.Add("content-disposition", $"attachment; filename=Formato Revision Casa Cuervo.pdf"); + return new FileStreamResult(ms, "application/pdf"); + } + + + [Route("GenerateTempPDF")] + [HttpGet] + public async Task GenerateTempPDF(string NoPedido, string NoCaja, int NMedidaCaja, string Factura, string Sello1, string Sello2, string Carrier) + { + //I325Pedidos data = await _Repo.GetById(id); + + DateTime now = DateTime.Now; + string MedidaCaja = ""; + if (NMedidaCaja == 1) MedidaCaja = "Caja 53 pies"; + if (NMedidaCaja == 2) MedidaCaja = "Caja 48 pies"; + if (NMedidaCaja == 3) MedidaCaja = "Refrigerada 53 pies"; + if (NMedidaCaja == 4) MedidaCaja = "Pipa"; + if (Sello1 == ".") Sello1 = ""; + if (Sello2 == ".") Sello2 = ""; + var htmlContent = $@" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + + Nota de revisión de mercancía y sellos de seguridad +
+
+ Fecha y hora de impresion: {now}  +
+ Sr Despachador / Tramitador +
+ 1. Tomar sellos de seguridad +
+ 2. Romper los sellos de seguridad de origen +
+ 3. Abrir caja trailer y tomar fotos de la mercancía +
+ 4. Vertificar números de lote contra factura +
+ 5. Contar la cantidad de bultos +
+ 6. Colocar la caja trailer y colocar nuevos sellos +
Si no se cuenta con sellos del cliente, poner sellos de GEMCO previa autorización del cliente
+   +
+ + + + + + + + + + + + + + + + + +
No. de pedidoNo. de facturaCartonesBultosNo. de CajaMedida de la caja
{NoPedido}{Factura}  {NoCaja}{MedidaCaja}
+
 
+ Nombre de la línea: {Carrier} +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Número de sellos +
+ Origen + + Izquierdo + + Derecho + + Nuevos despues de la revisión + + Izquierdo + + Derecho +
{Sello1} +   +   +   +   +   +
{Sello2}     
+
 
+
Número de placa y estado de Origen
+
 
+
Condiciones de la caja o pipa
+
 
+
Resultado de la revisión de la mercancía
+
 
+ + + + + + + + + +
  
Nombre y firma del revisorFecha y hora de la revisión
+
OM-F20 
+ + + "; + var pdfBytes = await _RepoPDFGenerator.GeneratePdfFromString(htmlContent); + MemoryStream ms = new MemoryStream(pdfBytes); + Response.ContentType = "application/pdf"; + Response.Headers.Add("content-disposition", $"attachment; filename=Formato Revision Casa Cuervo.pdf"); + return new FileStreamResult(ms, "application/pdf"); + } + + + [Route("GetRptCOVEs")] + [HttpGet] + public async Task> GetRptCOVE([FromQuery] string Inicio, string Fin) + { + return await _Repo.GetRptCOVE(Inicio, Fin); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Clientes/Heineken/C2206ReportesController.cs b/GEMCO.Backend/Controllers/Clientes/Heineken/C2206ReportesController.cs new file mode 100644 index 0000000..f396852 --- /dev/null +++ b/GEMCO.Backend/Controllers/Clientes/Heineken/C2206ReportesController.cs @@ -0,0 +1,69 @@ +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Clientes.Heineken.Contracts; +using GEMCO.Backend.Clientes.Heineken.Model; + +namespace GEMCO.Backend.Controllers.Clientes.Heineken +{ + [ApiController] + [Route("api/[controller]")] + public class C2206ReportesController : ControllerBase + { + + public IConfiguration _configuration; + private readonly IHeinekenRepository _reportesRepo; + public C2206ReportesController(IConfiguration config, IHeinekenRepository reportesRepo) + { + _configuration = config; + _reportesRepo = reportesRepo; + } + + [HttpGet] + [Route("Rpt2206EmbarquesPorImportar")] + public async Task> Rpt2206EmbarquesPorImportar() + { + var entrada = await _reportesRepo.GetHeinekenEmbarquesPorImportar(); + return entrada; + } + + [HttpGet] + [Route("Rpt2206EmbarquesPorMes")] + public async Task> Rpt2206EmbarquesPorMes() + { + var entrada = await _reportesRepo.GetHeinekenEmbarquesPorMes(); + return entrada; + } + + [HttpGet] + [Route("Rpt2206ExpedienteDigital")] + public async Task> Rpt2206ExpedienteDigital([FromQuery] string Ocurrencia) + { + var entrada = await _reportesRepo.GetHeinekenExpedienteDigital(Ocurrencia); + return entrada; + } + + + [HttpGet, DisableRequestSizeLimit] + [Route("Get2206AllFiles")] + public async Task Get2206AllFiles([FromQuery] long id) + { + var entrada = await _reportesRepo.GetAllFiles(id); + // return entrada; + var Servicio = new GEMCO.Backend.Clientes.Heineken.Servicio.SvcZipAllFiles(_reportesRepo, _configuration); + byte[] pdfBytes = Servicio.ZipAllFiles(entrada); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = "application/octet-stream"; + resp.Headers.Add("Content-Disposition", "attachment; filename=allFiles.zip"); + return new FileStreamResult(ms, "application/zip"); + } + + [HttpGet] + [Route("Rpt2206FacturasTxt")] + public async Task> Rpt2206FacturasTxt([FromQuery] string Inicio, [FromQuery] string Fin) + { + var entrada = await _reportesRepo.GetRptFacturasTxtHeader(Inicio, Fin); + return entrada; + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Clientes/ZincInternacional/C1868FacturaController.cs b/GEMCO.Backend/Controllers/Clientes/ZincInternacional/C1868FacturaController.cs new file mode 100644 index 0000000..e3f8f63 --- /dev/null +++ b/GEMCO.Backend/Controllers/Clientes/ZincInternacional/C1868FacturaController.cs @@ -0,0 +1,271 @@ +using System.Numerics; +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.Clientes.ZincInternacional.Model; +using GEMCO.Backend.Clientes.ZincInternacional.DTO; +using GEMCO.Backend.Clientes.ZincInternacional.Contracts; +using GEMCO.Backend.Clientes.ZincInternacional.Services; +using GEMCO.Backend.Contracts.Utils; +using GEMCO.Backend.Models.Utils; +using GEMCO.Backend.DTO; + +namespace GEMCO.Backend.Controllers.Clientes.ZincInternacional +{ + [Route("api/Clientes/1868/[controller]")] + [ApiController] + public class C1868FacturaController : Controller + { + private readonly IZincInternacionalRepository _Repo; + private readonly IFileManagerRepository _RepoFM; + private readonly IFilePaths4ProcessRepository _RepoRelativePath; + private readonly IUsuariosRepository _RepoUsuarios; + private readonly IConfiguration _config; + private readonly string rootPath; + public C1868FacturaController(IZincInternacionalRepository Repo, + IFileManagerRepository RepoFM, IFilePaths4ProcessRepository RepoRelativePath, IUsuariosRepository RepoUsuarios, + IConfiguration config) + { + _Repo = Repo; + _RepoFM = RepoFM; + _RepoUsuarios = RepoUsuarios; + _RepoRelativePath = RepoRelativePath; + _config = config; + rootPath = _config.GetValue("AllFiles"); + } + + [Route("UploadFile")] + [HttpPost] + public async Task UploadFile(int id, int Proceso) + { + + FileManager archivo = await _RepoFM.getFileById(id); + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + SvcZincInternacional proc = new SvcZincInternacional(_Repo, rootPath + RelativePath.Path + archivo.NombreArchivo); + if (Proceso == 7) return await proc.ReadXml(id); + if (Proceso == 8) return await proc.RelacionaPDFaFactura(id, archivo.NombreArchivo); + return false; + } + + [Route("RelateByProcess")] + [HttpPost] + public async Task RelateFileByProcess(int id, long idFile, int Proceso) + { + + FileManager archivo = await _RepoFM.getFileById(idFile); + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + SvcZincInternacional proc = new SvcZincInternacional(_Repo, rootPath + RelativePath.Path + archivo.NombreArchivo); + return await _Repo.RelacionaPorProceso(id, idFile, Proceso); + //if (Proceso == 7) return await proc.ReadXml(id); + //if (Proceso == 8) return await proc.RelacionaPDFaFactura(id, archivo.NombreArchivo); + // return false; + } + + [Route("getAll")] + [HttpGet] + public async Task> getAll(string Inicio, string Fin, int UserId) + { + return await _Repo.getAll(Inicio, Fin, UserId); + } + + [Route("getAllDetail")] + [HttpGet] + public async Task> getAllDetail(string Inicio, string Fin) + { + return await _Repo.getAllDetail(Inicio, Fin); + } + + [Route("getClientes")] + [HttpGet] + public async Task> getClientes() + { + return await _Repo.getClientes(); + } + + [Route("getCatProductos")] + [HttpGet] + public async Task> getCatProductos() + { + return await _Repo.getCatProductos(); + } + + + [Route("getCatClaveSAT")] + [HttpGet] + public async Task> getCatClaveSAT() + { + return await _Repo.getCatClaveSAT(); + } + + + [Route("getCatDestinos")] + [HttpGet] + public async Task> getCatDestinos() + { + return await _Repo.getCatDestinos(); + } + + + [Route("getCatResponsables")] + [HttpGet] + public async Task> GetCatResponsables() + { + return await _Repo.GetCatResponsables(); + } + + + [Route("AppendCatDestinos")] + [HttpPost] + public async Task AppendCatDestinos(I1868CatDestinos data) + { + I1868CatDestinos result = await _Repo.CatDestinosAppend(data); + /* if (result) return new OkObjectResult(new { respuesta = "Se agrego el destino correctamente" }); + return new OkObjectResult(new { respuesta = "Ocurrio un error, el destino no se guardo" }); */ + return result; + } + + + [Route("AppendCatResponsables")] + [HttpPost] + public async Task AppendCatResponsables(I1868CatResponsables data) + { + I1868CatResponsables result = await _Repo.CatResponsablesAppend(data); + /* if (result) return new OkObjectResult(new { respuesta = "Se agrego el destino correctamente" }); + return new OkObjectResult(new { respuesta = "Ocurrio un error, el destino no se guardo" }); */ + return result; + } + + + [Route("AppendInvoice")] + [HttpPost] + public async Task AppendInvoice(IFormFile file, string Usuario, string Contrasenia, int Mode, int Step) + { + if (!(Step == 7 || Step == 8)) { return new OkObjectResult(new { respuesta = "Ocurrio un error" }); } + int Proceso = Step; + string Tags = "-1"; + DateTime time = DateTime.Now; + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + string fullPath = ""; + //Asi funciona bien en IONOS: fullPath = ((Mode == 1) ? @"d:\data\" : rootPath) + RelativePath.Path; + fullPath = ((Mode == 0) ? @"c:\data\" : rootPath) + RelativePath.Path; + string fileMime = file.FileName.Substring(file.FileName.Length - 4); + string newFileName = file.FileName.Replace(fileMime, "") + "_" + time.ToString("yyyy_MM_dd_HH_mm_ss") + fileMime; + DTOLogin authUser = new DTOLogin(); + authUser.Usuario = Usuario; + authUser.Contrasena = Contrasenia; + var ExternalUser = await _RepoUsuarios.GetUsuario(authUser); + FileManager data = new FileManager(); + data.id = 0; + data.IdUsuario = ExternalUser.Id; + data.NombreArchivo = newFileName; + data.Proceso = Proceso; + data.FechaRegistro = ""; + data.Tags = Tags; + data.Activo = 1; + long fileLength = 0; + string filePath = ""; + filePath = fullPath + newFileName; + if (!Directory.Exists(fullPath)) Directory.CreateDirectory(fullPath); + + try + { + using (var stream = System.IO.File.Create(filePath)) + { + await file.CopyToAsync(stream); + } + fileLength = new System.IO.FileInfo(filePath).Length / 1024; + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + return new OkObjectResult(new { respuesta = "Ocurrio un error, el archivo no se guardo " + filePath }); + } + data.Size = fileLength; + if (fileLength > 0) + { + SvcZincInternacional proc = new SvcZincInternacional(_Repo, filePath); + if (Proceso == 7) + { + FileManager completeData = await _RepoFM.FileManager(data); + var result = await proc.ReadXml(completeData.id); + if (result) return new OkObjectResult(new { respuesta = "El archivo se agrego exitosamente" }); + else return new OkObjectResult(new { respuesta = "Ocurrio un error, el archivo no se guardo correctamente" }); + } + if (Proceso == 8) + { + FileManager completeData = await _RepoFM.FileManager(data); + var result = await proc.RelacionaPDFaFactura(completeData.id, filePath.Replace(fullPath, "")); + if (result) return new OkObjectResult(new { respuesta = "El archivo se agrego exitosamente" }); + return new OkObjectResult(new { respuesta = "El archivo se agrego exitosamente" }); + } + } + return new OkObjectResult(new { respuesta = "Ocurrio un error el archivo no se guardo" }); + } + + + [HttpPut("UpdateMaster/{id}")] + public async Task UpdateMaster(int id, [FromBody] DTO1868Factura data) + { + return await _Repo.UpdateMaster(data); + } + + + [HttpPut("UpdateDetail/{id}")] + public async Task UpdateDetail(int id, [FromBody] DTO1868FacturaDetalle data) + { + I1868FacturaDetalle respuesta = await _Repo.UpdateDetail(data); + /* if (respuesta) new OkObjectResult(new { respuesta = "La ianformacion se guardo correctamente" }); + else return BadRequest(new { respuesta = "Ocurrio un error" }); + return BadRequest(new { respuesta = "Ocurrio un error" }); + // return true; */ + return respuesta; + } + + + [Route("getFileContent")] + [HttpGet] + public async Task getFileContent(int id) + { + Boolean ExisteEnDisco = false; + // int Proceso = 8; + FileManager recFound = await _RepoFM.getFileById(id); + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(recFound.Proceso); + string fullPath = ""; + fullPath = rootPath + RelativePath.Path; + if (!String.IsNullOrEmpty(recFound.NombreArchivo)) + { + try + { + if (System.IO.File.Exists(Path.Combine(fullPath, recFound.NombreArchivo))) + { + ExisteEnDisco = true; + } + else return BadRequest(new { respuesta = "Ese archivo no existe" }); + } + catch (IOException ex) + { + return BadRequest(new { respuesta = "Ese archivo no existe" + ex.ToString() }); + } + if (ExisteEnDisco) + { + string fileMime = recFound.NombreArchivo.Substring(recFound.NombreArchivo.Length - 3).ToLower(); + var mime = "application/" + fileMime.ToLower(); + string targetFile = fullPath + recFound.NombreArchivo; + if (System.IO.File.Exists(targetFile)) + { + byte[] pdfBytes = System.IO.File.ReadAllBytes(targetFile); + MemoryStream ms = new MemoryStream(pdfBytes); + return new FileStreamResult(ms, mime); + } + } + } + return BadRequest(new { respuesta = "Ese archivo no existe" }); + } + + + [HttpPut("AppendSCACCAAT/{id}")] + public async Task PostSCACCAAT(int id, [FromBody] DTO1868SCACCAAT data) + { + return await _Repo.AppendSCACCAT(data); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/ClientesController.cs b/GEMCO.Backend/Controllers/ClientesController.cs new file mode 100644 index 0000000..cb60e7e --- /dev/null +++ b/GEMCO.Backend/Controllers/ClientesController.cs @@ -0,0 +1,99 @@ +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO.Cliente; +using GEMCO.Backend.DTO.Usuario; +using GEMCO.Backend.Models; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers +{ + [Route("api/[controller]")] + public class ClientesController : Controller + { + private readonly IClientesRepository _clientesRepo; + + public ClientesController(IClientesRepository clientesRepo) + { + _clientesRepo = clientesRepo; + } + + [Route("getAllClientes")] + [HttpGet] + public async Task GetAllClientes(int id) + { + try + { + var clientes = await _clientesRepo.getAllClientes(id); + return Ok(clientes); + } + catch (Exception ex) + { + //log error + return StatusCode(500, ex.Message); + } + } + + [Route("getClientesAsignados")] + [HttpGet] + public async Task GetClientesAsignados(int id) + { + try + { + var clientes = await _clientesRepo.getClientesAsignados(id); + return Ok(clientes); + } + catch (Exception ex) + { + //log error + return StatusCode(500, ex.Message); + } + } + + [Route("addCliente")] + [HttpPost] + public async Task Post([FromBody] DTOClienteUsuario CC) + { + try + { + var clientes = await _clientesRepo.addCliente(CC); + return Ok(clientes); + } + catch (Exception ex) + { + //log error + return StatusCode(500, ex.Message); + } + } + + [Route("asignaClienteProveedor")] + [HttpPost] + public async Task Post([FromBody] DTOClienteProveedor cp) + { + try + { + var result = await _clientesRepo.asignaClienteProveedor(cp); + return Ok(result); + } + catch (Exception ex) + { + //log error + return StatusCode(500, ex.Message); + } + } + + [Route("asignaClienteTransportista")] + [HttpPost] + public async Task Post([FromBody] DTOUsuarioTransportista t) + { + try + { + var result = await _clientesRepo.asignaUsuarioTransportista(t); + return Ok(result); + } + catch (Exception ex) + { + //log error + return StatusCode(500, ex.Message); + } + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Contabilidad/Corresponsales/ContabilidadTraficoController.cs b/GEMCO.Backend/Controllers/Contabilidad/Corresponsales/ContabilidadTraficoController.cs new file mode 100644 index 0000000..e862c5c --- /dev/null +++ b/GEMCO.Backend/Controllers/Contabilidad/Corresponsales/ContabilidadTraficoController.cs @@ -0,0 +1,38 @@ +using GEMCO.Backend.Contracts.Contabilidad.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Contabilidad.Corresponsales +{ + [Authorize] + [Route("api/Contabilidad/Corresponsales/[controller]")] + [ApiController] + public class ContabilidadTraficoController : ControllerBase + { + private readonly IContabilidadCorresponsaliasRepository _Repo; + private readonly IConfiguration _config; + + public ContabilidadTraficoController(IContabilidadCorresponsaliasRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpPost] + [Route("Validacion")] + public async Task Validacion([FromBody] CorresponsalTraficoContabilidad data) + { + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpGet] + [Route("Get")] + public async Task> Get(int IdTrafico, int tipo) + { + var entrada = await _Repo.Get(IdTrafico, tipo); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/AnticiposController.cs b/GEMCO.Backend/Controllers/Corresponsalias/AnticiposController.cs new file mode 100644 index 0000000..1b17fc9 --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/AnticiposController.cs @@ -0,0 +1,66 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models; +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [Route("api/Corresponsalias/[controller]")] + [ApiController] + + public class AnticiposController : Controller + { + private readonly ICorresponsaliasAnticiposRepository _Repo; + private readonly IConfiguration _config; + + public AnticiposController(ICorresponsaliasAnticiposRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpPost] + [Route("Append")] + public async Task Append([FromBody] CorresponsalAnticipos data) + { + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpGet] + [Route("Get")] + public async Task> GetAll([FromQuery] int IdTrafico) + { + var entrada = await _Repo.getAll(IdTrafico); + return entrada; + } + + [HttpDelete("Delete/{id}")] + public async Task Delete(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + + [HttpGet] + [Route("getPendientesAutorizar")] + public async Task GetTotalAnticiposPendientes() + { + var entrada = await _Repo.GetTotalAnticiposPendientes(); + return entrada; + } + + [HttpPost] + [Route("Autoriza")] + public async Task Autoriza([FromBody] DTOCorresponsalesAnticipo data) + { + var entrada = await _Repo.Autoriza(data); + return entrada; + } + + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/CatAduanasController.cs b/GEMCO.Backend/Controllers/Corresponsalias/CatAduanasController.cs new file mode 100644 index 0000000..1e13076 --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/CatAduanasController.cs @@ -0,0 +1,31 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [ApiController] + [Route("api/Corresponsalias/[controller]")] + public class CatAduanasController : ControllerBase + { + + private readonly ICorresponsaliasCatAduanasRepository _Repo; + private readonly IConfiguration _config; + + public CatAduanasController(ICorresponsaliasCatAduanasRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("GetAll")] + public async Task> GetAll([FromQuery] int IdCliente) + { + var entrada = await _Repo.getAll(IdCliente); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/CatDestinosController.cs b/GEMCO.Backend/Controllers/Corresponsalias/CatDestinosController.cs new file mode 100644 index 0000000..5e38893 --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/CatDestinosController.cs @@ -0,0 +1,30 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [ApiController] + [Route("api/Corresponsalias/[controller]")] + public class CatDestinosController : ControllerBase + { + private readonly ICorresponsaliasCatDestinosRepository _Repo; + private readonly IConfiguration _config; + public CatDestinosController(ICorresponsaliasCatDestinosRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("GetAll")] + public async Task> GetAll([FromQuery] int IdCliente) + { + var entrada = await _Repo.getAll(IdCliente); + return entrada; + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/CatMediosEmbarquesController.cs b/GEMCO.Backend/Controllers/Corresponsalias/CatMediosEmbarquesController.cs new file mode 100644 index 0000000..c65acdf --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/CatMediosEmbarquesController.cs @@ -0,0 +1,29 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [ApiController] + [Route("api/Corresponsalias/[controller]")] + public class CatMediosEmbarquesController : Controller + { + + private readonly ICorresponsaliasCatMediosEmbarqueRepository _Repo; + private readonly IConfiguration _config; + public CatMediosEmbarquesController(ICorresponsaliasCatMediosEmbarqueRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("GetAll")] + public async Task> GetAll() + { + var entrada = await _Repo.getAll(); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/CatTiposDocumento.cs b/GEMCO.Backend/Controllers/Corresponsalias/CatTiposDocumento.cs new file mode 100644 index 0000000..d8e3869 --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/CatTiposDocumento.cs @@ -0,0 +1,33 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models; +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [ApiController] + [Route("api/Corresponsalias/[controller]")] + public class CatTiposDocumento : Controller + { + + private readonly ICorresponsaliasCatTiposDocumentosRepository _Repo; + private readonly IConfiguration _config; + + public CatTiposDocumento(ICorresponsaliasCatTiposDocumentosRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("Get")] + public async Task> GetAll([FromQuery] int Cliente, int Clasificacion) + { + var entrada = await _Repo.getAll(Cliente, Clasificacion); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/CatTiposEmbarqueController.cs b/GEMCO.Backend/Controllers/Corresponsalias/CatTiposEmbarqueController.cs new file mode 100644 index 0000000..cae2754 --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/CatTiposEmbarqueController.cs @@ -0,0 +1,30 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + // [Authorize] + [ApiController] + [Route("api/Corresponsalias/[controller]")] + public class CatTiposEmbarqueController : ControllerBase + { + private readonly ICorresponsaliasCatTipoEmbarqueRepository _Repo; + private readonly IConfiguration _config; + public CatTiposEmbarqueController(ICorresponsaliasCatTipoEmbarqueRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + + [HttpGet] + [Route("GetAll")] + public async Task> GetAll() + { + var entrada = await _Repo.getAll(); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/ContenedoresController.cs b/GEMCO.Backend/Controllers/Corresponsalias/ContenedoresController.cs new file mode 100644 index 0000000..db38785 --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/ContenedoresController.cs @@ -0,0 +1,47 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [Route("api/Corresponsalias/[controller]")] + [ApiController] + public class ContenedoresController : Controller + { + private readonly ICorresponsaliasContenedoresRepository _Repo; + private readonly IConfiguration _config; + + public ContenedoresController(ICorresponsaliasContenedoresRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + /// Corresponsales : Contenedores + [HttpGet] + [Route("getAll")] + public async Task> GetAllCorresponsalesContenedores([FromQuery] int IdTrafico) + { + var entrada = await _Repo.GetAll(IdTrafico); + return entrada; + } + + [HttpPost] + [Route("Append")] + public async Task CreateUpdateCorresponsalesContenedores([FromBody] CorresponsalesContenedores data) + { + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpDelete("Delete/{id}")] + public async Task DeleteCorresponsalesContenedores(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/CuentasComplementariasController.cs b/GEMCO.Backend/Controllers/Corresponsalias/CuentasComplementariasController.cs new file mode 100644 index 0000000..27d988c --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/CuentasComplementariasController.cs @@ -0,0 +1,91 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models; +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Models.Corresponsales; +using GEMCO.Backend.Contracts.Utils; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [ApiController] + [Route("api/Corresponsalias/[controller]")] + public class CuentasComplementariasController : ControllerBase + { + // private readonly IFileManagerRepository _RepoFileManager; + private readonly ICorresponsaliasCuentasComplementarias _Repo; + private readonly IConfiguration _config; + + public CuentasComplementariasController(ICorresponsaliasCuentasComplementarias Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + // _RepoFileManager = RepoFileManager; + } + + [HttpPost] + [Route("Append")] + public async Task Append([FromBody] DTOCorresponsalCuentaComplementaria data) + { + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpGet] + [Route("Get")] + public async Task> Get([FromQuery] int IdTrafico) + { + var entrada = await _Repo.Get(IdTrafico); + return entrada; + } + + [HttpGet] + [Route("GetPendientes")] + public async Task GetPendientes() + { + var entrada = await _Repo.GetPendientes(); + return entrada; + } + + [HttpGet] + [Route("GetEstatus")] + public async Task> GetEstatus() + { + var entrada = await _Repo.GetEstatus(); + return entrada; + } + + [HttpPost] + [Route("AppendEstatus")] + public async Task AppendEstatus(CorresponsalCuentasComplementariasEstatus data) + { + var entrada = await _Repo.AppendEstatus(data); + return entrada; + } + + [HttpPost] + [Route("ChangeEstatus")] + public async Task ChangeEstatus([FromBody] DTOCorresponsalCuentaComplementariaEstatus data) + { + var entrada = await _Repo.ChangeEstatus(data); + return true; + } + + [HttpGet] + [Route("GetLogEstatus")] + public async Task> GetLogEstatus(int id) + { + var entrada = await _Repo.GetLogEstatus(id); + return entrada; + } + + + [HttpPut("ClearFile/{IDCuenta}/{witchFile}")] + public async Task ClearFile(int IDCuenta, byte witchFile) + { + var entrada = await _Repo.ClearFile(IDCuenta, witchFile); + return entrada; + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/FacturasController.cs b/GEMCO.Backend/Controllers/Corresponsalias/FacturasController.cs new file mode 100644 index 0000000..92c192c --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/FacturasController.cs @@ -0,0 +1,57 @@ +using System.IO.Compression; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using GEMCO.Backend.Services.C1896; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [Route("api/Corresponsalias/[controller]")] + [ApiController] + public class FacturasController : Controller + { + private readonly ICorresponsaliasFacturasRepository _Repo; + private readonly IConfiguration _config; + public FacturasController(ICorresponsaliasFacturasRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + /// Corresponsales: Facturas + [HttpGet] + [Route("getAll")] + public async Task> GetAll([FromQuery] int idTrafico) + { + var entrada = await _Repo.GetAll(idTrafico); + return entrada; + } + + [HttpPost] + [Route("Append")] + public async Task Append([FromBody] CorresponsalFacturas data) + { + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpDelete("Delete/{id}")] + public async Task DeleteCorresponsalesFacturas(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + //---------------------------------------------------------------------------------------------------------------------------------- + + /* [HttpGet] + [Route("uploadI1896Templete")] + public async Task> UploadI1868Templete([FromQuery] int idTrafico) + { + SrvUploadTemplete Srv = new SrvUploadTemplete(); + return Srv.ReadDataFromFile(@"c:\data\layout_omg_alen.txt"); + } + */ + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/FacturasTercerosController.cs b/GEMCO.Backend/Controllers/Corresponsalias/FacturasTercerosController.cs new file mode 100644 index 0000000..709c77f --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/FacturasTercerosController.cs @@ -0,0 +1,53 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [Route("api/Corresponsalias/[controller]")] + [ApiController] + public class FacturasTercerosController : Controller + { + private readonly ICorresponsaliasFacturasTercerosRepository _Repo; + private readonly IConfiguration _config; + + public FacturasTercerosController(ICorresponsaliasFacturasTercerosRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("getAll")] + public async Task> GetAll([FromQuery] int idTrafico) + { + var entrada = await _Repo.GetAll(idTrafico); + return entrada; + } + + [HttpPost] + [Route("Append")] + public async Task Append([FromBody] CorresponsalFacturasTerceros data) + { + var entrada = await _Repo.Append(data); + if (entrada.id < 0) + { + return StatusCode(409, new { registro = entrada, respuesta = "Esa factura ya se ha registrado previamente" }); + } + else + { + return StatusCode(200, new { registro = entrada, respuesta = "La factura se ha agregado exitosamente" }); + } + } + + [HttpDelete("Delete/{id}")] + public async Task Delete(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + //---------------------------------------------------------------------------------------------------------------------------------- + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/GuiasController.cs b/GEMCO.Backend/Controllers/Corresponsalias/GuiasController.cs new file mode 100644 index 0000000..168b275 --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/GuiasController.cs @@ -0,0 +1,46 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [Route("api/Corresponsalias/[controller]")] + [ApiController] + public class GuiasController : ControllerBase + { + private readonly ICorresponsaliasGuiasRepository _Repo; + private readonly IConfiguration _config; + + public GuiasController(ICorresponsaliasGuiasRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("getAll")] + public async Task> GetAllCorresponsalesGuias([FromQuery] int IdTrafico) + { + var entrada = await _Repo.GetAll(IdTrafico); + return entrada; + } + + [HttpPost] + [Route("Append")] + public async Task CreateUpdateCorresponsalesGuias([FromBody] CorresponsalesGuias data) + { + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpDelete("Delete/{id}")] + public async Task DeleteCorresponsalesGuias(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + + } +} diff --git a/GEMCO.Backend/Controllers/Corresponsalias/PedimentoController.cs b/GEMCO.Backend/Controllers/Corresponsalias/PedimentoController.cs new file mode 100644 index 0000000..456e06d --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/PedimentoController.cs @@ -0,0 +1,47 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [ApiController] + [Route("api/Corresponsalias/[controller]")] + public class PedimentoController : ControllerBase + { + + private readonly ICorresponsaliasPedimentoRepository _Repo; + private readonly IConfiguration _config; + + public PedimentoController(ICorresponsaliasPedimentoRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpPost] + [Route("Append")] + public async Task Append([FromBody] CorresponsalPedimento data) + { + data.Activo = 1; + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpGet] + [Route("Get")] + public async Task Get([FromQuery] int IdTrafico) + { + var entrada = await _Repo.Get(IdTrafico); + return entrada; + } + + [HttpDelete("Delete/{id}")] + public async Task Delete(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/PedimentoPartidaController.cs b/GEMCO.Backend/Controllers/Corresponsalias/PedimentoPartidaController.cs new file mode 100644 index 0000000..df6a634 --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/PedimentoPartidaController.cs @@ -0,0 +1,55 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [ApiController] + [Route("api/Corresponsalias/[controller]")] + public class PedimentoPartidaController : ControllerBase + { + + private readonly ICorresponsaliasPedimentoPartidasRepository _Repo; + private readonly IConfiguration _config; + public PedimentoPartidaController(ICorresponsaliasPedimentoPartidasRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("GetAll")] + public async Task> GetAll([FromQuery] int idTrafico) + { + var entrada = await _Repo.getAll(idTrafico); + return entrada; + } + + [HttpPost] + [Route("Append")] + public async Task Append([FromBody] CorresponsalPedimentoPartida data) + { + var entrada = await _Repo.Append(data); + if (entrada.id < 0) + { + // return StatusCode(409, new { respuesta = "Esa partida ya se ha registrado previamente" }); + data.id = -1; + return data; + } + else + { + return entrada; + } + } + + [HttpDelete("Delete/{id}")] + public async Task Delete(int id) + { + await _Repo.Delete(id); + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Corresponsalias/PrecuentaController.cs b/GEMCO.Backend/Controllers/Corresponsalias/PrecuentaController.cs new file mode 100644 index 0000000..f668c1c --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/PrecuentaController.cs @@ -0,0 +1,44 @@ +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using Microsoft.AspNetCore.Authorization; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [Route("api/Corresponsalias/[controller]")] + [ApiController] + public class PrecuentaController : ControllerBase + { + private readonly ICorresponsaliasPrecuentaRepository _Repo; + private readonly IConfiguration _config; + + public PrecuentaController(ICorresponsaliasPrecuentaRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + [HttpGet] + [Route("getAll")] + public async Task> GetAll([FromQuery] int id, int IdTrafico) + { + return await _Repo.GetAll(id, IdTrafico); + } + + + [HttpDelete("ChangeStatus/{id}")] + public async Task ChangeStatus(int id) + { + await _Repo.ChangeStatus(id); + return new OkObjectResult(new { respuesta = "La informacion se actualizo" }); + } + + [HttpPut("Append/{IdTabulador}/{IdTrafico}")] + public async Task> Append(int IdTabulador, int IdTrafico) + { + var entrada = await _Repo.Append(IdTabulador, IdTrafico); + return entrada; + } + } +} diff --git a/GEMCO.Backend/Controllers/Corresponsalias/TraficosController.cs b/GEMCO.Backend/Controllers/Corresponsalias/TraficosController.cs new file mode 100644 index 0000000..0bdf790 --- /dev/null +++ b/GEMCO.Backend/Controllers/Corresponsalias/TraficosController.cs @@ -0,0 +1,131 @@ +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Corresponsales; +using GEMCO.Backend.DTO.Corresponsales; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Services.C1896; +using GEMCO.Backend.Repository.Corresponsalias; + +namespace GEMCO.Backend.Controllers.Corresponsalias +{ + [Authorize] + [Route("api/Corresponsalias/[controller]")] + [ApiController] + public class TraficosController : Controller + { + + private readonly ICorresponsaliasTraficosRepository _Repo; + private readonly ICorresponsaliasFacturasRepository _RepoFacturas; + private readonly ICorresponsaliasContenedoresRepository _RepoContenedores; + private readonly IConfiguration _config; + + public TraficosController(ICorresponsaliasTraficosRepository Repo, ICorresponsaliasFacturasRepository RepoFacturas, ICorresponsaliasContenedoresRepository RepoContenedores, IConfiguration config) + { + _config = config; + _Repo = Repo; + _RepoFacturas = RepoFacturas; + _RepoContenedores = RepoContenedores; + } + + /// Corresponsales: Traficos + [HttpGet] + [Route("getTotal")] + public async Task GetAll(int Mode) + { + var entrada = await _Repo.GetAll(Mode); + return entrada; + } + + [HttpGet] + [Route("Get")] + public async Task Get([FromQuery] int id) + { + var entrada = await _Repo.Get(id); + return entrada; + } + + [HttpPut("AddRectificacion/{id}")] + public async Task AddRectificacion(int id) + { + var entrada = await _Repo.AddRectificacion(id); + return entrada; + } + + [HttpGet] + [Route("GetRectificaciones")] + public async Task> GetRectificaciones([FromQuery] int id) + { + var entrada = await _Repo.GetRectificaciones(id); + return entrada; + } + + [HttpPost] + [Route("Append")] + public async Task Append([FromBody] ITrafico data) + { + var entrada = await _Repo.Append(data); + return entrada; + } + + [HttpGet] + [Route("GetCorTraficoEstatus")] + public async Task> GetCorresponsalesTraficoEstatus() + { + var entrada = await _Repo.GetTraficoEstatus(); + return entrada; + } + + [HttpPut("ValidateComplete/{id}")] + public async Task ValidateComplete(int id, [FromBody] DTOTraficoCompleto data) + { + var entrada = await _Repo.ValidaTraficoCompleto(data); + return Ok(new { respuesta = "Informacion completa" }); + } + + [HttpPost] + [Route("AutoAppendI1896")] + public async Task AutoAppendI1896() + { + ITrafico data = new ITrafico(); + data.IdUsuario = 1; + data.IdCliente = 1896; + data.TipoOperacion = 2; + data.OpEntrada = 4; + data.OpSalida = 4; + data.IdCorresponsal = 5; + var entrada = await _Repo.Append(data); + return entrada; + } + + + [HttpPost] + [Route("Upload1896File")] + public async Task> Upload1896File(IFormFile Archivo, int id) + { + string tempPath = _config.GetValue("pathTemp"); + using (var fileStream = new FileStream(Path.Combine(tempPath, Archivo.FileName), FileMode.Create)) + { + await Archivo.CopyToAsync(fileStream); + } + SrvUploadTemplete Srv = new SrvUploadTemplete(_Repo, _RepoFacturas, _RepoContenedores, _config); + return await Srv.AutoInsertFromTemplete(tempPath + Archivo.FileName, id); + } + + [HttpPost] + [Route("Rectificacion/Historico/Append")] + public async Task RectificacionHistoricoAppend(DTORectificacionHistorico data) + { + var entrada = await _Repo.RectificacionHistoricoAppend(data); + return entrada; + } + + [HttpGet] + [Route("Rectificacion/Historico/Get")] + public async Task RectificacionHistoricoGet(int IdTrafico) + { + var entrada = await _Repo.RectificacionHistoricoGet(IdTrafico); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Dashboard/CorresponsalesController.cs b/GEMCO.Backend/Controllers/Dashboard/CorresponsalesController.cs new file mode 100644 index 0000000..cc9f739 --- /dev/null +++ b/GEMCO.Backend/Controllers/Dashboard/CorresponsalesController.cs @@ -0,0 +1,39 @@ +using GEMCO.Backend.Contracts.Dashboard; +using GEMCO.Backend.Models; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +namespace GEMCO.Backend.Controllers.Dashboard +{ + // [Authorize] + [Route("api/Dashboard/[controller]")] + [ApiController] + public class CorresponsalesController : ControllerBase + { + + private readonly IDashboardCorresponsalesRepository _Repo; + private readonly IConfiguration _config; + + public CorresponsalesController(IDashboardCorresponsalesRepository Repo, IConfiguration config) + { + _config = config; + _Repo = Repo; + } + + // GET: api/ + [HttpGet] + [Route("Get")] + public async Task> Get() + { + return await _Repo.Get(); + } + + [HttpGet] + [Route("GetTipoCambio")] + public async Task GetTipoCambio(string Fecha) + { + return await _Repo.GetTipoCambio(Fecha); + } + + } +} diff --git a/GEMCO.Backend/Controllers/FileManagerController.cs b/GEMCO.Backend/Controllers/FileManagerController.cs new file mode 100644 index 0000000..1e1ee82 --- /dev/null +++ b/GEMCO.Backend/Controllers/FileManagerController.cs @@ -0,0 +1,205 @@ +using System.Numerics; +//using GEMCO.Backend.Models.Catalogos; +using GEMCO.Backend.DTO; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.Contracts.Clientes.CasaCuervo; +using GEMCO.Backend.Contracts.Utils; +using GEMCO.Backend.Models.Utils; +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Services.Clientes.SCasaCuervo; +using Microsoft.AspNetCore.Authorization; + +namespace GEMCO.Backend.Controllers +{ + // [Authorize] + [Route("api/[controller]")] + // [ApiController] + public class FileManagerController : Controller + { + private readonly IFileManagerRepository _Repo; + private readonly IUsuariosRepository _RepoUsuarios; + private readonly ICasaCuervoRepository _RepoCasaCuervo; + private readonly IFilePaths4ProcessRepository _RepoRelativePath; + private readonly IConfiguration _config; + private readonly string RootPathCorresponsales; + + + public FileManagerController(IFileManagerRepository Repo, + IFilePaths4ProcessRepository RepoRelativePath, + IConfiguration config, + IUsuariosRepository RepoUsuarios, + ICasaCuervoRepository RepoCasaCuervo) + { + _config = config; + _Repo = Repo; + _RepoUsuarios = RepoUsuarios; + _RepoCasaCuervo = RepoCasaCuervo; + _RepoRelativePath = RepoRelativePath; + RootPathCorresponsales = _config.GetValue("AllFiles"); + } + + [Route("GetFileInfoByProcess")] + [HttpGet] + public async Task GetFileInfoByProcess([FromQuery] int id, int Proceso) + { + FileManager data = new FileManager(); + data = await _Repo.getFileByProcess(id, Proceso); + return data; + } + + [Route("GetFileInfoById")] + [HttpGet] + public async Task GetFileInfoByProcess([FromQuery] int id) + { + FileManager data = new FileManager(); + data = await _Repo.getFileById(id); + return data; + } + + [Route("AppendFileByProcess")] + [HttpPost] + public async Task AppendFileByProcess(IFormFile file, int IdUsuario, int Proceso, string Tags, int crud) + { + DateTime time = DateTime.Now; + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + string fullPath = ""; + fullPath = RootPathCorresponsales + RelativePath.Path; + string fileMime = file.FileName.Substring(file.FileName.LastIndexOf('.') + 1); + string newFileName = file.FileName.Replace("." + fileMime, "") + "_" + time.ToString("yyyy_MM_dd_HH_mm_ss") + "." + fileMime; + FileManager data = new FileManager(); + data.id = 0; + data.IdUsuario = IdUsuario; + data.NombreArchivo = newFileName; + data.Proceso = Proceso; + data.FechaRegistro = ""; + data.Tags = Tags; + data.Activo = 1; + long fileLength = 0; + if (@crud == 1) + { + if (file.Length > 0) + { + var filePath = fullPath + newFileName; + using (var stream = System.IO.File.Create(filePath)) + { + await file.CopyToAsync(stream); + } + fileLength = new System.IO.FileInfo(filePath).Length / 1024; + data.Size = fileLength; + if (fileLength > 0) + { + return await _Repo.FileManager(data); + } + } + } + return data; + } + + + // El aifuiente procaso se tiene que validar de todo a todo, ya que sera facilitado el acceso a usuarios externos a GEMCO: Clientes, Corresponsales, etc + [Route("AppendFileUpdatesCasaCuervo")] + [HttpPost] + public async Task AppendFileUpdatesCasaCuervo(IFormFile file, string Usuario, string Contrasenia) + { + int Proceso = 6; + string Tags = "-1"; + DateTime time = DateTime.Now; + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + string fullPath = ""; + fullPath = RootPathCorresponsales + RelativePath.Path; + string fileMime = file.FileName.Substring(file.FileName.Length - 4); + string newFileName = file.FileName.Replace(fileMime, "") + "_" + time.ToString("yyyy_MM_dd_HH_mm_ss") + fileMime; + DTOLogin authUser = new DTOLogin(); + authUser.Usuario = Usuario; + authUser.Contrasena = Contrasenia; + var ExternalUser = await _RepoUsuarios.GetUsuario(authUser); + FileManager data = new FileManager(); + data.id = 0; + data.IdUsuario = ExternalUser.Id; + data.NombreArchivo = newFileName; + data.Proceso = Proceso; + data.FechaRegistro = ""; + data.Tags = Tags; + data.Activo = 1; + long fileLength = 0; + string filePath = ""; + filePath = fullPath + newFileName; + using (var stream = System.IO.File.Create(filePath)) + { + await file.CopyToAsync(stream); + } + fileLength = new System.IO.FileInfo(filePath).Length / 1024; + data.Size = fileLength; + if (fileLength > 0) + { + SCasaCuervo proc = new SCasaCuervo(_RepoCasaCuervo, filePath); + var result = await proc.UpdateInfoFromCorresponsal(); + if (result) return new OkObjectResult(new { respuesta = "El archivo se agrego exitosamente" }); + else return new OkObjectResult(new { respuesta = "Ocurrio un error, el archivo no se guardo, verifique que el formato de fecha sea MM/dd/yyyy" }); + } + return new OkObjectResult(new { respuesta = "Ocurrio un error el archivo no se guardo" }); + } + + [Route("getFile")] + [HttpGet, DisableRequestSizeLimit] + public async Task getFileFromFileManager([FromQuery] long id, int Proceso) + { + Boolean ExisteEnDisco = false; + FileManager recFound = await _Repo.getFileByProcess(id, Proceso); + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + string fullPath = ""; + fullPath = RootPathCorresponsales + RelativePath.Path; + if (!String.IsNullOrEmpty(recFound.NombreArchivo)) + { + try + { + if (System.IO.File.Exists(Path.Combine(fullPath, recFound.NombreArchivo))) + { + ExisteEnDisco = true; + } + else return BadRequest(new { respuesta = "Ese archivo no existe" }); + } + catch (IOException ex) + { + return BadRequest(new { respuesta = "Ese archivo no existe" + ex.ToString() }); + } + if (ExisteEnDisco) + { + string fileMime = recFound.NombreArchivo.Substring(recFound.NombreArchivo.Length - 3).ToLower(); + var mime = "application/" + fileMime.ToLower(); + string targetFile = fullPath + recFound.NombreArchivo; + if (System.IO.File.Exists(targetFile)) + { + byte[] pdfBytes = System.IO.File.ReadAllBytes(targetFile); + MemoryStream ms = new MemoryStream(pdfBytes); + return new FileStreamResult(ms, mime); + } + } + } + return BadRequest(new { respuesta = "Ese archivo no existe" }); + } + + [HttpDelete("DeleteById/{id}")] + public async Task DeleteByProcess(long id) + { + FileManager Found = await _Repo.getFileById(id); + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Found.Proceso); + string fullPath = ""; + fullPath = RootPathCorresponsales + RelativePath.Path; + try + { + if (System.IO.File.Exists(Path.Combine(fullPath, Found.NombreArchivo))) + { + System.IO.File.Delete(Path.Combine(fullPath, Found.NombreArchivo)); + await _Repo.deleteFileByProcess(Found.id, Found.Proceso); + } + else return new OkObjectResult(new { respuesta = "Ese archivo no existe" }); + } + catch (IOException ex) + { + return new OkObjectResult(new { respuesta = "Ocurrio un error al intentar eliminar el registro: " + ex.ToString() }); + } + return new OkObjectResult(new { respuesta = "Se elimino el registro" }); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/PerfilesController.cs b/GEMCO.Backend/Controllers/PerfilesController.cs new file mode 100644 index 0000000..6429271 --- /dev/null +++ b/GEMCO.Backend/Controllers/PerfilesController.cs @@ -0,0 +1,165 @@ +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO; +using GEMCO.Backend.DTO.Usuario; +using GEMCO.Backend.Models; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class PerfilesController : ControllerBase + { + public IConfiguration _configuration; + private readonly IUsuariosRepository _usuariosRepo; + private readonly IMenuRepository _menuRepo; + private readonly IPerfilesRepository _perfilesRepo; + public PerfilesController(IConfiguration config, IUsuariosRepository usuariosRepo, IMenuRepository menuRepo, IPerfilesRepository perfilesRepo) + { + _configuration = config; + _usuariosRepo = usuariosRepo; + _menuRepo = menuRepo; + _perfilesRepo = perfilesRepo; + } + + [Route("getPerfiles")] + [HttpGet] + public async Task GetPerfiles() + { + try + { + var perfiles = await _perfilesRepo.getPerfiles(); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + [Route("getMenu")] + [HttpGet] + public async Task GetMenu() + { + try + { + var perfiles = await _perfilesRepo.getMenu(); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + + [Route("asignaItemMenu")] + [HttpPost] + public async Task asignaItemMenu(DTOItemMenuPerfil data) + { + try + { + var perfiles = await _perfilesRepo.asignaItemMenuPerfil(data); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + [Route("getAllPerfilesMenu")] + [HttpGet] + public async Task GetAllPerfilesMenu() + { + try + { + var perfiles = await _perfilesRepo.getAllPerfilesMenu(); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + + [Route("getPerfilMenuById")] + [HttpGet] + public async Task GetPerfilMenuBuId(int id) + { + try + { + var perfiles = await _perfilesRepo.getPerfilMenuById(id); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + [Route("createPerfil")] + [HttpPost] + public async Task createPerfil(DTOPerfilCreate data) + { + try + { + var perfiles = await _perfilesRepo.createPerfil(data); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + + [Route("createItemMenu")] + [HttpPost] + public async Task createItemMenu(Menu data) + { + try + { + var result = await _perfilesRepo.createItemMenu(data); + return Ok(result); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + + [Route("getAllTransportistas")] + [HttpGet] + public async Task GetAllTransportistas(int id) + { + try + { + var transportistas = await _perfilesRepo.getAllTransportistas(id); + return Ok(transportistas); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + [Route("getAllProveedores")] + [HttpGet] + public async Task GetAllProveedores(int id) + { + try + { + var proveedores = await _perfilesRepo.getAllProveedores(id); + return Ok(proveedores); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/ReportesController.cs b/GEMCO.Backend/Controllers/ReportesController.cs new file mode 100644 index 0000000..18e6ecf --- /dev/null +++ b/GEMCO.Backend/Controllers/ReportesController.cs @@ -0,0 +1,190 @@ +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Models.Reportes; +using GEMCO.Backend.Contracts; +using Microsoft.AspNetCore.Authorization; +using GEMCO.Backend.DTO.Reportes; +using GEMCO.Backend.DTO.Corresponsales; +/* using System.Diagnostics; +using ClosedXML.Excel; */ +using System.Net.Http.Headers; +using System.Net; + +namespace GEMCO.Backend.Controllers +{ + /*[Authorize]*/ + [Route("api/[controller]")] + [ApiController] + public class ReportesController : ControllerBase + { + + public IConfiguration _configuration; + private readonly IReportesRepository _reportesRepo; + + public ReportesController(IConfiguration config, IReportesRepository reportesRepo) + { + _configuration = config; + _reportesRepo = reportesRepo; + } + + [Authorize(Roles = "RptPedimentosPagados")] + [Route("RptPedimentosPagados")] + [HttpPost] + public async Task> GetPedimentosPagados(DTOReporte data) + { + var result = await _reportesRepo.getPedimentosPagados(data); + return result; + } + + [Authorize(Roles = "RptPedimentosPagadosImpuestos")] + [Route("RptPedimentosPagadosImpuestos")] + [HttpPost] + public async Task> GetPedimentosPagadosImpuestos(DTOReporte data) + { + var result = await _reportesRepo.getPedimentosPagadosImpuestos(data); + return result; + } + + + + [Authorize(Roles = RptPedimentosPagadosFacturasCruzadas)] + [Route("RptPedimentosPagadosFacturasCruzadas")] + [HttpPost] + public async Task> GetPedimentosPagadosFacturasCruzadas(DTOReporte data ) + { + var result = await _reportesRepo.getPedimentosPagadosFacturasCruzadas(data); + return result; + } + + + [Authorize(Roles = "RptDetalleAnexo24")] + [Route("RptDetalleAnexo24")] + [HttpPost] + public async Task> GetDetalleAnexo24(DTOReporte data) + { + var result = await _reportesRepo.getDetalleAnexo24(data); + return result; + } + + [Authorize(Roles = "RptOperacionesRemesa")] + [Route("RptOperacionesRemesa")] + [HttpGet] + public async Task> GetOperacionesRemesa() + { + var result = await _reportesRepo.getOperacionesRemesa(); + return result; + } + + // [Authorize(Roles = "RptDetalleAnexo24")] + [Route("RptPedimentosConsolidados")] + [HttpPost] + public async Task> GetPedimentosConsolidados(DTOReporte data) + { + var result = await _reportesRepo.getPedimentosConsolidados(data); + return result; + } + + [HttpGet] + [Route("RptCorresponsalesTraficos")] + public async Task> GetAllCorresponsalesTraficos([FromQuery] DTOReporteCorresponsales data) + { + var entrada = await _reportesRepo.GetRptCorresponsalesTraficos(data); + return entrada; + } + + [HttpGet] + [Route("RptOperaciones")] + public async Task> GetAllOperaciones([FromQuery] string Inicio, string Fin, int TipoOperacion, int NoCliente) + { + var entrada = await _reportesRepo.GetRptOperaciones(Inicio, Fin, TipoOperacion, NoCliente); + return entrada; + } + + [HttpGet] + [Route("RptOperacionesConsolidadas")] + public async Task> GetAllOperacionesConsolidadas([FromQuery] string Inicio, string Fin, int TipoOperacion, int NoCliente) + { + var entrada = await _reportesRepo.GetRptOperacionesConsolidadas(Inicio, Fin, TipoOperacion, NoCliente); + return entrada; + } + + [Route("RptGenerateControlDocumentosClientes")] + [HttpGet, DisableRequestSizeLimit] + public async Task GenerateControlDocumentosClientes() + { + return await _reportesRepo.GenerateControlDocumentosClientes(); + } + + [Route("RptGetControlDocumentosClientes")] + [HttpGet, DisableRequestSizeLimit] + public IActionResult GetGetControlDocumentosClientes() + { + string targetFile = "c:\\downs\\temp\\ReporteDocsSIT.csv"; + byte[] emptyFile = System.IO.File.ReadAllBytes("c:\\downs\\empty.png"); + MemoryStream emptyms = new MemoryStream(emptyFile); + if (System.IO.File.Exists(targetFile)) + { + var mime = "text/cvs"; + if (System.IO.File.Exists(targetFile)) + { + byte[] pdfBytes = System.IO.File.ReadAllBytes(targetFile); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = mime; + resp.Headers.Add("Content-Disposition", "attachment; filename=ReporteDocs.csv"); + return new FileStreamResult(ms, mime); + } + } + return new FileStreamResult(emptyms, "image/png"); + } + + [Route("RptGetCtrlDocumentosClientes")] + [HttpGet, DisableRequestSizeLimit] + public async Task GetGetCtrlDocumentosClientes() + { + byte[] emptyFile = System.IO.File.ReadAllBytes("c:\\downs\\empty.png"); + MemoryStream emptyms = new MemoryStream(emptyFile); + try + { + using (var client = GetHttpClient("http://localhost:9090/api/getRptControlDocumentosClientes")) + { + HttpResponseMessage response = await client.GetAsync(""); + if (response.StatusCode == HttpStatusCode.OK) + { + byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync(); + MemoryStream ms = new MemoryStream(pdfBytes); + var resp = HttpContext.Response; + resp.ContentType = "text/cvs"; + resp.Headers.Add("Content-Disposition", "attachment; filename=ReporteDocs.csv"); + return new FileStreamResult(ms, "text/cvs"); + } + return new FileStreamResult(emptyms, "image/png"); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + return new FileStreamResult(emptyms, "image/png"); + } + //return new FileStreamResult(emptyms, "image/png"); + } + + private static HttpClient GetHttpClient(string url) + { + var client = new HttpClient { BaseAddress = new Uri(url) }; + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/csv")); + return client; + } + + + [HttpGet] + [Route("RptOperacionesDiarias")] + public async Task> GetAllOperacionesDiarias([FromQuery] string Inicio, string Fin, int TipoOperacion, int NoCliente) + { + var entrada = await _reportesRepo.GetRptOperacionesDiarias(Inicio, Fin, TipoOperacion, NoCliente); + return entrada; + } + + + } +} diff --git a/GEMCO.Backend/Controllers/UsuariosController.cs b/GEMCO.Backend/Controllers/UsuariosController.cs new file mode 100644 index 0000000..dd04d11 --- /dev/null +++ b/GEMCO.Backend/Controllers/UsuariosController.cs @@ -0,0 +1,175 @@ +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO; +using GEMCO.Backend.Models; +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Services.Utilerias; +using GEMCO.Backend.DTO.Usuario; + +namespace GEMCO.Backend.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class UsuariosController : ControllerBase + { + private readonly IUsuariosRepository _usuariosRepo; + private readonly IConfiguration _config; + + public UsuariosController(IUsuariosRepository usuariosRepo, IConfiguration config) { _usuariosRepo = usuariosRepo; _config = config; } + + [Route("getUsuarioById")] + [HttpGet] + public async Task getAllUsuarios(int id) + { + try + { + var usuario = await _usuariosRepo.GetUsuarioById(id); + if (usuario == null) return NotFound(); + return Ok(usuario); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("getAllUsuarios")] + [HttpGet] + public async Task getAllUsuarios() + { + try + { + var usuarios = await _usuariosRepo.getAllUsuarios(); + return Ok(usuarios); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("getAllUsuariosShort")] + [HttpGet] + public async Task getAllUsuariosShort() + { + try + { + var usuarios = await _usuariosRepo.getAllUsuariosShort(); + return Ok(usuarios); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + + [Route("Auth")] + [HttpPost] + public async Task Auth(DTOLogin user) + { + try + { + var usuarios = await _usuariosRepo.GetUsuario(user); + return Ok(usuarios); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + + /* [Route("resetPassword")] + [HttpPost] + public async Task resetPassword(DTOResetPassword data) + { + try + { + var result = await _usuariosRepo.resetPassword(data); + if (result == null) + { + return StatusCode(400, "Cuenta de usuario no existe"); + } + return Ok(result); + } + catch (Exception ex) + { + return StatusCode(500, ex); + } + } */ + + [Route("searchUsuario")] + [HttpPost] + public async Task searchUsuario(DTOLogin user) + { + try + { + var result = await _usuariosRepo.searchUsuario(user.Usuario); + if (result != null) return StatusCode(409, new { message = "Usuario registrado previamente" }); + return Ok(new { message = "Usuario libre, no registrado previamente" }); + } + catch (Exception ex) + { + return StatusCode(500, ex); + } + } + + + [Route("createUser")] + [HttpPost] + public async Task POST(Usuarios user) + { + try + { + var usuario = await _usuariosRepo.createUsuario(user); + if (user.Id == 0) + { + /* Utilerias email = new Utilerias(_config); + Boolean sendOk = email.SendEmail("", usuario); */ + } + return Ok(usuario); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("clonarUsuario")] + [HttpPost] + public async Task POST(DTOClonarUsuario user) + { + try + { + var usuarios = await _usuariosRepo.clonarUsuario(user); + return Ok(usuarios); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("Catalogo/Roles/GET")] + [HttpGet] + public async Task CatalogoRolesGET() + { + try + { + var Roles = await _usuariosRepo.CatalogoRolesGET(); + return Ok(Roles); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("Catalogo/Roles/AsignadosGET")] + [HttpGet] + public async Task RolesAsignadosGET(int id) + { + try + { + var Roles = await _usuariosRepo.RolesAsignadosGET(id); + return Ok(Roles); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + + [Route("Catalogo/Usuarios/PerfilesParecidos")] + [HttpGet] + public async Task GETPerfilesParecidos(string Perfil) + { + try + { + var perfiles = await _usuariosRepo.GETPerfilesParecidos(Perfil); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + } +} diff --git a/GEMCO.Backend/Controllers/Utils/MFileManagerController.cs b/GEMCO.Backend/Controllers/Utils/MFileManagerController.cs new file mode 100644 index 0000000..e6cae75 --- /dev/null +++ b/GEMCO.Backend/Controllers/Utils/MFileManagerController.cs @@ -0,0 +1,62 @@ +using Microsoft.AspNetCore.Mvc; +using GEMCO.Backend.Services.MFileManager; +using GEMCO.Backend.Contracts.Utils; +using GEMCO.Backend.Models.Utils; +using Microsoft.AspNetCore.Authorization; + +namespace GEMCO.Backend.Controllers.Utils +{ + [Authorize] + [ApiController] + [Route("api/Utils/[controller]")] + public class MFileManagerController : ControllerBase + { + + private readonly IFileManagerRepository _Repo; + private readonly IConfiguration _config; + private readonly IFilePaths4ProcessRepository _RepoRelativePath; + private readonly string RootPath; + + public MFileManagerController(IConfiguration config, IFilePaths4ProcessRepository RepoRelativePath, IFileManagerRepository Repo) + { + _config = config; + _RepoRelativePath = RepoRelativePath; + _Repo = Repo; + RootPath = _config.GetValue("AllFiles"); + } + + [HttpGet] + [Route("GetFilesFromLog")] + public async Task> GetFilesFromLog(int Tags, int Proceso) + { + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + SvcMFileManager FM = new SvcMFileManager(_config, _Repo, RootPath + RelativePath.Path); + return await FM.GetFilesFromLog(Tags, Proceso); + } + + + [HttpGet] + [Route("GetFileContentById")] + public async Task GetFileContentById(long id, int Proceso) + { + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + SvcMFileManager FM = new SvcMFileManager(_config, _Repo, RootPath + RelativePath.Path); + return await FM.getFileContentById(id); + } + + + [HttpPost] + [Route("Append")] + public async Task> Append(List FileList, int Tags, int Proceso, int Usuario) + { + List data = new List(); + FilePaths4Process RelativePath = await _RepoRelativePath.getPaths4ProcessById(Proceso); + SvcMFileManager FM = new SvcMFileManager(_config, _Repo, RootPath + RelativePath.Path); + List filePaths = await FM.SaveFile2DiskList(FileList); + var fileData = await FM.SaveFileLog(filePaths, Tags, Proceso, Usuario); + return fileData; + } + + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Utils/MsgSenderController.cs b/GEMCO.Backend/Controllers/Utils/MsgSenderController.cs new file mode 100644 index 0000000..db71df3 --- /dev/null +++ b/GEMCO.Backend/Controllers/Utils/MsgSenderController.cs @@ -0,0 +1,45 @@ +using System.Net; +using System.Text; +using Microsoft.AspNetCore.Mvc; +using Twilio; +using Twilio.Rest.Api.V2010.Account; +using Twilio.Types; + +namespace GEMCO.Backend.Controllers.Utils +{ + [ApiController] + [Route("api/[controller]")] + public class MsgSenderController : ControllerBase + { + + private readonly IConfiguration _config; + private string accountSID; + private string authToken; + + public MsgSenderController(IConfiguration config) + { + _config = config; + accountSID = _config.GetValue("Twilio_SID"); + authToken = _config.GetValue("Twilio_Token"); + } + + [HttpGet] + [Route("SentMsg")] + public string SendMsg(string Msg, string Celular) + { + TwilioClient.Init(accountSID, authToken); + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //PARA ACEPTAR SEGURIDAD TLS 1.2 EN WINDOWS + + var builder = new StringBuilder(); + builder.Append(string.Format("GEMCO notifica: {0}. Gracia.", Msg)); + + var messageOptions = MessageResource.Create( + body: builder.ToString(), + from: new PhoneNumber("whatsapp:+5218118086320"), //WHATSAPP REGISTRADO: CLAVE PAIS + TELEFONO 10 DIGITOS + to: new PhoneNumber("whatsapp:" + Celular) //WHATSAPP DESTINO + ); + + return messageOptions.Status.ToString(); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/Utils/NotificacionesController.cs b/GEMCO.Backend/Controllers/Utils/NotificacionesController.cs new file mode 100644 index 0000000..9173062 --- /dev/null +++ b/GEMCO.Backend/Controllers/Utils/NotificacionesController.cs @@ -0,0 +1,117 @@ +using System.Net; +using System.Text; +using DocumentFormat.OpenXml.Wordprocessing; +using GEMCO.Backend.Contracts.Utils.Notificaciones; +using GEMCO.Backend.DTO.Utils; +using GEMCO.Backend.Models.Utils.Notificaciones; +using Microsoft.AspNetCore.Mvc; +using Twilio; +using Twilio.Rest.Api.V2010.Account; +using Twilio.Types; + +namespace GEMCO.Backend.Controllers.Utils +{ + [ApiController] + [Route("api/[controller]")] + public class NotificacionesController : ControllerBase + { + private readonly INotificacionesRepository _Repo; + private readonly IConfiguration _config; + private string accountSID; + private string authToken; + + public NotificacionesController(IConfiguration config, INotificacionesRepository Repo) + { + _Repo = Repo; + _config = config; + accountSID = _config.GetValue("Twilio_SID"); + authToken = _config.GetValue("Twilio_Token"); + } + + [HttpGet] + [Route("SendWhattsapp")] + public async Task SendWhattsapp(int IdUsuario, string Concepto, int IdGrupo) + { + var Contactos = await _Repo.ContactosdelGrupoGet(IdGrupo); + TwilioClient.Init(accountSID, authToken); + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //PARA ACEPTAR SEGURIDAD TLS 1.2 EN WINDOWS + foreach (INotificacionesContactos contacto in Contactos) + { + var builder = new StringBuilder(); + builder.Append(string.Format("GEMCO informa: {0}... Gracias.", Concepto)); + var messageOptions = MessageResource.Create( + body: builder.ToString(), + from: new PhoneNumber("whatsapp:+5218118086320"), //WHATSAPP REGISTRADO: CLAVE PAIS + TELEFONO 10 DIGITOS + to: new PhoneNumber("whatsapp:" + contacto.Pais + contacto.Celular) //WHATSAPP DESTINO + ); + } + // return messageOptions.Status.ToString(); + var result = await _Repo.NotificacionesLogAppend(IdUsuario, Concepto, IdGrupo); + return result; + } + + [HttpPost] + [Route("Contacto/Append")] + public async Task ContactoAppend(INotificacionesContactos data) + { + return await _Repo.ContactosAppend(data); + } + + [HttpGet] + [Route("Contacto/Get")] + public async Task> ContactoGet() + { + return await _Repo.ContactosGet(); + } + + [HttpPost] + [Route("Grupos/Append")] + public async Task GrupoAppend(INotificacionesGrupos data) + { + return await _Repo.GruposAppend(data); + } + + [HttpGet] + [Route("Grupos/Get")] + public async Task> GruposGet() + { + return await _Repo.GruposGet(); + } + + [HttpPost] + [Route("Asignacion/Contactos/Grupos")] + public async Task AccionContactosGrupo(DTONotificacionesContactoGrupo data) + { + return await _Repo.AccionContactosGrupos(data); + } + + [HttpGet] + [Route("ContactosdelGrupo/Get")] + public async Task> ContactosdelGrupoGet(int IdGrupo) + { + return await _Repo.ContactosdelGrupoGet(IdGrupo); + } + + [HttpPost] + [Route("Catalogo/Conceptos/Append")] + public async Task CatalogoAppend(INotificacionesCatalogo data) + { + return await _Repo.CatalogoAppend(data); + } + + [HttpGet] + [Route("Catalogo/Conceptos/Get")] + public async Task> CatalogoGet() + { + return await _Repo.CatalogoGet(); + } + + [HttpGet] + [Route("Log/Get")] + public async Task> NotificacionesLogGet() + { + return await _Repo.NotificacionesLogGet(); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Controllers/ValuesController.cs b/GEMCO.Backend/Controllers/ValuesController.cs new file mode 100644 index 0000000..6fb3a60 --- /dev/null +++ b/GEMCO.Backend/Controllers/ValuesController.cs @@ -0,0 +1,43 @@ +using Microsoft.AspNetCore.Mvc; + +// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 + +namespace GEMCO.Backend.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class ValuesController : ControllerBase + { + // GET: api/ + [HttpGet] + public IEnumerable Get() + { + return new string[] { "value1", "value2" }; + } + + // GET api//5 + [HttpGet("{id}")] + public string Get(int id) + { + return "value"; + } + + // POST api/ + [HttpPost] + public void Post([FromBody] string value) + { + } + + // PUT api//5 + [HttpPut("{id}")] + public void Put(int id, [FromBody] string value) + { + } + + // DELETE api//5 + [HttpDelete("{id}")] + public void Delete(int id) + { + } + } +} diff --git a/GEMCO.Backend/Controllers/WeatherForecastController.cs b/GEMCO.Backend/Controllers/WeatherForecastController.cs new file mode 100644 index 0000000..c21678c --- /dev/null +++ b/GEMCO.Backend/Controllers/WeatherForecastController.cs @@ -0,0 +1,35 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Controllers +{ + [Authorize(Roles = "WeatherForcast")] + [ApiController] + [Route("[controller]")] + public class WeatherForecastController : ControllerBase + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet(Name = "GetWeatherForecast")] + public IEnumerable Get() + { + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateTime.Now.AddDays(index), + TemperatureC = Random.Shared.Next(-20, 55), + Summary = Summaries[Random.Shared.Next(Summaries.Length)] + }) + .ToArray(); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Crypto/Crypto.cs b/GEMCO.Backend/Crypto/Crypto.cs new file mode 100644 index 0000000..f083e2f --- /dev/null +++ b/GEMCO.Backend/Crypto/Crypto.cs @@ -0,0 +1,48 @@ +using System.Security.Cryptography; +using System.Text; + +namespace GEMCO.Backend.Crypto +{ + public class CryptDecrypt + { + private readonly static string key = "G3mc0H42hk3y2!0$2*2#n4813dc2h47p"; + public static string Encrypt(string text) + { + byte[] iv = new byte[16]; + byte[] array; + using (Aes aes = Aes.Create()) { + aes.Key = Encoding.UTF8.GetBytes(key); + aes.IV = iv; + ICryptoTransform encrypt = aes.CreateEncryptor(aes.Key, aes.IV); + using (MemoryStream ms = new MemoryStream()) + { + using (CryptoStream cryptoStream = new CryptoStream((Stream)ms, encrypt, CryptoStreamMode.Write)) { + using (StreamWriter streamWriter = new StreamWriter(cryptoStream)) { + streamWriter.Write(text); + } + array = ms.ToArray(); + } + } + } + return Convert.ToBase64String(array); + } + + public static string Decrypt(string text) + { + byte[] iv = new byte[16]; + byte[] buffer = Convert.FromBase64String(text); + using (Aes aes = Aes.Create()) { + aes.Key = Encoding.UTF8.GetBytes(key); + aes.IV = iv; + ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key,aes.IV); + using (MemoryStream ms = new MemoryStream(buffer)) { + using(CryptoStream cryptoStream = new CryptoStream((Stream)ms, decryptor, CryptoStreamMode.Read)) { + using (StreamReader sr = new StreamReader(cryptoStream)) { + return sr.ReadToEnd(); + } + } + } + } + } + } +} diff --git a/GEMCO.Backend/DTO/AnexoFacturacion/DTOAnexoFacturacionAlen.cs b/GEMCO.Backend/DTO/AnexoFacturacion/DTOAnexoFacturacionAlen.cs new file mode 100644 index 0000000..c6b5b8d --- /dev/null +++ b/GEMCO.Backend/DTO/AnexoFacturacion/DTOAnexoFacturacionAlen.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.DTO.AnexoFacturacion +{ + public class DTOAnexoFacturacionAlen + { + public string sReferencia { get; set; } = null!; + public double nHonorarios { get; set; } = 0; + public double nValidacion { get; set; } = 0; + public double nPrevalidacion { get; set; } = 0; + public double nCoordinacion { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/AnexoFacturacion/DTOAnexoFacturacionMission.cs b/GEMCO.Backend/DTO/AnexoFacturacion/DTOAnexoFacturacionMission.cs new file mode 100644 index 0000000..fb53af8 --- /dev/null +++ b/GEMCO.Backend/DTO/AnexoFacturacion/DTOAnexoFacturacionMission.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.DTO.AnexoFacturacion +{ + public class DTOAnexoFacturacionMission + { + public string sReferencia { get; set; } = null!; + public double CordCruce { get; set; } = 0; + public double CordFlete { get; set; } = 0; + public double nServicio { get; set; } = 0; + public double nContraprestacion { get; set; } = 0; + public double nHonorario { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/ArchivoElectronico/DTOAEPeriodo.cs b/GEMCO.Backend/DTO/ArchivoElectronico/DTOAEPeriodo.cs new file mode 100644 index 0000000..c13278e --- /dev/null +++ b/GEMCO.Backend/DTO/ArchivoElectronico/DTOAEPeriodo.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.DTO.ArchivoElectronico +{ + public class DTOAEPeriodo + { + public int Anio { get; set; } = 0!; + public int Mes { get; set; } = 0!; + public int NoCliente { get; set; } = 0!; + public int TipoOperacion { get; set; } = 0!; + } +} diff --git a/GEMCO.Backend/DTO/ArchivoElectronico/DTOAEPeriodoSeleccion.cs b/GEMCO.Backend/DTO/ArchivoElectronico/DTOAEPeriodoSeleccion.cs new file mode 100644 index 0000000..3feec79 --- /dev/null +++ b/GEMCO.Backend/DTO/ArchivoElectronico/DTOAEPeriodoSeleccion.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.DTO.ArchivoElectronico +{ + public class DTOAEPeriodoSeleccion + { + public int Anio { get; set; } = 0!; + public int Mes { get; set; } = 0!; + public int NoCliente { get; set; } = 0!; + public int TipoOperacion { get; set; } = 0!; + public int IdUsuario { get; set; } = 0!; + public List? Referencias { get; set; } = new List(); + } +} diff --git a/GEMCO.Backend/DTO/ArchivoElectronico/DTOArchivoOficial.cs b/GEMCO.Backend/DTO/ArchivoElectronico/DTOArchivoOficial.cs new file mode 100644 index 0000000..08bfb63 --- /dev/null +++ b/GEMCO.Backend/DTO/ArchivoElectronico/DTOArchivoOficial.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.DTO.ArchivoElectronico +{ + public class DTOArchivoOficial + { + public int Anio { set; get; } = 0; + public int Mes { set; get; } = 0; + public int TipoOperacion { set; get; } = 0; + public int Cliente { set; get; } = 0; + } +} diff --git a/GEMCO.Backend/DTO/Battery/DTOBatteryEntry.cs b/GEMCO.Backend/DTO/Battery/DTOBatteryEntry.cs new file mode 100644 index 0000000..f699d85 --- /dev/null +++ b/GEMCO.Backend/DTO/Battery/DTOBatteryEntry.cs @@ -0,0 +1,20 @@ +namespace GEMCO.Backend.DTO.Battery +{ + public class DTOBatteryEntry + { + public int ID { get; set; } = 0!; + public string Trailer { get; set; } = null!; + public string IDPallet { get; set; } = null!; + public double Weight { get; set; } = 0!; + public string ControlNumber { get; set; } = null!; // New + public string CarrierName { get; set; } = null!; // New + public string DriverName { get; set; } = null!; // New + public string Forklift { get; set; } = null!; // New + public string? Issues { get; set; } = null!; // New + public string InTime { get; set; } = null!; // New + public string? OutTime { get; set; } = null!; // New + public int InOut { get; set; } = 0!; // New + public int IdIn { get; set; } = 0!; // New + public int IdOut { get; set; } = 0!; // New + } +} diff --git a/GEMCO.Backend/DTO/Battery/DTOBatteryInfo.cs b/GEMCO.Backend/DTO/Battery/DTOBatteryInfo.cs new file mode 100644 index 0000000..db74f2c --- /dev/null +++ b/GEMCO.Backend/DTO/Battery/DTOBatteryInfo.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Battery +{ + public class DTOBatteryInfo + { + public int ID { get; set; } = 0!; + public int InOut { get; set; } = 0!; + } +} diff --git a/GEMCO.Backend/DTO/Battery/DTOLogFotosBodega.cs b/GEMCO.Backend/DTO/Battery/DTOLogFotosBodega.cs new file mode 100644 index 0000000..bf091d3 --- /dev/null +++ b/GEMCO.Backend/DTO/Battery/DTOLogFotosBodega.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.DTO.Battery +{ + public class DTOLogFotosBodega + { + public int? Proceso { set; get; } = 0; + public string? Referencia { set; get; } = null!; + public string? Inicio { set; get; } = null!; + public string? Fin { set; get; } = null!; + public string? Usuario { set; get; } = null!; + public string? Comentarios { set; get; } = null!; + } +} diff --git a/GEMCO.Backend/DTO/Cliente/ClienteProveedor.cs b/GEMCO.Backend/DTO/Cliente/ClienteProveedor.cs new file mode 100644 index 0000000..d395566 --- /dev/null +++ b/GEMCO.Backend/DTO/Cliente/ClienteProveedor.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.DTO.Cliente +{ + public class DTOClienteProveedor + { + public int IdUsuario { get; set; } + public string sClaveCliente { get; set; } = null!; + public string sClave { get; set; } = null!; + public string sRazonSocial { get; set; } = null!; + public string Direccion { get; set; } = null!; + public bool asignado { get; set; } + } +} diff --git a/GEMCO.Backend/DTO/Cliente/ClienteUsuario.cs b/GEMCO.Backend/DTO/Cliente/ClienteUsuario.cs new file mode 100644 index 0000000..fdb5ca9 --- /dev/null +++ b/GEMCO.Backend/DTO/Cliente/ClienteUsuario.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.DTO.Cliente +{ + public class DTOClienteUsuario + { + public int IdUsuario { get; set; } + public int sClave { get; set; } + public bool agregar { get; set; } + } +} diff --git a/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325AduanasPedidos.cs b/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325AduanasPedidos.cs new file mode 100644 index 0000000..6652b58 --- /dev/null +++ b/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325AduanasPedidos.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Clientes.CasaCuervo +{ + public class DTO325AduanasPedidos + { + public string id { set; get; } = string.Empty; + public string value { set; get; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325ComplementaPedido.cs b/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325ComplementaPedido.cs new file mode 100644 index 0000000..a1d33df --- /dev/null +++ b/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325ComplementaPedido.cs @@ -0,0 +1,16 @@ +namespace GEMCO.Backend.DTO.Clientes.CasaCuervo +{ + public class DTO325ComplementaPedido + { + public string Pedido { set; get; } = string.Empty; + public string Factura { set; get; } = string.Empty; + public string UUID { set; get; } = string.Empty; + public string Trafico { set; get; } = string.Empty; + public string Pedimento { set; get; } = string.Empty; + public string Aduana { set; get; } = string.Empty; + public string Patente { set; get; } = string.Empty; + public string Modulacion { set; get; } = string.Empty; + public string? FechaCompromiso { set; get; } = string.Empty; + public string? Comentario { set; get; } = string.Empty; + } +} diff --git a/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325RptPedidos.cs b/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325RptPedidos.cs new file mode 100644 index 0000000..074e52b --- /dev/null +++ b/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325RptPedidos.cs @@ -0,0 +1,10 @@ + +namespace GEMCO.Backend.DTO.Clientes.CasaCuervo +{ + public class DTO325RptPedidos + { + public string Inicio { get; set; } = string.Empty; + public string Fin { get; set; } = string.Empty; + public string Aduana { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325UpdateFromWeb.cs b/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325UpdateFromWeb.cs new file mode 100644 index 0000000..832d833 --- /dev/null +++ b/GEMCO.Backend/DTO/Clientes/CasaCuervo/DTO325UpdateFromWeb.cs @@ -0,0 +1,18 @@ +namespace GEMCO.Backend.DTO.Clientes.CasaCuervo +{ + public class DTO325UpdateFromWeb + { + public int id { get; set; } = 0!; + public string ComentarioGEMCO { get; set; } = string.Empty; + public string FechaCompromiso { get; set; } = string.Empty; + public string FechaCruce { get; set; } = string.Empty; + public string Factura { get; set; } = string.Empty; + public string MedidaCaja { get; set; } = string.Empty; + public string Sello1 { get; set; } = string.Empty; + public string Sello2 { get; set; } = string.Empty; + public string UUID { get; set; } = string.Empty; + public string Trafico { get; set; } = string.Empty; + public string Pedimento { get; set; } = string.Empty; + public string Patente { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalCuentaComplementaria.cs b/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalCuentaComplementaria.cs new file mode 100644 index 0000000..5d41e75 --- /dev/null +++ b/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalCuentaComplementaria.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.DTO.Corresponsales +{ + public class DTOCorresponsalCuentaComplementaria + { + public int Id { get; set; } = 0; + public int IdTrafico { get; set; } = 0; + public long IdFile { get; set; } = 0!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalCuentaComplementariaEstatus.cs b/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalCuentaComplementariaEstatus.cs new file mode 100644 index 0000000..6b06c65 --- /dev/null +++ b/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalCuentaComplementariaEstatus.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Corresponsales +{ + public class DTOCorresponsalCuentaComplementariaEstatus + { + public int Id { get; set; } = 0; + public byte Estatus { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalTrafico.cs b/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalTrafico.cs new file mode 100644 index 0000000..f7f18ce --- /dev/null +++ b/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalTrafico.cs @@ -0,0 +1,52 @@ +namespace GEMCO.Backend.DTO.Corresponsales +{ + public class DTOCorresponsalTrafico + { + public int id { get; set; } = 0; + public string? Folio { get; set; } = null!; + public string? FechaRegistro { get; set; } = null!; + public int IdUsuario { get; set; } = 0; + public string sUsuario { get; set; } = null!; + public int IdCliente { get; set; } = 0; + public string sCliente { get; set; } = null!; + public int TipoOperacion { get; set; } = 0; + public string sTipoOperacion { get; set; } = null!; + public int OpEntrada { get; set; } = 0; + public string sOpEntrada { get; set; } = null!; + public int OpSalida { get; set; } = 0; + public string sOpSalida { get; set; } = null!; + public int IdCorresponsal { get; set; } = 0; + public string sCorresponsal { get; set; } = null!; + public int? Bultos { get; set; } = 0; + public int? Kilos { get; set; } = 0; + public int? Estatus { get; set; } = 0; + public string sEstatus { get; set; } = null!; + public string? Trafico { get; set; } = null!; + public int? Aduana { get; set; } = 0; + public int? Patente { get; set; } = 0; + public int? Pedimento { get; set; } = 0; + public string? Clave { get; set; } = null!; + public string? FechaPago { get; set; } = null!; + public double? TipoCambio { get; set; } = 0; + public double? ValorAduanaMN { get; set; } = 0; + public double? TotalPagado { get; set; } = 0; + public double? ValorFacturaMN { get; set; } = 0; + public int? CantidadFracciones { get; set; } = 0; + public string? Buque { get; set; } = null!; + public double? ValorFacturaDls { get; set; } = 0; + public string? DescripcionMercancia { get; set; } = null!; + public string? Observaciones { get; set; } = null!; + public string? FechaDesaduanamiento { get; set; } = null!; + public byte? SemaforoFiscal { get; set; } = 0; + public string? NoCuenta { get; set; } = null!; + public string? FechaCuenta { get; set; } = null!; + public int? TipoMercancia { get; set; } = 0; + public string? UltimaActualizacion { get; set; } = null!; + public string? ZIPGEMCO { get; set; } = null!; + public string? ZIPCorresponsal { get; set; } = null!; + public int? Proceso { get; set; } = 0; + public int Rechazado { get; set; } = 0; + public int NoRecti { get; set; } = 0; + public byte? Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalesAnticipo.cs b/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalesAnticipo.cs new file mode 100644 index 0000000..0cb157e --- /dev/null +++ b/GEMCO.Backend/DTO/Corresponsales/DTOCorresponsalesAnticipo.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Corresponsales +{ + public class DTOCorresponsalesAnticipo + { + public int id { get; set; } = 0; + public int IdUsuario { get; set; } = 0!; + } +} diff --git a/GEMCO.Backend/DTO/Corresponsales/DTOLogCorresposalCuentaComplementaria.cs b/GEMCO.Backend/DTO/Corresponsales/DTOLogCorresposalCuentaComplementaria.cs new file mode 100644 index 0000000..7ccfcee --- /dev/null +++ b/GEMCO.Backend/DTO/Corresponsales/DTOLogCorresposalCuentaComplementaria.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.DTO.Corresponsales +{ + public class DTOLogCorresposalCuentaComplementaria + { + public int Estatus { get; set; } = 0; + public string FCreacion { get; set; } = null!; + public string sEstatus { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Corresponsales/DTORectificacionHistorico.cs b/GEMCO.Backend/DTO/Corresponsales/DTORectificacionHistorico.cs new file mode 100644 index 0000000..82132c5 --- /dev/null +++ b/GEMCO.Backend/DTO/Corresponsales/DTORectificacionHistorico.cs @@ -0,0 +1,9 @@ + +namespace GEMCO.Backend.DTO.Corresponsales +{ + public class DTORectificacionHistorico + { + public int IdTrafico { get; set; } = 0; + public int IdUsuario { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Corresponsales/DTOTraficoCompleto.cs b/GEMCO.Backend/DTO/Corresponsales/DTOTraficoCompleto.cs new file mode 100644 index 0000000..1ffb41e --- /dev/null +++ b/GEMCO.Backend/DTO/Corresponsales/DTOTraficoCompleto.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.DTO.Corresponsales +{ + public class DTOTraficoCompleto + { + public int Id { get; set; } = 0; + public int IdUsuario { get; set; } = 0; + public byte Estatus { get; set; } = 0; + public string Comentarios { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/DTOConceptos.cs b/GEMCO.Backend/DTO/DTOConceptos.cs new file mode 100644 index 0000000..05ae8d4 --- /dev/null +++ b/GEMCO.Backend/DTO/DTOConceptos.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO +{ + public class DTOConceptos + { + public int Id { get; set; } = 0; + public string Concepto { get; set; } = null!; + } +} diff --git a/GEMCO.Backend/DTO/DTOItemMenuPerfil.cs b/GEMCO.Backend/DTO/DTOItemMenuPerfil.cs new file mode 100644 index 0000000..c54626f --- /dev/null +++ b/GEMCO.Backend/DTO/DTOItemMenuPerfil.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.DTO +{ + public class DTOItemMenuPerfil + { + public int IdPerfil { get; set; } = 0; + public int itemMenu { get; set; } = 0; + public bool asignado { get; set; } = false; + + } +} diff --git a/GEMCO.Backend/DTO/DTOLogin.cs b/GEMCO.Backend/DTO/DTOLogin.cs new file mode 100644 index 0000000..33c7efc --- /dev/null +++ b/GEMCO.Backend/DTO/DTOLogin.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO +{ + public class DTOLogin + { + public string Usuario { get; set; } = null!; + public string Contrasena { get; set; } = null!; + } +} diff --git a/GEMCO.Backend/DTO/DTOPedimentosSeleccion.cs b/GEMCO.Backend/DTO/DTOPedimentosSeleccion.cs new file mode 100644 index 0000000..7bccb74 --- /dev/null +++ b/GEMCO.Backend/DTO/DTOPedimentosSeleccion.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.DTO +{ + public class DTOPedimentosSeleccion + { + public string Inicio { get; set; } = null!; + public string Fin { get; set; } = null!; + public int TipoOperacion { get; set; } = 0; + public int NoCliente { get; set; } = 0; + public int IdUsuario { get; set; } = 0; + public List? Pedimentos { get; set; } = new List(); + } +} diff --git a/GEMCO.Backend/DTO/DTORespuesta.cs b/GEMCO.Backend/DTO/DTORespuesta.cs new file mode 100644 index 0000000..6cccaaa --- /dev/null +++ b/GEMCO.Backend/DTO/DTORespuesta.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO +{ + public class DTORespuesta + { + public int code { get; set; } = 0!; + public string respuesta { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/DTORolesAsignados.cs b/GEMCO.Backend/DTO/DTORolesAsignados.cs new file mode 100644 index 0000000..c844e08 --- /dev/null +++ b/GEMCO.Backend/DTO/DTORolesAsignados.cs @@ -0,0 +1,11 @@ + +namespace GEMCO.Backend.DTO +{ + public class DTORolesAsignados + { + public int Id { get; set; } = 0; + public int Usuario { get; set; } = 0; + public int Rol { get; set; } = 0; + public Boolean Activo { get; set; } = false; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Reportes/DTOReporte.cs b/GEMCO.Backend/DTO/Reportes/DTOReporte.cs new file mode 100644 index 0000000..f3ced58 --- /dev/null +++ b/GEMCO.Backend/DTO/Reportes/DTOReporte.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.DTO.Reportes +{ + public class DTOReporte + { + public string Inicio { get; set; } = null!; + public string Fin { get; set; } = null!; + public int TipoOperacion { get; set; } = 0; + public int NoCliente { get; set; } = 0; + public int IdUsuario { get; set; } = 0; + //public List? Pedimentos { get; set; } = new List(); + } +} diff --git a/GEMCO.Backend/DTO/Reportes/DTOReporteCorresponsales.cs b/GEMCO.Backend/DTO/Reportes/DTOReporteCorresponsales.cs new file mode 100644 index 0000000..01d8c26 --- /dev/null +++ b/GEMCO.Backend/DTO/Reportes/DTOReporteCorresponsales.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace GEMCO.Backend.DTO.Reportes +{ + public class DTOReporteCorresponsales + { + public string? Inicio { get; set; } = null!; + public string? Fin { get; set; } = null!; + public int? TipoOperacion { get; set; } = 0; + public int? NoCliente { get; set; } = 0; + public int IdCorresponsal { get; set; } = 0; + public int Proceso { get; set; } = 0; + public int Modo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Usuario/DTOClonarUsuario.cs b/GEMCO.Backend/DTO/Usuario/DTOClonarUsuario.cs new file mode 100644 index 0000000..8d7b976 --- /dev/null +++ b/GEMCO.Backend/DTO/Usuario/DTOClonarUsuario.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Usuario +{ + public class DTOClonarUsuario + { + public int IDUsuarioOrigen { get; set; } = 0!; + public int IdUsuarioDestino { get; set; } = 0!; + } +} diff --git a/GEMCO.Backend/DTO/Usuario/DTOPINData.cs b/GEMCO.Backend/DTO/Usuario/DTOPINData.cs new file mode 100644 index 0000000..6710a50 --- /dev/null +++ b/GEMCO.Backend/DTO/Usuario/DTOPINData.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Usuario +{ + public class DTOPINData + { + public int PIN { get; set; } = 0!; + public string Correo { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Usuario/DTOPINUsuario.cs b/GEMCO.Backend/DTO/Usuario/DTOPINUsuario.cs new file mode 100644 index 0000000..a965799 --- /dev/null +++ b/GEMCO.Backend/DTO/Usuario/DTOPINUsuario.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Usuario +{ + public class DTOPINUsuario + { + public int PIN { get; set; } = 0!; + public string Usuario { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Usuario/DTOPerfilCreate.cs b/GEMCO.Backend/DTO/Usuario/DTOPerfilCreate.cs new file mode 100644 index 0000000..4cc8b98 --- /dev/null +++ b/GEMCO.Backend/DTO/Usuario/DTOPerfilCreate.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Usuario +{ + public class DTOPerfilCreate + { + public string Perfil { get; set; } = null!; + public int IdPerfilClonado { get; set; } = 0!; + } +} diff --git a/GEMCO.Backend/DTO/Usuario/DTOResetPassword.cs b/GEMCO.Backend/DTO/Usuario/DTOResetPassword.cs new file mode 100644 index 0000000..0dbbd0c --- /dev/null +++ b/GEMCO.Backend/DTO/Usuario/DTOResetPassword.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Usuario +{ + public class DTOResetPassword + { + public int PIN { get; set; } = 0; + public string Contrasena { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Usuario/DTOUsuarioTransportista.cs b/GEMCO.Backend/DTO/Usuario/DTOUsuarioTransportista.cs new file mode 100644 index 0000000..9301bed --- /dev/null +++ b/GEMCO.Backend/DTO/Usuario/DTOUsuarioTransportista.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.DTO.Usuario +{ + public class DTOUsuarioTransportista + { + public int IdUsuario { get; set; } + public int sClave { get; set; } + public bool Asignado { get; set; } + } +} diff --git a/GEMCO.Backend/DTO/Usuario/DTOUsuariosPerfilParecido.cs b/GEMCO.Backend/DTO/Usuario/DTOUsuariosPerfilParecido.cs new file mode 100644 index 0000000..535cfdf --- /dev/null +++ b/GEMCO.Backend/DTO/Usuario/DTOUsuariosPerfilParecido.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Usuario; + +public class DTOUsuariosPerfilParecido +{ + public int IdUsuario { get; set; } = 0; + public string Nombre { get; set; } = null!; + public string Perfil { get; set; } = null!; +} diff --git a/GEMCO.Backend/DTO/Usuario/DTOUsuariosShort.cs b/GEMCO.Backend/DTO/Usuario/DTOUsuariosShort.cs new file mode 100644 index 0000000..b516bff --- /dev/null +++ b/GEMCO.Backend/DTO/Usuario/DTOUsuariosShort.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.DTO.Usuario +{ + public class DTOUsuariosShort + { + public int id { get; set; } = 0!; + public string Usuario { get; set; } = null!; + } +} diff --git a/GEMCO.Backend/DTO/Utils/DTONotificacionesContactoGrupo.cs b/GEMCO.Backend/DTO/Utils/DTONotificacionesContactoGrupo.cs new file mode 100644 index 0000000..d342f3d --- /dev/null +++ b/GEMCO.Backend/DTO/Utils/DTONotificacionesContactoGrupo.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.DTO.Utils +{ + public class DTONotificacionesContactoGrupo + { + public int IdGrupo { get; set; } = 0; + public int Accion { get; set; } = 0; + public List Contactos { get; set; } = new List(); + } +} \ No newline at end of file diff --git a/GEMCO.Backend/DTO/Utils/DTOSendEmail.cs b/GEMCO.Backend/DTO/Utils/DTOSendEmail.cs new file mode 100644 index 0000000..6d0462e --- /dev/null +++ b/GEMCO.Backend/DTO/Utils/DTOSendEmail.cs @@ -0,0 +1,11 @@ + +namespace GEMCO.Backend.Clientes.ZincInternacional.DTO +{ + public class DTOSendEmail + { + public string To { get; set; } = null!; + public string Subject { get; set; } = null!; + public string Text { get; set; } = null!; + public string Html { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/GEMCO.Backend.csproj b/GEMCO.Backend/GEMCO.Backend.csproj new file mode 100644 index 0000000..db7c9a5 --- /dev/null +++ b/GEMCO.Backend/GEMCO.Backend.csproj @@ -0,0 +1,39 @@ + + + net6.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + + Always + + + Always + + + Always + + + \ No newline at end of file diff --git a/GEMCO.Backend/Models/AOCheckList.cs b/GEMCO.Backend/Models/AOCheckList.cs new file mode 100644 index 0000000..407fc3f --- /dev/null +++ b/GEMCO.Backend/Models/AOCheckList.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.Models +{ + public class AOCheckList + { + public int id { set; get; } = 0; + public string Inicia { set; get; } = string.Empty; + public string Extension { set; get; } = string.Empty; + public Boolean Activo { set; get; } = false; + } +} diff --git a/GEMCO.Backend/Models/AnexoFacturacion/RptAnexoFacturacionAlen.cs b/GEMCO.Backend/Models/AnexoFacturacion/RptAnexoFacturacionAlen.cs new file mode 100644 index 0000000..de1f1a7 --- /dev/null +++ b/GEMCO.Backend/Models/AnexoFacturacion/RptAnexoFacturacionAlen.cs @@ -0,0 +1,24 @@ +namespace GEMCO.Backend.Models.AnexoFacturacion +{ + public class RptAnexoFacturacionAlen + { + public string sReferencia { get; set; } = null!; + public int Remesa { get; set; } = 0; + public string Entrega { get; set; } = null!; + public string sNumero { get; set; } = null!; + public string dFecha { get; set; } = null!; + public string sEDocument { get; set; } = null!; + public string ValorFactura { get; set; } = null!; + public string sPedimento { get; set; } = null!; + public string Cruce { get; set; } = null!; + public string Semaforo { get; set; } = null!; + public string FechaCtaCorresponsal { get; set; } = null!; + public double Honorarios { get; set; } = 0; + public double Maniobras { get; set; } = 0; + public double Validacion { get; set; } = 0; + public double Prevalidacion { get; set; } = 0; + public double Coordinacion { get; set; } = 0; + public double IVA { get; set; } = 0; + public double TotalMN { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/AnexoFacturacion/RptAnexoFacturacionMission.cs b/GEMCO.Backend/Models/AnexoFacturacion/RptAnexoFacturacionMission.cs new file mode 100644 index 0000000..ce4de12 --- /dev/null +++ b/GEMCO.Backend/Models/AnexoFacturacion/RptAnexoFacturacionMission.cs @@ -0,0 +1,19 @@ +namespace GEMCO.Backend.Models.AnexoFacturacion +{ + public class RptAnexoFacturacionMission + { + public int sRemesa { get; set; } + public string sNumPedimento { get; set; } = null!; + public string sReferencia { get; set; } = null!; + public string Transportista { get; set; } = null!; + public string NumCaja { get; set; } = null!; + public double Contraprestacion { get; set; } = 0; + public double Cruce { get; set; } = 0; + public double Flete { get; set; } = 0; + public double OtrosServicios { get; set; } = 0; + public double TotComp { get; set; } = 0; + public double Honorarios { get; set; } = 0; + public double IVA { get; set; } = 0; + public double Total { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/AnexoFacturacion/RptConsolidadosSinCerrar.cs b/GEMCO.Backend/Models/AnexoFacturacion/RptConsolidadosSinCerrar.cs new file mode 100644 index 0000000..beba638 --- /dev/null +++ b/GEMCO.Backend/Models/AnexoFacturacion/RptConsolidadosSinCerrar.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models.AnexoFacturacion +{ + public class RptConsolidadosSinCerrar + { + public string Trafico { get; set; } = null!; + public string Cliente { get; set; } = null!; + public string FechaApertura { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/ArchivoElectronico.cs b/GEMCO.Backend/Models/ArchivoElectronico.cs new file mode 100644 index 0000000..ee6e916 --- /dev/null +++ b/GEMCO.Backend/Models/ArchivoElectronico.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Models +{ + public class ArchivoElectronico + { + public string Referencia { set; get; } = string.Empty; + public string PedimentoLargo { set; get; } = string.Empty; + public string Archivo { set; get; } = string.Empty; + public int NoCliente { set; get; } = 0; + public int IdUsuario { set; get; } = 0; + } +} diff --git a/GEMCO.Backend/Models/ArchivoElectronicoSeleccion.cs b/GEMCO.Backend/Models/ArchivoElectronicoSeleccion.cs new file mode 100644 index 0000000..f86bca6 --- /dev/null +++ b/GEMCO.Backend/Models/ArchivoElectronicoSeleccion.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.Models +{ + public class ArchivoElectronicoSeleccion + { + public string Referencia { set; get; } = string.Empty; + public string PedimentoLargo { set; get; } = string.Empty; + public string Archivo { set; get; } = string.Empty; + public int NoCliente { set; get; } = 0; + public int IdUsuario { set; get; } = 0; + public List? Archivos { get; set; } = new List(); + } +} diff --git a/GEMCO.Backend/Models/BatteryEntry.cs b/GEMCO.Backend/Models/BatteryEntry.cs new file mode 100644 index 0000000..a944cc6 --- /dev/null +++ b/GEMCO.Backend/Models/BatteryEntry.cs @@ -0,0 +1,23 @@ +namespace GEMCO.Backend.Models +{ + public class BatteryEntry + { + public int ID { get; set; } = 0!; + public string Trailer { get; set; } = null!; + public string? Today { get; set; } = null!; + public string IDPallet { get; set; } = null!; + public double Weight { get; set; } = 0!; + public string ControlNumber { get; set; } = null!; // New + public string CarrierName { get; set; } = null!; // New + public string DriverName { get; set; } = null!; // New + public string Forklift { get; set; } = null!; // New + public string? Issues { get; set; } = null!; // New + public string InTime { get; set; } = null!; // New + public string? OutTime { get; set; } = null!; // New + public int InOut { get; set; } = 0!; // New + public int IdIn { get; set; } = 0!; // New + public int IdOut { get; set; } = 0!; // New + public int TotalPallets { get; set; } = 0!; // New + public double TotalWeight { get; set; } = 0!; // New + } +} diff --git a/GEMCO.Backend/Models/CatProveedores.cs b/GEMCO.Backend/Models/CatProveedores.cs new file mode 100644 index 0000000..ab5e19a --- /dev/null +++ b/GEMCO.Backend/Models/CatProveedores.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models +{ + public class CatProveedores + { + public int id { set; get; } = 0; + public string Nombre { set; get; } = string.Empty; + public int Clasificacion { set; get; } = 0; + } +} diff --git a/GEMCO.Backend/Models/CatRoles.cs b/GEMCO.Backend/Models/CatRoles.cs new file mode 100644 index 0000000..bc7d256 --- /dev/null +++ b/GEMCO.Backend/Models/CatRoles.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models +{ + public class CatRoles + { + public int Id { set; get; } + public string Rol { set; get; } = null!; + public byte Activo { set; get; } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Catalogos/CatCorresponsales.cs b/GEMCO.Backend/Models/Catalogos/CatCorresponsales.cs new file mode 100644 index 0000000..8ca9256 --- /dev/null +++ b/GEMCO.Backend/Models/Catalogos/CatCorresponsales.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Models.Catalogos +{ + public class CatCorresponsales + { + public int id { set; get; } = 0; + public string Nombre { set; get; } = null!; + public int Patente { set; get; } = 0; + public int Aduana { set; get; } = 0; + public string Correos { set; get; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Catalogos/Tabulador.cs b/GEMCO.Backend/Models/Catalogos/Tabulador.cs new file mode 100644 index 0000000..276eb52 --- /dev/null +++ b/GEMCO.Backend/Models/Catalogos/Tabulador.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.Models.Catalogos +{ + public class Tabulador + { + public int id { set; get; } = 0; + public string Nombre { set; get; } = null!; + public int IdCliente { set; get; } = 0; + public Boolean Activo { set; get; } = true; + } +} diff --git a/GEMCO.Backend/Models/Catalogos/TabuladorDetalle.cs b/GEMCO.Backend/Models/Catalogos/TabuladorDetalle.cs new file mode 100644 index 0000000..4fe989f --- /dev/null +++ b/GEMCO.Backend/Models/Catalogos/TabuladorDetalle.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.Models.Catalogos +{ + public class TabuladorDetalle + { + public int id { set; get; } = 0; + public int IdTabulador { set; get; } = 0; + public int IdConcepto { set; get; } = 0; + public string? Concepto { set; get; } = null!; + public double Costo { set; get; } = 0; + public int Activo { set; get; } = 0; + } +} diff --git a/GEMCO.Backend/Models/Clientes.cs b/GEMCO.Backend/Models/Clientes.cs new file mode 100644 index 0000000..ca6ebf5 --- /dev/null +++ b/GEMCO.Backend/Models/Clientes.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.Models +{ + public class IClientes + { + public int sClave { set; get; } + public byte Agrupado { set; get; } + public string sRazonSocial { set; get; } = null!; + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Clientes/CasaCuervo/I325Pedidos.cs b/GEMCO.Backend/Models/Clientes/CasaCuervo/I325Pedidos.cs new file mode 100644 index 0000000..23a8bc5 --- /dev/null +++ b/GEMCO.Backend/Models/Clientes/CasaCuervo/I325Pedidos.cs @@ -0,0 +1,31 @@ +namespace GEMCO.Backend.Models.Clientes.CasaCuervo +{ + public class I325Pedidos + { + public int id { set; get; } = 0; + public string PO { set; get; } = string.Empty; + public string Aduana { set; get; } = string.Empty; + public string Destination { set; get; } = string.Empty; + public string TruckNumber { set; get; } = string.Empty; + public string Forwarder { set; get; } = string.Empty; + public string Carrier { set; get; } = string.Empty; + public string LoadDate { set; get; } = string.Empty; + public string Prioridad { set; get; } = string.Empty; + public string? Estatus { set; get; } = string.Empty; + public string? ComentarioGEMCO { set; get; } = string.Empty; + public string? FechaCompromiso { set; get; } = string.Empty; + public string? FechaCruce { set; get; } = string.Empty; + public string? Factura { set; get; } = string.Empty; + public string? UUID { set; get; } = string.Empty; + public string? Trafico { set; get; } = string.Empty; + public string? Pedimento { set; get; } = string.Empty; + public string? Patente { set; get; } = string.Empty; + public string? Modulacion { set; get; } = string.Empty; + public string? Actualizacion { set; get; } = string.Empty; + // public string? NoFactura { set; get; } = string.Empty; + public string? MedidaCaja { set; get; } = string.Empty; + public string? Sello1 { set; get; } = string.Empty; + public string? Sello2 { set; get; } = string.Empty; + public int? Activo { set; get; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Clientes/CasaCuervo/I325RptCOVE.cs b/GEMCO.Backend/Models/Clientes/CasaCuervo/I325RptCOVE.cs new file mode 100644 index 0000000..cc41b00 --- /dev/null +++ b/GEMCO.Backend/Models/Clientes/CasaCuervo/I325RptCOVE.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.Models.Clientes.CasaCuervo +{ + public class I325RptCOVE + { + public string Factura { set; get; } = string.Empty; + public string COVE { set; get; } = string.Empty; + public string Pedimento { set; get; } = string.Empty; + public string Clave { set; get; } = string.Empty; + public string FechaPago { set; get; } = string.Empty; + public string Vehiculo { set; get; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalAnticipos.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalAnticipos.cs new file mode 100644 index 0000000..19fb9e8 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalAnticipos.cs @@ -0,0 +1,19 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalAnticipos + { + public int id { set; get; } = 0!; + public int IdTrafico { set; get; } = 0!; + public decimal Anticipo { set; get; } = 0!; + public byte Moneda { set; get; } = 0!; + public string Concepto { set; get; } = null!; + public int? Solicita { set; get; } = 0!; + public string? sSolicita { set; get; } = null!; + public string? FHSolicita { set; get; } = null!; + public int? Autoriza { set; get; } = 0!; + public string? sAutoriza { set; get; } = null!; + public string? FHAutoriza { set; get; } = null!; + public int Financiado { set; get; } = 0!; + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalCatAduanas.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatAduanas.cs new file mode 100644 index 0000000..2e674e1 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatAduanas.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalCatAduanas + { + public int ClaveAduana { set; get; } = 0!; + public int Cliente { set; get; } = 0!; + public string Abreviatura { set; get; } = null!; + public string Aduana { set; get; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalCatDestinos.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatDestinos.cs new file mode 100644 index 0000000..40544bd --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatDestinos.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalCatDestinos + { + public int id { set; get; } = 0!; + public int Cliente { set; get; } = 0!; + public string Destino { set; get; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalCatMediosEmbarque.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatMediosEmbarque.cs new file mode 100644 index 0000000..b8b8a43 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatMediosEmbarque.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalCatMediosEmbarque + { + public int Id { set; get; } = 0!; + public string Descripcion { set; get; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalCatRazonSocial.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatRazonSocial.cs new file mode 100644 index 0000000..6ca2bd8 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatRazonSocial.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalCatRazonSocial + { + public int Id { set; get; } = 0!; + public int Cliente { set; get; } = 0!; + public string RazonSocial { set; get; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalCatStatusMercancia.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatStatusMercancia.cs new file mode 100644 index 0000000..6350d69 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatStatusMercancia.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalCatStatusMercancia + { + public int Id { set; get; } = 0!; + public int Cliente { set; get; } = 0!; + public string Estatus { set; get; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalCatTipoEmbarque.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatTipoEmbarque.cs new file mode 100644 index 0000000..06327ed --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatTipoEmbarque.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalCatTipoEmbarque + { + public int Id { set; get; } = 0!; + public int Cliente { set; get; } = 0!; + public string Descripcion { set; get; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalCatTiposDocumento.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatTiposDocumento.cs new file mode 100644 index 0000000..0051b23 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalCatTiposDocumento.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalCatTiposDocumento + { + public int Id { set; get; } = 0!; + public int Cliente { set; get; } = 0!; + public string Descripcion { set; get; } = null!; + public int TipoCaptura { set; get; } = 0!; + public int Proceso { set; get; } = 0!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalCuentasComplementarias.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalCuentasComplementarias.cs new file mode 100644 index 0000000..6273cb6 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalCuentasComplementarias.cs @@ -0,0 +1,13 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalCuentasComplementarias + { + public int id { set; get; } = 0!; + public int IdTrafico { set; get; } = 0!; + public long IdXML { set; get; } = 0!; + public string ArchivoXML { set; get; } = null!; + public int IdPDF { set; get; } = 0!; + public string ArchivoPDF { set; get; } = null!; + public byte? Estatus { set; get; } = 0!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalCuentasComplementariasEstatus.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalCuentasComplementariasEstatus.cs new file mode 100644 index 0000000..cacb264 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalCuentasComplementariasEstatus.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalCuentasComplementariasEstatus + { + public int id { set; get; } = 0!; + public string Estatus { set; get; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalFacturas.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalFacturas.cs new file mode 100644 index 0000000..af40394 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalFacturas.cs @@ -0,0 +1,16 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalFacturas + { + public int id { get; set; } = 0; + public string? Factura { get; set; } = null!; + public int IdTrafico { get; set; } = 0; + public double? ValorFacturaDls { get; set; } = 0; + public int? Proveedor { get; set; } = 0; + public string Pedido { get; set; } = null!; + public string? FechaFactura { get; set; } = null!; + public Boolean? Activo { get; set; } = true; + public int? Code { get; set; } = 0; + public string? FolioGEMCO { get; set; } = null!; + } +} diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalFacturasTerceros.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalFacturasTerceros.cs new file mode 100644 index 0000000..7199096 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalFacturasTerceros.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalFacturasTerceros + { + public int id { get; set; } = 0; + public string Factura { get; set; } = null!; + public int IdProveedor { get; set; } = 0; + public int IdTrafico { get; set; } = 0; + public Boolean? Activo { get; set; } = true; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalPedimento.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalPedimento.cs new file mode 100644 index 0000000..8a93195 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalPedimento.cs @@ -0,0 +1,39 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalPedimento + { + public int id { get; set; } + public int IdTrafico { get; set; } + public int Aduana { get; set; } + public double CostoDiario { get; set; } + public string Descripcion { get; set; } = null!; + public int Destino { get; set; } + public int DiasCPPagado { get; set; } = 0!; + public double Embalaje { get; set; } + public int Estatus { get; set; } + public string FAlmacenajeInicioGastos { get; set; } = null!; + public string FDespacho { get; set; } = null!; + public string FechaETA { get; set; } = null!; + public string FEntrada { get; set; } = null!; + public string FHEntregaPlanta { get; set; } = null!; + public string FHInstrucciones { get; set; } = null!; + public double Fletes { get; set; } + public string FRevalidacionGuia { get; set; } = null!; + public string HAWB { get; set; } = null!; + public string Incoterm { get; set; } = null!; + public string LineaTransportistaInternacional { get; set; } = null!; + public string MAWB { get; set; } = null!; + public double MontoUSA { get; set; } + public string NoGuia { get; set; } = null!; + public string Observaciones { get; set; } = null!; + public string Origen { get; set; } = null!; + public double Otros { get; set; } + public string PaqueteriaTransportista { get; set; } = null!; + public double PesoNeto { get; set; } + public byte PreferenciaArancelaria { get; set; } = 0; + public double Seguros { get; set; } + public int TipoEmbarque { get; set; } + public double TotalPagar { get; set; } + public byte Activo { get; set; } = 1; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalPedimentoPartida.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalPedimentoPartida.cs new file mode 100644 index 0000000..110d4db --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalPedimentoPartida.cs @@ -0,0 +1,19 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalPedimentoPartida + { + public int id { set; get; } = 0!; + public int IdTrafico { set; get; } = 0!; + public int Partida { set; get; } = 0!; + public int IdFactura { set; get; } = 0!; + public string Factura { set; get; } = null!; + public string Proveedor { set; get; } = null!; + public string DescripcionMaterial { set; get; } = null!; + public string FraccionArancelaria { set; get; } = null!; + public decimal ValorAduana { set; get; } = 0!; + public decimal DTA { set; get; } = 0!; + public decimal IGI { set; get; } = 0!; + public decimal IEPS { set; get; } = 0!; + public Byte Activo { set; get; } = 1!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalTraficoContabilidad.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalTraficoContabilidad.cs new file mode 100644 index 0000000..478bece --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalTraficoContabilidad.cs @@ -0,0 +1,13 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalTraficoContabilidad + { + public int id { set; get; } = 0!; + public int? IdUsuario { set; get; } = 0!; + public int IdTrafico { set; get; } = 0!; + public int StatusProceso { set; get; } = 0!; + public string FechaRegistro { set; get; } = null!; + public string RazonRechazo { set; get; } = null!; + public int Tipo { set; get; } = 0!; + } +} diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalesContenedores.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalesContenedores.cs new file mode 100644 index 0000000..6aaf3a6 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalesContenedores.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalesContenedores + { + public int id { get; set; } = 0; + public int IdTrafico { get; set; } = 0; + public string? Contenedor { get; set; } = null!; + public string? FSemaforo { get; set; } = null!; + public byte? Semaforo { get; set; } = 0!; + } +} diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalesGuias.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalesGuias.cs new file mode 100644 index 0000000..f2b97f8 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalesGuias.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalesGuias + { + public int id { get; set; } = 0; + public int IdTrafico { get; set; } = 0; + public string? Guia { get; set; } = null!; + } +} diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalesTraficoEstatus.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalesTraficoEstatus.cs new file mode 100644 index 0000000..3a1aa19 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalesTraficoEstatus.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalesTraficoEstatus + { + public int Id { set; get; } = 0!; + public string Estatus { set; get; } = null!; + public byte Activo { set; get; } = 0!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalesZipFile.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalesZipFile.cs new file mode 100644 index 0000000..a987a97 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalesZipFile.cs @@ -0,0 +1,10 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalesZipFile + { + public int IdUsuario { set; get; } = 0!; + public int IdTrafico { set; get; } = 0!; + public int Clasificacion { set; get; } = 0!; + public IFormFile file { set; get; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Corresponsales/CorresponsalesZips.cs b/GEMCO.Backend/Models/Corresponsales/CorresponsalesZips.cs new file mode 100644 index 0000000..348bc49 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/CorresponsalesZips.cs @@ -0,0 +1,14 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class CorresponsalesZips + { + public int? id { set; get; } = 0!; + public int? IdUsuario { set; get; } = 0!; + public int IdTrafico { set; get; } = 0!; + public string Archivo { set; get; } = null!; + public string? Registro { set; get; } = null!; + public int? Clasificacion { set; get; } = 0!; + public int Mode { set; get; } = 0!; + public Boolean? Activo { set; get; } = true; + } +} diff --git a/GEMCO.Backend/Models/Corresponsales/I1896TempleteUpload.cs b/GEMCO.Backend/Models/Corresponsales/I1896TempleteUpload.cs new file mode 100644 index 0000000..70dd2e7 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/I1896TempleteUpload.cs @@ -0,0 +1,33 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class I1896TempleteUpload + { + public int id { set; get; } = 0!; + public string RFC { set; get; } = null!; + public string RazonSocial { set; get; } = null!; + public string Referencia { set; get; } = null!; + public string Patente { set; get; } = null!; + public string Aduana { set; get; } = null!; + public string Pedimento { set; get; } = null!; + public string FechaPago { set; get; } = null!; + public string Clave { set; get; } = null!; + public string Cuenta { set; get; } = null!; + public string Proveedor { set; get; } = null!; + public string TipoOperacion { set; get; } = null!; + public string Factura { set; get; } = null!; + public string DescripcionMercancia { set; get; } = null!; + public double TC { set; get; } = 0!; + public double ValorDolares { set; get; } = 0!; + public double TotalEfectivo { set; get; } = 0!; + public string Fracciones { set; get; } = null!; + public string FechaCruce { set; get; } = null!; + public string Pedido { set; get; } = null!; + public string UUID { set; get; } = null!; + public string Caja { set; get; } = null!; + public string Tipo { set; get; } = null!; + public string FechaFactura { set; get; } = null!; + public string Semaforo { set; get; } = null!; + public string? FHCreacion { set; get; } = null!; + public string? Activo { set; get; } = null!; + } +} diff --git a/GEMCO.Backend/Models/Corresponsales/ICorRectificaciones.cs b/GEMCO.Backend/Models/Corresponsales/ICorRectificaciones.cs new file mode 100644 index 0000000..f850382 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/ICorRectificaciones.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class ICorRectificaciones + { + public int id { get; set; } = 0; + public string FolioGemco { get; set; } = null!; + public string FechaRegistro { get; set; } = null!; + public int PrevRecti { get; set; } = 0!; + public int NextRecti { get; set; } = 0!; + public int NoRecti { get; set; } = 0!; + } +} diff --git a/GEMCO.Backend/Models/Corresponsales/IPrecuenta.cs b/GEMCO.Backend/Models/Corresponsales/IPrecuenta.cs new file mode 100644 index 0000000..cf1d9a6 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/IPrecuenta.cs @@ -0,0 +1,13 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class IPrecuenta + { + public int id { get; set; } = 0; + public int idTrafico { get; set; } = 0; + public int idTabulador { get; set; } = 0; + public int idConcepto { get; set; } = 0; + public string Concepto { get; set; } = null!; + public double Costo { get; set; } = 0; + public byte Activo { get; set; } = 0; + } +} diff --git a/GEMCO.Backend/Models/Corresponsales/ITrafico.cs b/GEMCO.Backend/Models/Corresponsales/ITrafico.cs new file mode 100644 index 0000000..874f389 --- /dev/null +++ b/GEMCO.Backend/Models/Corresponsales/ITrafico.cs @@ -0,0 +1,45 @@ +namespace GEMCO.Backend.Models.Corresponsales +{ + public class ITrafico + { + public int id { get; set; } = 0; + public string? FolioGemco { get; set; } = null!; + public string? FechaRegistro { get; set; } = null!; + public int IdUsuario { get; set; } = 0; + public int IdCliente { get; set; } = 0; + public int TipoOperacion { get; set; } = 0; + //public int TipoEmbarque { get; set; } = 0; + public int OpEntrada { get; set; } = 0; + public int OpSalida { get; set; } = 0; + public int IdCorresponsal { get; set; } = 0; + public int? Bultos { get; set; } = 0; + public double? Kilos { get; set; } = 0; + public int? Estatus { get; set; } = 0; + public string? Trafico { get; set; } = null!; + public int? Aduana { get; set; } = 0; + public int? Patente { get; set; } = 0; + public int? Pedimento { get; set; } = 0; + public string? Clave { get; set; } = null!; + public string? FechaPago { get; set; } = null!; + public double? TipoCambio { get; set; } = 0; + public double? ValorAduanaMN { get; set; } = 0; + public double? TotalPagado { get; set; } = 0; + public double? ValorFacturaMN { get; set; } = 0; + public int? CantidadFracciones { get; set; } = 0; + public string? Buque { get; set; } = null!; + public double? ValorFacturaDls { get; set; } = 0; + public string? DescripcionMercancia { get; set; } = null!; + public string? Observaciones { get; set; } = null!; + public string? FechaDesaduanamiento { get; set; } = string.Empty; + public byte? SemaforoFiscal { get; set; } = 0; + public string? NoCuenta { get; set; } = null!; + public string? FechaCuenta { get; set; } = null!; + public int? TipoMercancia { get; set; } = 0; + public string? UltimaActualizacion { get; set; } = null!; + public int? Proceso { get; set; } = 0; + public int? IdTabulador { get; set; } = 0; + public int NoRecti { get; set; } = 0; + public double EstatusCode { get; set; } = 0; + public byte? Activo { get; set; } = 0; + } +} diff --git a/GEMCO.Backend/Models/DashboardCorresponsales.cs b/GEMCO.Backend/Models/DashboardCorresponsales.cs new file mode 100644 index 0000000..3831cb4 --- /dev/null +++ b/GEMCO.Backend/Models/DashboardCorresponsales.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.Models +{ + public class DashboardCorresponsales + { + public int Total { get; set; } = 0; + public string Descripcion { get; set; } = string.Empty; + } +} diff --git a/GEMCO.Backend/Models/DashboardTotal.cs b/GEMCO.Backend/Models/DashboardTotal.cs new file mode 100644 index 0000000..aad003e --- /dev/null +++ b/GEMCO.Backend/Models/DashboardTotal.cs @@ -0,0 +1,7 @@ +namespace GEMCO.Backend.Models +{ + public class DashboardTotal + { + public int Total { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/LogFotosBodega.cs b/GEMCO.Backend/Models/LogFotosBodega.cs new file mode 100644 index 0000000..cbdbe16 --- /dev/null +++ b/GEMCO.Backend/Models/LogFotosBodega.cs @@ -0,0 +1,15 @@ +namespace GEMCO.Backend.Models +{ + public class LogFotosBodega + { + public int Id { get; set; } = 0; + public string Nombre { set; get; } = null!; + public string? Registrado { set; get; } = null!; + public int? Proceso { set; get; } = 0; + public string? Referencia { set; get; } = null!; + public string? Creado { set; get; } = null!; + public string? Usuario { set; get; } = null!; + public string? Comentarios { set; get; } = null!; + public Boolean Activo { set; get; } = true!; + } +} diff --git a/GEMCO.Backend/Models/Menu.cs b/GEMCO.Backend/Models/Menu.cs new file mode 100644 index 0000000..20f6194 --- /dev/null +++ b/GEMCO.Backend/Models/Menu.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Models +{ + public class Menu + { + public int Id { get; set; } + public string Descripcion { get; set; } = null!; + public int PadreId { get; set; } + public int Posicion { get; set; } + public string Url { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Perfiles.cs b/GEMCO.Backend/Models/Perfiles.cs new file mode 100644 index 0000000..5769d60 --- /dev/null +++ b/GEMCO.Backend/Models/Perfiles.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.Models +{ + public class Perfiles + { + public int id { get; set; } + public string Perfil { get; set; } = string.Empty; + } +} diff --git a/GEMCO.Backend/Models/PerfilesMenu.cs b/GEMCO.Backend/Models/PerfilesMenu.cs new file mode 100644 index 0000000..250ac49 --- /dev/null +++ b/GEMCO.Backend/Models/PerfilesMenu.cs @@ -0,0 +1,16 @@ +namespace GEMCO.Backend.Models +{ + public class PerfilesMenu + { + public int id { set; get; } + public int IdPerfil { set; get; } + public int itemMenu { set; get; } + public string Perfil { set; get; } = null!; + public string Descripcion { set; get; } = null!; + public int PadreId { set; get; } + public int Posicion { set; get; } + public string Url { set; get; } = null!; + public int Habilitado { set; get; } + public int Agrupado { set; get; } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Proveedores.cs b/GEMCO.Backend/Models/Proveedores.cs new file mode 100644 index 0000000..3a1af87 --- /dev/null +++ b/GEMCO.Backend/Models/Proveedores.cs @@ -0,0 +1,12 @@ +namespace GEMCO.Backend.Models +{ + public class Proveedores + { + public int IdUsuario { get; set; } + public string sClaveCliente { get; set; } = null!; + public string sClave { set; get; } = null!; + public string sRazonSocial { set; get; } = null!; + public string Direccion { set; get; } = null!; + public byte Asignado { set; get; } = 0; + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptDetalleAnexo24.cs b/GEMCO.Backend/Models/Reportes/RptDetalleAnexo24.cs new file mode 100644 index 0000000..f9df4f0 --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptDetalleAnexo24.cs @@ -0,0 +1,57 @@ +namespace GEMCO.Backend.Models.Reportes +{ + public class RptDetalleAnexo24 + { + // public int Id { get; set; } + public string AduanaSeccionDespacho { get; set; } = null!; + public int Patente { get; set; } + public string Referencia { get; set; } = null!; + public string Pedimento { get; set; } = null!; + public string FechaPago { get; set; } = null!; + public string FechaEntradaPresentracion { get; set; } = null!; + public string ClaveDocto { get; set; } = null!; + public string EsRectificacion { get; set; } = null!; + public double TipoCambio { get; set; } + public double ValorDls { get; set; } + public double ValorAduana { get; set; } + public string NumeroFactura { get; set; } = null!; + public string FechaFactura { get; set; } = null!; + public string ProveedorFactura { get; set; } = null!; + public string IncrementablesFact { get; set; } = null!; + public int Fraccion { get; set; } = 0!; + public string SubdivNICO { get; set; } = null!; + public string Descripcion { get; set; } = null!; + public string PaisOrigen { get; set; } = null!; + public string PaisVendedor { get; set; } = null!; +/* public string PaisComprador { get; set; } = null!; + public double PrevFraccion { get; set; }*/ + public string TasaDTA { get; set; } = null!; + public string TasaIGI { get; set; } = null!; +/* public string TASAIVA { get; set; } = null!; + public string TasaCC { get; set; } = null!; + public string ValorDTA { get; set; } = null!; + public string ValorIGI { get; set; } = null!; + public string ValorIVA { get; set; } = null!; + public string ValorCC { get; set; } = null!; + public string VAduanaFracc { get; set; } = null!; + public string VDlsFracc { get; set; } = null!;*/ + public string NumeroParte { get; set; } = null!; + public string CantidadComercial { get; set; } = null!; + public string TLPais { get; set; } = null!; + public string TipoTasa { get; set; } = null!; + public string UnidadComercial { get; set; } = null!; +// public int Secuencial { get; set; } + public double ValorFacturaItem { get; set; } + public double ValorComercialPed { get; set; } + public double ValorFacturaItemMn { get; set; } +/* public double TotalIncrementables { get; set; } + public int ReferenciaIdSucPAtAduana { get; set; } + public int RefenciaIdCliente { get; set; } + public int ReferenciaIdImpExp { get; set; } + public int Tipo_Operacion { get; set; } + public int PedimentoNumero { get; set; } + public int PedimentosPagados { get; set; } + public string ReferenciaFechaApertura { get; set; } = null!; + public string PedimentoFechaPago { get; set; } = null!;*/ + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptDetalleAnexo24Map.cs b/GEMCO.Backend/Models/Reportes/RptDetalleAnexo24Map.cs new file mode 100644 index 0000000..087f738 --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptDetalleAnexo24Map.cs @@ -0,0 +1,38 @@ +using Dapper.FluentMap.Mapping; + +namespace GEMCO.Backend.Models.Reportes +{ + public class RptDetalleAnexo24Map : EntityMap + { + public RptDetalleAnexo24Map() + { + Map(p => p.AduanaSeccionDespacho).ToColumn("ADUANA/SECCIÓN DESPACHO"); + Map(p => p.FechaPago).ToColumn("FECHA PAGO"); + Map(p => p.FechaEntradaPresentracion).ToColumn("FECHA ENTRADA/PRESENTACIÓN"); + Map(p => p.ClaveDocto).ToColumn("CLAVE DOCTO"); + Map(p => p.EsRectificacion).ToColumn("ES RECTIFICIÓN"); + Map(p => p.TipoCambio).ToColumn("TIPO CAMBIO"); + Map(p => p.ValorDls).ToColumn("VALOR DLS"); + Map(p => p.ValorAduana).ToColumn("VALOR ADUANA"); + Map(p => p.NumeroFactura).ToColumn("NÚMERO FACTURA"); + Map(p => p.FechaFactura).ToColumn("FECHA FACTURA"); + Map(p => p.ProveedorFactura).ToColumn("PROVEEDOR FACTURA"); + Map(p => p.IncrementablesFact).ToColumn("INCREMENTABLES FACT"); + Map(p => p.Fraccion).ToColumn("FRACCIÓN"); + Map(p => p.SubdivNICO).ToColumn("Subdiv./NICO"); + Map(p => p.Descripcion).ToColumn("DESCRIPCIÓN"); + Map(p => p.PaisOrigen).ToColumn("PAÍS DE ORIGEN"); + Map(p => p.PaisVendedor).ToColumn("PAÍS VENDEDOR"); + Map(p => p.TasaDTA).ToColumn("TASA DTA"); + Map(p => p.TasaIGI).ToColumn("TASA IGI"); + Map(p => p.NumeroParte).ToColumn("NÚMERO PARTE"); + Map(p => p.CantidadComercial).ToColumn("CANTIDAD COMERCIAL"); + Map(p => p.TLPais).ToColumn("TL PAÍS"); + Map(p => p.TipoTasa).ToColumn("TIPO TASA"); + Map(p => p.UnidadComercial).ToColumn("UNIDAD COMERCIAL"); + Map(p => p.ValorFacturaItem).ToColumn("ValorFactura Item"); + Map(p => p.ValorComercialPed).ToColumn("Valor Comercial Ped"); + Map(p => p.ValorFacturaItemMn).ToColumn("ValorFactura Item MN"); + } + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptOperaciones.cs b/GEMCO.Backend/Models/Reportes/RptOperaciones.cs new file mode 100644 index 0000000..14809ff --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptOperaciones.cs @@ -0,0 +1,25 @@ +using System.ComponentModel.DataAnnotations; + +namespace GEMCO.Backend.Models.Reportes +{ + public class RptOperaciones + { + public int NoCliente { get; set; } = 0; + public string Trafico { get; set; } = null!; + public string FechaAltaTrafico { get; set; } = null!; + public string FechaRecepcionFactura { get; set; } = null!; + public string PatioNuevoLaredo { get; set; } = null!; + public string NumeroCaja { get; set; } = null!; + public string Referencia { get; set; } = null!; + public string Pedimento { get; set; } = null!; + public string Factura { get; set; } = null!; + public string UUID { get; set; } = null!; + public string Pedido { get; set; } = null!; + public string FechaPagoPedimento { get; set; } = null!; + public string DescripcionMercancia { get; set; } = null!; + public string FechaEnvioDODA { get; set; } = null!; + public string FechaModulacion { get; set; } = null!; + public string ResultadoModulacion { get; set; } = null!; + public string Observaciones { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Reportes/RptOperacionesConsolidadas.cs b/GEMCO.Backend/Models/Reportes/RptOperacionesConsolidadas.cs new file mode 100644 index 0000000..52f278f --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptOperacionesConsolidadas.cs @@ -0,0 +1,36 @@ +namespace GEMCO.Backend.Models.Reportes +{ + public class RptOperacionesConsolidadas + { + public string sReferencia { get; set; } = null!; + public string sPedimento { get; set; } = null!; + public string sClave { get; set; } = null!; + public string FechaPago { get; set; } = null!; + public double nTipoCambio { get; set; } = 0!; + public double nPesoBruto { get; set; } = 0!; + public string PaisVendedor { get; set; } = null!; + public string PaisOrigen { get; set; } = null!; + public string NumFacturas { get; set; } = null!; + public string Factura { get; set; } = null!; + public double ValorFactura { get; set; } = 0!; + public string Fraccion { get; set; } = null!; + public string Descripcion { get; set; } = null!; + public string nClave { get; set; } = null!; + public int CantFacturas { get; set; } = 0!; + public double ValorAduana { get; set; } = 0!; + public double Incrementables { get; set; } = 0!; + public double AdValorem { get; set; } = 0!; + public double DTA { get; set; } = 0!; + public double IVA { get; set; } = 0!; + public double Efectivo { get; set; } = 0!; + public double Total { get; set; } = 0!; + public int Destino { get; set; } = 0!; + public string Cruce { get; set; } = null!; + public string Remitente { get; set; } = null!; + public string Caja { get; set; } = null!; + public double ValorComercial { get; set; } = 0!; + public int Aduana { get; set; } = 0!; + public int Patente { get; set; } = 0!; + public string Incoterm { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Reportes/RptOperacionesDiarias.cs b/GEMCO.Backend/Models/Reportes/RptOperacionesDiarias.cs new file mode 100644 index 0000000..eb162ac --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptOperacionesDiarias.cs @@ -0,0 +1,20 @@ +namespace GEMCO.Backend.Models.Reportes +{ + public class RptOperacionesDiarias + { + public string sReferencia { get; set; } = null!; + public byte Remesa { get; set; } = 0!; + public int Aduana { get; set; } = 0!; + public string sNumPedido { get; set; } = null!; + public string RecibioFact { get; set; } = null!; + public string sTransporte { get; set; } = null!; + public string sInfoTransp { get; set; } = null!; + public string Previo { get; set; } = null!; + public string sNumeroLargo { get; set; } = null!; + public string dFechaFirmaBanco { get; set; } = null!; + public string dFechaFinPrimSel { get; set; } = null!; + public string nPrimeraSel { get; set; } = null!; + public string sNumPedimento { get; set; } = null!; + public string sObservaciones { get; set; } = null!; + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptOperacionesRemesa.cs b/GEMCO.Backend/Models/Reportes/RptOperacionesRemesa.cs new file mode 100644 index 0000000..6648a4e --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptOperacionesRemesa.cs @@ -0,0 +1,103 @@ +namespace GEMCO.Backend.Models.Reportes +{ + public class RptOperacionesRemesa + { + public string Vinculacion { get; set; } = null!; + public string Vin { get; set; } = null!; + public string UMT { get; set; } = null!; + public string UMC { get; set; } = null!; + public string TLC { get; set; } = null!; + public string TipoOperación { get; set; } = null!; + public string TipoOperacion { get; set; } = null!; + public string TAXID { get; set; } = null!; + public string Regimen { get; set; } = null!; + public string ReferenciaFechaApertura { get; set; } = null!; + public string Referencia { get; set; } = null!; + public string Proveedor { get; set; } = null!; + public string PROSEC { get; set; } = null!; + public string PedimentosPagados { get; set; } = null!; + public string PedimentoNumero { get; set; } = null!; + public string PedimentoFechaPago { get; set; } = null!; + public string Patente { get; set; } = null!; + public string PaisVendedor { get; set; } = null!; + public string PaisOrigen { get; set; } = null!; + public string Observaciones { get; set; } = null!; + public string NumPedimento { get; set; } = null!; + public string NumAduana { get; set; } = null!; + public string MonedaFactura { get; set; } = null!; + public string Mercancía { get; set; } = null!; + public string Incoterm { get; set; } = null!; + public string Guías { get; set; } = null!; + public string FueConsolidado { get; set; } = null!; + public string Fraccion { get; set; } = null!; + public string FormaPagoREC { get; set; } = null!; + public string FormaPagoPREVA { get; set; } = null!; + public string FormaPagoOTROS { get; set; } = null!; + public string FormaPagoMULT { get; set; } = null!; + public string FormaPagoIVA { get; set; } = null!; + public string FormaPagoISAN { get; set; } = null!; + public string FormaPagoIGI { get; set; } = null!; + public string FormaPagoIEPS { get; set; } = null!; + public string FormaPagoDTI { get; set; } = null!; + public string FormaPagoDTA { get; set; } = null!; + public string FormaPagoCNT { get; set; } = null!; + public string FormaPagoCC { get; set; } = null!; + public string FirmaElectronica { get; set; } = null!; + public string FechaPago { get; set; } = null!; + public string FechaFactura { get; set; } = null!; + public string FechaEntrada { get; set; } = null!; + public string FechadeRevalidacion { get; set; } = null!; + public string FechadePrevio { get; set; } = null!; + public string FechadeDesaduanamiento { get; set; } = null!; + public string Factura { get; set; } = null!; + public string Ejecutivo { get; set; } = null!; + public string DireccionProveedor { get; set; } = null!; + public string Descripcion { get; set; } = null!; + public string Contenedores { get; set; } = null!; + public string Cliente { get; set; } = null!; + public string Clave { get; set; } = null!; + public string bPagado { get; set; } = null!; + public string Agente { get; set; } = null!; + public string R1PedimentoOriginal { get; set; } = null!; + public string R1ClaveAnterior { get; set; } = null!; + public int ReferenciaIdSucPAtAduana { get; set; } + public int ReferenciaIdImpExp { get; set; } + public int ReferenciaIdCliente { get; set; } + public int ID { get; set; } + public double ValorDolares { get; set; } + public double ValorComercialUSDFactura { get; set; } + public double ValorComercialUSD { get; set; } + public double ValorComercialMNFactura { get; set; } + public double ValorAduana { get; set; } + public double TotalBultos { get; set; } + public double TipodeCambio { get; set; } + public double Seguros { get; set; } + public double REC { get; set; } + public double PREVA { get; set; } + public double PrecioUnitario { get; set; } + public double PesoBruto { get; set; } + public double PagoennoEfectivo { get; set; } + public double PagoenEfectivo { get; set; } + public double Otros { get; set; } + public double MULT { get; set; } + public double IVA { get; set; } + public double ISAN { get; set; } + public double IncrementablesUSD { get; set; } + public double IncrementablesMN { get; set; } + public double Impuestos { get; set; } + public double IMPOTROS { get; set; } + public double IGI { get; set; } + public double IEPS { get; set; } + public double Fletes { get; set; } + public double FactorMonedaExtranjera { get; set; } + public double Embalajes { get; set; } + public double DTI { get; set; } + public double DTA { get; set; } + public double CNT { get; set; } + public double CC { get; set; } + public double CantidadUMT { get; set; } + public double CantidadUMC { get; set; } + public double CantidaddeUnidades { get; set; } + public double Anticipo { get; set; } + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptOperacionesRemesaMap.cs b/GEMCO.Backend/Models/Reportes/RptOperacionesRemesaMap.cs new file mode 100644 index 0000000..0caed93 --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptOperacionesRemesaMap.cs @@ -0,0 +1,43 @@ +using Dapper.FluentMap.Mapping; + +namespace GEMCO.Backend.Models.Reportes +{ + public class RptOperacionesRemesaMap : EntityMap + { + public RptOperacionesRemesaMap() + { + Map(p => p.NumAduana).ToColumn("Num. Aduana"); + Map(p => p.NumPedimento).ToColumn("Num.Pedimento"); + Map(p => p.TipoOperacion).ToColumn("TipoOperación"); + Map(p => p.R1ClaveAnterior).ToColumn("(R1)Clave Anterior"); + Map(p => p.R1PedimentoOriginal).ToColumn("(R1)Pedimento Original"); + Map(p => p.TipodeCambio).ToColumn("Tipo de Cambio"); + Map(p => p.ValorComercialUSD).ToColumn("Valor Comercial USD"); + Map(p => p.ValorAduana).ToColumn("Valor Aduana"); + Map(p => p.ValorComercialUSDFactura).ToColumn("Valor Comercial USD(Factura)"); + Map(p => p.ValorComercialMNFactura).ToColumn("Valor Comercial MN Factura"); + Map(p => p.IncrementablesMN).ToColumn("Incrementables MN"); + Map(p => p.IncrementablesUSD).ToColumn("Incrementables USD"); + Map(p => p.FirmaElectronica).ToColumn("Firma Electrónica"); + Map(p => p.FechaEntrada).ToColumn("Fecha Entrada"); + Map(p => p.FechaPago).ToColumn("Fecha Pago"); + Map(p => p.PagoenEfectivo).ToColumn("Pago en Efectivo"); + Map(p => p.PagoennoEfectivo).ToColumn("Pago en no efectivo"); + Map(p => p.DireccionProveedor).ToColumn("Direccion Proveedor"); + Map(p => p.CantidaddeUnidades).ToColumn("Cantidad de Unidades"); + Map(p => p.TAXID).ToColumn("TAX ID"); + Map(p => p.FechadeRevalidacion).ToColumn("Fecha de Revalicación"); + Map(p => p.FechadePrevio).ToColumn("Fecha de previo"); + Map(p => p.FechadeDesaduanamiento).ToColumn("Fecha de Desaduanamiento"); + Map(p => p.FactorMonedaExtranjera).ToColumn("Factor Moneda Extranjera"); + Map(p => p.ReferenciaIdSucPAtAduana).ToColumn("Referencia IdSucPAtAduana"); + Map(p => p.ReferenciaIdCliente).ToColumn("Referencia IdCliente"); + Map(p => p.ReferenciaIdImpExp).ToColumn("Referencia IdImpExp"); + Map(p => p.PedimentoNumero).ToColumn("Pedimento Numero"); + Map(p => p.PedimentosPagados).ToColumn("Pedimento Pagados"); + Map(p => p.ReferenciaFechaApertura).ToColumn("Referencia Fecha Apertura"); + Map(p => p.PedimentoFechaPago).ToColumn("Pedimento Fecha Pago"); + + } + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptPedimentosConsolidados.cs b/GEMCO.Backend/Models/Reportes/RptPedimentosConsolidados.cs new file mode 100644 index 0000000..81248d0 --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptPedimentosConsolidados.cs @@ -0,0 +1,40 @@ +namespace GEMCO.Backend.Models.Reportes +{ + public class RptPedimentosConsolidados { + public string NumeroDeReferencia { get; set; } = null!; + public string Pedimento { get; set; } = null!; + public string FechaPago { get; set; } = null!; + public double ValorDolares { get; set; } + public double ValorAduana { get; set; } + public string ClaveCliente { get; set; } = null!; + public string Cliente { get; set; } = null!; + public string ClaveImex { get; set; } = null!; + public string IMEX { get; set; } = null!; + public string NumeroDeRemesa { get; set; } = null!; + public string FechaDeRemesa { get; set; } = null!; + public string FechaDeEntrada { get; set; } = null!; + public double PesoBruto { get; set; } + public int CantBL { get; set; } + public double PesoGuias { get; set; } + public double PesoMercancia { get; set; } + public int TotalBruto { get; set; } + public string EDocument { get; set; } = null!; + public string Observacion { get; set; } = null!; + public string NumeroDeFactura { get; set; } = null!; + public double ValorDolaresFact { get; set; } + public double CantidadFactura { get; set; } + public string Patente { get; set; } = null!; + public string Operacion { get; set; } = null!; + public string TipoDeTransporte { get; set; } = null!; + public string FechaDeCruce { get; set; } = null!; + public string AduanaSeccion { get; set; } = null!; + public string FechaPrimeraSeleccion { get; set; } = null!; + public string PrimeraSeleccion { get; set; } = null!; + public string DescripcionDeMercancia { get; set; } = null!; + public string DescripcionDelContenedor { get; set; } = null!; + public string TipoContenedor { get; set; } = null!; + public string NumeroDelContenedor { get; set; } = null!; + public string UMT { get; set; } = null!; + public double CantidadTarifa { get; set; } + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptPedimentosConsolidadosMap.cs b/GEMCO.Backend/Models/Reportes/RptPedimentosConsolidadosMap.cs new file mode 100644 index 0000000..af1129d --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptPedimentosConsolidadosMap.cs @@ -0,0 +1,40 @@ +using Dapper.FluentMap.Mapping; + +namespace GEMCO.Backend.Models.Reportes +{ + public class RptPedimentosConsolidadosMap : EntityMap + { + + public RptPedimentosConsolidadosMap() + { + Map(p => p.AduanaSeccion).ToColumn("ADUANA SECCION"); + Map(p => p.CantBL).ToColumn("CANT. BL"); + Map(p => p.CantidadFactura).ToColumn("CANTIDAD FACTURA"); + Map(p => p.CantidadTarifa).ToColumn("CANTIDAD TARIFA"); + Map(p => p.ClaveCliente).ToColumn("CLAVE CLIENTE"); + Map(p => p.ClaveImex).ToColumn("CLAVE IMEX"); + Map(p => p.PesoMercancia).ToColumn("PESO MERCANCIA"); + Map(p => p.DescripcionDeMercancia).ToColumn("DESCRIPCION DE MERCANCIA"); + Map(p => p.DescripcionDelContenedor).ToColumn("DESCRIPCION DEL CONTENEDOR"); + Map(p => p.FechaDeCruce).ToColumn("FECHA DE CRUCE"); + Map(p => p.FechaDeEntrada).ToColumn("FECHA DE ENTRADA"); + Map(p => p.FechaDeRemesa).ToColumn("FECHA DE REMESA"); + Map(p => p.FechaPago).ToColumn("FECHA PAGO"); + Map(p => p.FechaPrimeraSeleccion).ToColumn("FECHA PRIMERA SELECCION"); + Map(p => p.PrimeraSeleccion).ToColumn("PRIMERA SELECCION"); + Map(p => p.NumeroDeFactura).ToColumn("NUMERO DE FACTURA"); + Map(p => p.NumeroDeReferencia).ToColumn("NUMERO DE REFERENCIA"); + Map(p => p.NumeroDeRemesa).ToColumn("NUMERO DE REMESA"); + Map(p => p.NumeroDelContenedor).ToColumn("NUMERO DEL CONTENEDOR"); + Map(p => p.PesoBruto).ToColumn("PESO BRUTO"); + Map(p => p.PesoGuias).ToColumn("PESO GUIAS"); + Map(p => p.TipoContenedor).ToColumn("TIPO CONTENEDOR"); + Map(p => p.TipoDeTransporte).ToColumn("TIPO DE TRANSPORTE"); + Map(p => p.TotalBruto).ToColumn("TOTAL BULTO"); + Map(p => p.Observacion).ToColumn("OBSERVACIÓN"); + Map(p => p.ValorAduana).ToColumn("VALOR ADUANA"); + Map(p => p.ValorDolares).ToColumn("VALOR DOLARES"); + Map(p => p.ValorDolaresFact).ToColumn("VALOR DOLARES FACT."); + } + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptPedimentosPagados.cs b/GEMCO.Backend/Models/Reportes/RptPedimentosPagados.cs new file mode 100644 index 0000000..f909c8b --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptPedimentosPagados.cs @@ -0,0 +1,54 @@ +namespace GEMCO.Backend.Models.Reportes +{ + public class RptPedimentosPagados + { + public string Referencia { get; set; } = null!; + public string PedimentoLargo { get; set; } = null!; + public string AduanaSeccionEntrada { get; set; } = null!; + public string AduanaSeccionDespacho { get; set; } = null!; + public string ClavePedimento { get; set; } = null!; + public string Regimen { get; set; } = null!; + public string TipoOperacionDesc { get; set; } = null!; + public string FechaEntradaPresentacion { get; set; } = null!; + public string FechadePago { get; set; } = null!; + public double PesoBruto { get; set; } + public double TipodeCambiodePedimento { get; set; } + public string ValorFacturaME { get; set; } = null!; + public string ValorFacturaDolares { get; set; } = null!; + public double ValorFacturaMonedaNacional { get; set; } + public double ValorAduana { get; set; } + public double Embalajes { get; set; } + public double Fletes { get; set; } + public double Seguros { get; set; } + public double Otros { get; set; } + public double Decrementables { get; set; } + public double FletesFactura { get; set; } + public double SegurosFactura { get; set; } + public double EmbalajesFactura { get; set; } + public double OtrosFactura { get; set; } + public double ImporteDTAFP1 { get; set; } + public double ImporteDTAFP2 { get; set; } + public double ImporteADV1 { get; set; } + public double ADVFP1 { get; set; } + public double ImporteADV2 { get; set; } + public double ADVFP2 { get; set; } + public double ImporteIVA1 { get; set; } + public double IVAFP1 { get; set; } + public double ImporteIVA2 { get; set; } + public double IVAFP2 { get; set; } + public double ImporteCC { get; set; } + public double ImportePRV { get; set; } + public double IVAPRV { get; set; } + public double TotalPagado { get; set; } + public string FechaPrimeraSeleccion { get; set; } = null!; + public string PrimeraSeleccion { get; set; } = null!; + public string Contenedores { get; set; } = null!; + public string TipoContenedor { get; set; } = null!; + public string Facturas { get; set; } = null!; + public string Pedidos { get; set; } = null!; + public string NumIntegracionDODA { get; set; } = null!; + public string NumTransaccionDODA { get; set; } = null!; + public string LineaCaptura { get; set; } = null!; + public string CovesFactura { get; set; } = null!; + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosAEO.cs b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosAEO.cs new file mode 100644 index 0000000..f538fb6 --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosAEO.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Models.Reportes +{ + public class RptPedimentosPagadosAEO + { + public string Referencia { set; get; } = null!; + public int Aduana { get; set; } = 0; + public int Patente { get; set; } = 0; + public int Pedimento { get; set; } = 0; + public string FechaPago { set; get; } = null!; + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosFacturasCruzadas.cs b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosFacturasCruzadas.cs new file mode 100644 index 0000000..7e3cfc2 --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosFacturasCruzadas.cs @@ -0,0 +1,42 @@ +namespace GEMCO.Backend.Models.Reportes +{ + public class RptPedimentosPagadosFacturasCruzadas + { + public string Referencia { get; set; } = null!; + public string Pedimento { get; set; } = null!; + public string Clave { get; set; } = null!; + public string FechaFirmaBanco { get; set; } = null!; + public double TipoCambio { get; set; } + public double PesoBruto { get; set; } + public string PaisVendedor { get; set; } = null!; + public string PaisOrigen { get; set; } = null!; + public int NumFacturas { get; set; } + public string? Factura { get; set; } + public double ValorFactura { get; set; } + public int Fraccion { get; set; } + public string Descripcion { get; set; } = null!; + public int nClave { get; set; } + public double CantFacturas {get; set;} + public int ValorAduana { get; set;} + public int Incrementables { get; set; } + public int AdValorem { get; set; } + public int DTA { get; set; } + public int IVA { get; set; } + public double Efectivo { get; set; } + public double Total { get; set; } + public int Destino { get; set; } + public string Cruce { get; set; } = null !; + public string Remite { get; set; } = null!; + public string Caja { get; set; } = null!; + public double ValorComercial { get; set; } + public string Incoterm { get; set; } = null!; + + + + + + + + + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosFacturasCruzadasMap.cs b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosFacturasCruzadasMap.cs new file mode 100644 index 0000000..8aea661 --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosFacturasCruzadasMap.cs @@ -0,0 +1,47 @@ +using Dapper.FluentMap.Mapping; + +namespace GEMCO.Backend.Models.Reportes +{ + public class RptPedimentosPagadosFacturasCruzadasMap : EntityMap + { + public RptPedimentosPagadosFacturasCruzadasMap() + { + Map(p => p.Referencia).ToColumn("Referencia"); + Map(p => p.Pedimento).ToColumn("Pedimento"); + Map(p => p.Clave).ToColumn("Clave"); + Map(p => p.FechaFirmaBanco).ToColumn("FechaFirmaBanco"); + Map(p => p.TipoCambio).ToColumn("TipoCambio"); + Map(p => p.PesoBruto).ToColumn("PesoBruto"); + Map(p => p.PaisVendedor).ToColumn("PaisVendedor"); + Map(p => p.PaisOrigen).ToColumn("PaisOrigen"); + Map(p => p.NumFacturas).ToColumn("NumFacturas"); + Map(p => p.Factura).ToColumn("Factura"); + Map(p => p.ValorFactura).ToColumn("ValorFactura"); + Map(p => p.Fraccion).ToColumn("Fraccion"); + Map(p => p.Descripcion).ToColumn("Descripcion"); + Map(p => p.nClave).ToColumn("nClave"); + Map(p => p.CantFacturas).ToColumn("CantFacturas"); + Map(p => p.ValorAduana).ToColumn("ValorAduana"); + Map(p => p.Incrementables).ToColumn("Incrementables"); + Map(p => p.AdValorem).ToColumn("Advalorem"); + Map(p => p.DTA).ToColumn("DTA"); + Map(p => p.IVA).ToColumn("IVA"); + Map(p => p.Efectivo).ToColumn("Efectivo"); + Map(p => p.Total).ToColumn("Total"); + Map(p => p.Destino).ToColumn("Destino"); + Map(p => p.Cruce).ToColumn("Cruce"); + Map(p => p.Remite).ToColumn("Remite"); + Map(p => p.Caja).ToColumn("Caja"); + Map(p => p.ValorComercial).ToColumn("ValorComercial"); + Map(p => p.Incoterm).ToColumn("Incoterm"); + + + + } + + + + } + + +} diff --git a/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosImpuestos.cs b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosImpuestos.cs new file mode 100644 index 0000000..48f979e --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosImpuestos.cs @@ -0,0 +1,34 @@ +namespace GEMCO.Backend.Models.Reportes +{ + public class RptPedimentosPagadosImpuestos + { + public string Referencia { get; set; } = null!; + public string Pedimento { get; set; } = null!; + public string AduanaSeccionEntrada { get; set; } = null!; + public string AduanaSeccionDespacho { get; set; } = null!; + public string ClavePedimento { get; set; } = null!; + public string Regimen { get; set; } = null!; + public string FechadePago { get; set; } = null!; + public double TipodeCambiodePedimento { get; set; } + public string ValorFacturaME { get; set; } = null!; + public string ValorFacturaDolares { get; set; } = null!; + public double ValorFacturaMonedaNacional { get; set; } + public double ValorAduana { get; set; } + public double Embalajes { get; set; } + public double Fletes { get; set; } + public double Seguros { get; set; } + public double Otros { get; set; } + public double ImporteDTAFP1 { get; set; } + public double ImporteDTAFP2 { get; set; } + public double ImporteIGI { get; set; } + public double ImporteIVA { get; set; } + public double ImporteCC { get; set; } + public double ImportePRV { get; set; } + public double IVAPRV { get; set; } + public double TotalPagado { get; set; } + public double TotalFPEfectivo { get; set; } + public double TotalFPOtros { get; set; } + public string LineaCaptura { get; set; } = null!; + + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosImpuestosMap.cs b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosImpuestosMap.cs new file mode 100644 index 0000000..a93ba31 --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosImpuestosMap.cs @@ -0,0 +1,28 @@ +using Dapper.FluentMap.Mapping; + +namespace GEMCO.Backend.Models.Reportes +{ + public class RptPedimentosPagadosImpuestosMap : EntityMap + { + public RptPedimentosPagadosImpuestosMap() + { + Map(p => p.AduanaSeccionEntrada).ToColumn("Aduana/Sección Entrada"); + Map(p => p.AduanaSeccionDespacho).ToColumn("Aduana/Sección Despacho"); + Map(p => p.ClavePedimento).ToColumn("Clave Pedimento"); + Map(p => p.Regimen).ToColumn("Régimen"); + Map(p => p.FechadePago).ToColumn(" Fecha de Pago"); + Map(p => p.TipodeCambiodePedimento).ToColumn("Tipo de Cambio de Pedimento"); + Map(p => p.ValorFacturaME).ToColumn("Valor Factura ME"); + Map(p => p.ValorFacturaDolares).ToColumn("Valor Factura Dólares"); + Map(p => p.ValorFacturaMonedaNacional).ToColumn("Valor Factura Moneda Nacional"); + Map(p => p.ValorAduana).ToColumn("Valor Aduana"); + Map(p => p.ImporteDTAFP1).ToColumn("Importe DTA FP1"); + Map(p => p.ImporteDTAFP2).ToColumn("Importe DTA FP2"); + Map(p => p.ImporteCC).ToColumn("Importe CC"); + Map(p => p.IVAPRV).ToColumn("IVA PRV"); + Map(p => p.TotalPagado).ToColumn("Total Pagado"); + Map(p => p.TotalFPEfectivo).ToColumn("Total FP Efectivo"); + Map(p => p.TotalFPOtros).ToColumn("Total FP Otros"); + } + } +} diff --git a/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosMap.cs b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosMap.cs new file mode 100644 index 0000000..6d37774 --- /dev/null +++ b/GEMCO.Backend/Models/Reportes/RptPedimentosPagadosMap.cs @@ -0,0 +1,43 @@ +using Dapper.FluentMap.Mapping; + +namespace GEMCO.Backend.Models.Reportes +{ + public class RptPedimentosPagadosMap : EntityMap + { + public RptPedimentosPagadosMap() + { + Map(p => p.AduanaSeccionEntrada).ToColumn("Aduana/Sección Entrada"); + Map(p => p.AduanaSeccionDespacho).ToColumn("Aduana/Sección Despacho"); + Map(p => p.ClavePedimento).ToColumn("Clave Pedimento"); + Map(p => p.Regimen).ToColumn("Régimen"); + Map(p => p.TipoOperacionDesc).ToColumn("Tipo Operación Desc"); + Map(p => p.FechaEntradaPresentacion).ToColumn("Fecha Entrada/Presentación"); + Map(p => p.FechadePago).ToColumn(" Fecha de Pago"); + Map(p => p.PesoBruto).ToColumn("Peso Bruto"); + Map(p => p.TipodeCambiodePedimento).ToColumn("Tipo de Cambio de Pedimento"); + Map(p => p.ValorFacturaME).ToColumn("Valor Factura ME"); + Map(p => p.ValorFacturaDolares).ToColumn("Valor Factura Dólares"); + Map(p => p.ValorFacturaMonedaNacional).ToColumn("Valor Factura Moneda Nacional"); + Map(p => p.ValorAduana).ToColumn("Valor Aduana"); + Map(p => p.FletesFactura).ToColumn("Fletes Factura"); + Map(p => p.SegurosFactura).ToColumn("Seguros Factura"); + Map(p => p.EmbalajesFactura).ToColumn("Embalajes Factura"); + Map(p => p.OtrosFactura).ToColumn("Otros Factura"); + Map(p => p.ImporteDTAFP1).ToColumn("Importe DTA FP1"); + Map(p => p.ImporteDTAFP2).ToColumn("Importe DTA FP2"); + Map(p => p.ImporteADV1).ToColumn("Importe ADV 1"); + Map(p => p.ADVFP1).ToColumn("ADV FP1"); + Map(p => p.ImporteADV2).ToColumn("Importe ADV 2"); + Map(p => p.ADVFP2).ToColumn("ADV FP2"); + Map(p => p.ImporteIVA1).ToColumn("Importe IVA 1"); + Map(p => p.IVAFP1).ToColumn("IVA FP1"); + Map(p => p.ImporteIVA2).ToColumn("Importe IVA 2"); + Map(p => p.IVAFP2).ToColumn("IVA FP2"); + Map(p => p.ImporteCC).ToColumn("Importe CC"); + Map(p => p.IVAPRV).ToColumn("IVA PRV"); + Map(p => p.TotalPagado).ToColumn("Total Pagado"); + Map(p => p.FechaPrimeraSeleccion).ToColumn("Fecha primera Selección"); + Map(p => p.PrimeraSeleccion).ToColumn("Primera Selección"); + } + } +} diff --git a/GEMCO.Backend/Models/Transportistas.cs b/GEMCO.Backend/Models/Transportistas.cs new file mode 100644 index 0000000..3540500 --- /dev/null +++ b/GEMCO.Backend/Models/Transportistas.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Models +{ + public class Transportistas + { + public int id { get; set; } + public int IdUsuario { get; set; } + public string sClave { set; get; } = null!; + public string sRazonSocial { set; get; } = null!; + public byte Asignado { set; get; } = 0; + } +} diff --git a/GEMCO.Backend/Models/Usuarios.cs b/GEMCO.Backend/Models/Usuarios.cs new file mode 100644 index 0000000..7b9b1dd --- /dev/null +++ b/GEMCO.Backend/Models/Usuarios.cs @@ -0,0 +1,37 @@ +namespace GEMCO.Backend.Models +{ + public class Usuarios + { + public int Id { get; set; } = 0; + public string Usuario { get; set; } = null!; + public string Nombre { get; set; } = null!; + public string Contrasena { get; set; } = null!; + public string Correo { get; set; } = null!; + public byte TipoUsuario { get; set; } = 2; + public byte Activo { get; set; } = 1; + public string FechaAlta { get; set; } = null!; + public int UsuarioAlta { get; set; } = 0!; + public string FechaModifico { get; set; } = null!; + public int UsuarioModifico { get; set; } = 0!; + public string FechaElimino { get; set; } = null!; + public int UsuarioElimino { get; set; } = 0!; + public string MotivoElimino { get; set; } = null!; + public int IdModulo { get; set; } = 0!; + public int Dept { get; set; } = 0!; + public string? sDept { get; set; } = null!; + public int Tmercancia { get; set; } = 0!; + public string FechaUltimaVisita { get; set; } = null!; + public int Visitas { get; set; } = 0!; + public int Internos { get; set; } = 0!; + public int PermisoEspecial { get; set; } = 0!; + public int EstadoConfiguracion { get; set; } = 0!; + public string FechaValidacionConf { get; set; } = null!; + public string RealizoEncuesta { get; set; } = null!; + public int EncuestaActiva { get; set; } = 0!; + public string FechaLimiteEncuesta { get; set; } = null!; + public string CodigoAccesoM { get; set; } = null!; + public string TokenAccesoM { set; get; } = null!; + public string DeviceToken { get; set; } = null!; + public int IdPerfil { get; set; } = 0!; + } +} diff --git a/GEMCO.Backend/Models/Utils/FileListChecker.cs b/GEMCO.Backend/Models/Utils/FileListChecker.cs new file mode 100644 index 0000000..0234a15 --- /dev/null +++ b/GEMCO.Backend/Models/Utils/FileListChecker.cs @@ -0,0 +1,8 @@ +namespace GEMCO.Backend.Models.Utils +{ + public class FileListChecker + { + public string fileName { get; set; } = null!; + public Boolean onDisk { get; set; } = false!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Utils/FileManager.cs b/GEMCO.Backend/Models/Utils/FileManager.cs new file mode 100644 index 0000000..a6645e1 --- /dev/null +++ b/GEMCO.Backend/Models/Utils/FileManager.cs @@ -0,0 +1,14 @@ +namespace GEMCO.Backend.Models.Utils +{ + public class FileManager + { + public long id { get; set; } = 0!; + public int IdUsuario { get; set; } = 0!; + public int Proceso { get; set; } = 0!; + public string NombreArchivo { get; set; } = null!; + public string FechaRegistro { get; set; } = null!; + public string Tags { get; set; } = null!; + public long Size { get; set; } = 0!; + public byte Activo { get; set; } = 0!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Utils/FilePaths4Process.cs b/GEMCO.Backend/Models/Utils/FilePaths4Process.cs new file mode 100644 index 0000000..22fccc4 --- /dev/null +++ b/GEMCO.Backend/Models/Utils/FilePaths4Process.cs @@ -0,0 +1,7 @@ +namespace GEMCO.Backend.Models.Utils +{ + public class FilePaths4Process + { + public string Path { set; get; } = string.Empty; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesCatalogo.cs b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesCatalogo.cs new file mode 100644 index 0000000..7b47090 --- /dev/null +++ b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesCatalogo.cs @@ -0,0 +1,9 @@ +namespace GEMCO.Backend.Models.Utils.Notificaciones +{ + public class INotificacionesCatalogo + { + public int id { get; set; } = 0; + public string Concepto { get; set; } = null!; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesContactos.cs b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesContactos.cs new file mode 100644 index 0000000..96190e2 --- /dev/null +++ b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesContactos.cs @@ -0,0 +1,13 @@ +namespace GEMCO.Backend.Models.Utils.Notificaciones +{ + public class INotificacionesContactos + { + public int id { get; set; } = 0; + public string Nombre { get; set; } = null!; + public string Puesto { get; set; } = null!; + public string Pais { get; set; } = null!; + public string Celular { get; set; } = null!; + public string Empresa { get; set; } = null!; + public byte Activo { get; set; } = 1; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesContactosGrupos.cs b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesContactosGrupos.cs new file mode 100644 index 0000000..676a711 --- /dev/null +++ b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesContactosGrupos.cs @@ -0,0 +1,11 @@ + +namespace GEMCO.Backend.Models.Utils.Notificaciones +{ + public class INotificacionesContactosGrupos + { + public int id { get; set; } = 0; + public int IdContacto { get; set; } = 0; + public int IdGrupo { get; set; } = 0; + public byte? Accion { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesGrupos.cs b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesGrupos.cs new file mode 100644 index 0000000..040f654 --- /dev/null +++ b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesGrupos.cs @@ -0,0 +1,11 @@ +using DocumentFormat.OpenXml.Packaging; + +namespace GEMCO.Backend.Models.Utils.Notificaciones +{ + public class INotificacionesGrupos + { + public int id { get; set; } = 0; + public string Grupo { get; set; } = null!; + public byte? Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesLog.cs b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesLog.cs new file mode 100644 index 0000000..a2753a6 --- /dev/null +++ b/GEMCO.Backend/Models/Utils/Notificaciones/INotificacionesLog.cs @@ -0,0 +1,11 @@ +namespace GEMCO.Backend.Models.Utils.Notificaciones +{ + public class INotificacionesLog + { + public int id { get; set; } = 0; + public string Envia { get; set; } = null!; + public string Concepto { get; set; } = null!; + public string Contactos { get; set; } = null!; + public string FHCreacion { get; set; } = null!; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Program.cs b/GEMCO.Backend/Program.cs new file mode 100644 index 0000000..38b60ab --- /dev/null +++ b/GEMCO.Backend/Program.cs @@ -0,0 +1,190 @@ +using System.Runtime; +// GEMCO Backend +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.Contracts.Catalogos; +using GEMCO.Backend.Contracts.Clientes.CasaCuervo; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Contracts.Contabilidad.Corresponsalias; +using GEMCO.Backend.Contracts.Dashboard; +using GEMCO.Backend.Contracts.Utils; +using GEMCO.Backend.Contracts.AnexoFacturacion; +using GEMCO.Backend.Contracts.Utils.Notificaciones; + + +using GEMCO.Backend.Repository; +using GEMCO.Backend.Repository.Catalogos; +using GEMCO.Backend.Repository.Clientes.CasaCuervo; +using GEMCO.Backend.Repository.Corresponsalias; +using GEMCO.Backend.Repository.Contabilidad; +using GEMCO.Backend.Repository.Dashboard; +using GEMCO.Backend.Repository.Utils; +using GEMCO.Backend.Repository.AnexoFacturacion; + + +// Clientes Backend +using GEMCO.Backend.Clientes.ZincInternacional.Repository; +using GEMCO.Backend.Clientes.ZincInternacional.Contracts; +using GEMCO.Backend.Clientes.Heineken.Repository; +using GEMCO.Backend.Clientes.Heineken.Contracts; +using GEMCO.Backend.Clientes.Amazon.Repository; +using GEMCO.Backend.Clientes.Amazon.Contracts; + +//Services +using GEMCO.Backend.Services.PDFGenerator; +using GEMCO.Backend.Services.ValidaFraccion; + +////////////////////////////////////////////////////////////////////////////// +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.IdentityModel.Tokens; +using DinkToPdf; +using DinkToPdf.Contracts; +using System.Text; +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +builder.Services.AddSingleton(); +builder.Services.AddSingleton(typeof(IConverter), new SynchronizedConverter(new PdfTools())); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +// Corresponsalias +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +//Clientes +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +// Dashboards +builder.Services.AddScoped(); + +// Catalogos +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +//Utilerias +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +//Uso exclusivo para personal de GEMCO +builder.Services.AddScoped(); + + +builder.Services.AddControllers(); + +builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options => +{ + options.RequireHttpsMetadata = false; + options.SaveToken = true; + options.TokenValidationParameters = new TokenValidationParameters() + { + ValidateIssuer = true, + ValidateAudience = true, + ValidAudience = builder.Configuration["Jwt:Audience"], + ValidIssuer = builder.Configuration["Jwt:Issuer"], + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"])) + }; +}); +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(c => +{ + c.SwaggerDoc("v1", new OpenApiInfo + { + Title = "GEMCO Backend", + Version = "v1" + }); + c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() + { + Name = "Authorization", + Type = SecuritySchemeType.ApiKey, + Scheme = "Bearer", + BearerFormat = "JWT", + In = ParameterLocation.Header, + Description = "JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 1safsfsdfdfd\"", + }); + c.AddSecurityRequirement(new OpenApiSecurityRequirement { + { + new OpenApiSecurityScheme { + Reference = new OpenApiReference { + Type = ReferenceType.SecurityScheme, + Id = "Bearer" + } + }, + new string[] {} + } + }); +}); + +//services cors +builder.Services.AddCors(p => p.AddPolicy("corsapp", builder => +{ + if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development") + { + builder.WithOrigins("http://localhost:3000", + "http://localhost:5000", + "https://localhost:5001").AllowAnyMethod().AllowAnyHeader(); + } + else if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Staging") + { + builder.WithOrigins( + "http://www.gemcousa.solutions", + "https://www.gemcousa.solutions", + "http://gemcousa.solutions:443", + "https://gemcousa.solutions:443" + ).AllowAnyMethod().AllowAnyHeader(); + } + else if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Production") + { + builder.WithOrigins( + "http://www.gemcousa.mx", + "https://www.gemcousa.mx", + "http://www.gemcousa.mx:443", + "https://www.gemcousa.mx:443" + ).AllowAnyMethod().AllowAnyHeader(); + } + })); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); +app.UseAuthentication(); +app.UseCors("corsapp"); +app.UseAuthorization(); +app.MapControllers(); +app.Run(); diff --git a/GEMCO.Backend/Properties/launchSettings.json b/GEMCO.Backend/Properties/launchSettings.json new file mode 100644 index 0000000..365a52b --- /dev/null +++ b/GEMCO.Backend/Properties/launchSettings.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:29277", + "sslPort": 44343 + } + }, + "profiles": { + "GEMCO.Backend": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/GEMCO.Backend/Repository/AORepository.cs b/GEMCO.Backend/Repository/AORepository.cs new file mode 100644 index 0000000..31ded2e --- /dev/null +++ b/GEMCO.Backend/Repository/AORepository.cs @@ -0,0 +1,115 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO.ArchivoElectronico; +using GEMCO.Backend.DTO.Battery; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Reportes; +using System.Data; + +namespace GEMCO.Backend.Repository +{ + public class AERepository : IArchivoElectronico + { + private readonly DapperContext _context; + public AERepository(DapperContext context) { _context = context; } + + public async Task> GetAOCheckLists() + { + var query = "getAOCheckList"; + using (var connection = _context.CreateConnection()) + { + var entrada = await connection.QueryAsync(query, new { }, + commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + } + + public async Task> getArchivoOficial(DTOAEPeriodoSeleccion data) + { + var query = "getArchivoOficial"; + using (var connection = _context.CreateConnection()) + { + var entrada = await connection.QueryAsync(query, + new { @Anio = data.Anio, @Mes = data.Mes, @Cliente = data.NoCliente, @TipoOperacion = data.TipoOperacion }, + commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + } + + public async Task createLogFotosBodega(LogFotosBodega data) + { + var query = "addLogFotosBodega"; + var _arrNombreFoto = data.Nombre.Split('_'); + string tmpString = _arrNombreFoto[4]; + string Usuario = ""; + string Comentarios = null!; + if (tmpString.Contains('~')) + { + var arrTmp = tmpString.Split('~'); + Usuario = arrTmp.ElementAtOrDefault(0)!; + if (arrTmp.ElementAtOrDefault(1)?.ToString() != ".jpg") + Comentarios = arrTmp.ElementAtOrDefault(1)!; + Comentarios = Comentarios.Replace(".jpg", ""); + } + else + { + Usuario = _arrNombreFoto[4]; + Usuario = Usuario.Replace(".jpg", ""); + } + using (var connection = _context.CreateConnection()) + { + var entrada = await connection.QueryAsync(query, + new + { + @Nombre = data.Nombre, + @Proceso = _arrNombreFoto[0], + @Referencia = _arrNombreFoto[1], + @Fecha = _arrNombreFoto[2], + @Hora = _arrNombreFoto[3], + @Usuario = Usuario, + @Comentarios = Comentarios + }, + commandType: CommandType.StoredProcedure); + return entrada.ToList().FirstOrDefault()!; + } + } + + public async Task> getLogFotosBodega(DTOLogFotosBodega data) + { + var query = "getLogFotosBodega"; + using (var connection = _context.CreateConnection()) + { + var entrada = await connection.QueryAsync(query, + new + { + @Proceso = data.Proceso, + @Referencia = data.Referencia, + @Inicio = data.Inicio, + @Fin = data.Fin, + @Usuario = data.Usuario, + }, + commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + } + + public async Task> getRptPedimentoPagadosAEO(DTOAEPeriodo data) + { + var query = "getRptArchivoElectronicoOficial"; + using (var connection = _context.CreateConnection()) + { + var entrada = await connection.QueryAsync(query, + new + { + @Anio = data.Anio, + @Mes = data.Mes, + @NoCliente = data.NoCliente, + @TipoOperacion = data.TipoOperacion + }, + commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + } + } +} diff --git a/GEMCO.Backend/Repository/AnexoFacturacion/AnexoFacturacionRepository.cs b/GEMCO.Backend/Repository/AnexoFacturacion/AnexoFacturacionRepository.cs new file mode 100644 index 0000000..7d9f551 --- /dev/null +++ b/GEMCO.Backend/Repository/AnexoFacturacion/AnexoFacturacionRepository.cs @@ -0,0 +1,108 @@ +using System.Data; +using Dapper; +using DocumentFormat.OpenXml.Spreadsheet; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.AnexoFacturacion; +using GEMCO.Backend.DTO.AnexoFacturacion; +using GEMCO.Backend.Models.AnexoFacturacion; +using Irony.Parsing; + +namespace GEMCO.Backend.Repository.AnexoFacturacion +{ + public class AnexoFacturacionRepository : IAnexoFacturacionRepository + { + private readonly DapperContext _context; + public AnexoFacturacionRepository(DapperContext context) { _context = context; } + + public async Task> GetRptAnexoFacturacionMission(DTOAnexoFacturacionMission data) + { + var query = "[Reportes.Web.Anexo.Facturacion.Mission.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @data.sReferencia, + @data.CordCruce, + @data.CordFlete, + @data.nServicio, + @nCnt = data.nContraprestacion, + @data.nHonorario + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task> GetRptConsolidadosSinCerrar() + { + var query = "[Reportes.Web.Gemco.ConsolidadosSinCerrar.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task> GetRptAnexoFacturacionAlen(DTOAnexoFacturacionAlen data) + { + /* var query = "[Reportes.Web.Anexo.Facturacion.Alen.Get]"; + using var connection = _context.CreateConnection(); + var resultado = await connection.QueryAsync(query, new + { + @data.sReferencia, + @data.nHonorarios, + @data.nValidacion, + @data.nPrevalidacion, + @data.nCoordinacion + }, + commandType: CommandType.StoredProcedure).ConfigureAwait(false); */ + const string sql = "[Reportes.Web.Anexo.Facturacion.Alen.Get]"; + + var param = new + { + @data.sReferencia, + @data.nHonorarios, + @data.nValidacion, + @data.nPrevalidacion, + @data.nCoordinacion + }; + using var conn = _context.CreateConnection(); + + var resultado = (await conn.QueryAsync( + sql, + param, + commandType: CommandType.StoredProcedure) + .ConfigureAwait(false)) + .AsList(); + double TotalHonorarios = 0, TotalValidacion = 0, TotalManiobras = 0, TotalPrevalidacion = 0, TotalCoordinacion = 0, TotalIVA = 0, TotalMN = 0; + foreach (var row in resultado) + { + row.IVA = (row.Honorarios + row.Maniobras + row.Validacion + row.Coordinacion) * .08; + row.TotalMN = (row.Honorarios + row.Maniobras + row.Validacion + row.Coordinacion) + row.IVA; + TotalHonorarios += row.Honorarios; + TotalValidacion += row.Validacion; + TotalPrevalidacion += row.Prevalidacion; + TotalCoordinacion += row.Coordinacion; + TotalManiobras += TotalManiobras; + TotalIVA += row.IVA; + TotalMN += row.TotalMN; + } + RptAnexoFacturacionAlen Totales = new RptAnexoFacturacionAlen(); + Totales.sReferencia = "Total"; + Totales.Remesa = resultado.Count() + 1; + Totales.Entrega = ""; + Totales.sNumero = ""; + Totales.sEDocument = ""; + Totales.sPedimento = ""; + Totales.Cruce = ""; + Totales.Semaforo = ""; + Totales.FechaCtaCorresponsal = ""; + Totales.Honorarios = TotalHonorarios; + Totales.Validacion = TotalValidacion; + Totales.Prevalidacion = TotalPrevalidacion; + Totales.Coordinacion = TotalCoordinacion; + Totales.Maniobras = TotalManiobras; + Totales.IVA = TotalIVA; + Totales.TotalMN = TotalMN; + resultado.Add(Totales); + return resultado; + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/BatteryRepository.cs b/GEMCO.Backend/Repository/BatteryRepository.cs new file mode 100644 index 0000000..476c9e3 --- /dev/null +++ b/GEMCO.Backend/Repository/BatteryRepository.cs @@ -0,0 +1,80 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Models; +using GEMCO.Backend.Contracts; +using System.Data; +using GEMCO.Backend.DTO.Battery; +using GEMCO.Backend.DTO.Reportes; + +namespace GEMCO.Backend.Repository +{ + public class BatteryRepository : IBatteryRepository + { + private readonly DapperContext _context; + public BatteryRepository(DapperContext context) { _context = context; } + + public async Task updatePallete2Warehouse(DTOBatteryEntry data) + { + var query = "Battery.updatePallete2WareHouse"; + using (var connection = _context.CreateConnection()) + { + var entrada = await connection.QueryAsync(query, + new + { + @ID = data.ID, + @Trailer = data.Trailer, + @IDPallet = data.IDPallet, + @Weight = data.Weight, + @ControlNumber = data.ControlNumber, + @CarrierName = data.CarrierName, + @DriverName = data.DriverName, + @Forklift = data.Forklift, + @Issues = data.Issues, + @InTime = data.InTime, + @OutTime = data.OutTime, + @InOut = data.InOut + }, + commandType: CommandType.StoredProcedure); + return entrada.ToList().First(); + } + } + + public async Task> getBatteryInfo(DTOBatteryInfo data) + { + var query = "Battery.getBatteryInfo"; + using (var connection = _context.CreateConnection()) + { + var entrada = await connection.QueryAsync(query, + new { @id = data.ID, @InOut = data.InOut }, + commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + } + + public async Task> getReportFromWarehouse(DTOReporte data) + { + var query = "Battery.getReportFromWareHouse"; + using (var connection = _context.CreateConnection()) + { + var entrada = await connection.QueryAsync(query, + new { @Inicio = data.Inicio, @Fin = data.Fin, @InOut = data.TipoOperacion }, + commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + } + + public async Task getPalletWeight(string data) + { + var query = "Battery.getPalletWeight"; + using (var connection = _context.CreateConnection()) + { + var entrada = await connection.QueryAsync(query, + new { @IDPallet = data }, + commandType: CommandType.StoredProcedure); + if (entrada == null) return 0; + return entrada.ToList().First(); + } + } + + } +} diff --git a/GEMCO.Backend/Repository/Catalogos/CorresponsalesRepository.cs b/GEMCO.Backend/Repository/Catalogos/CorresponsalesRepository.cs new file mode 100644 index 0000000..83076a4 --- /dev/null +++ b/GEMCO.Backend/Repository/Catalogos/CorresponsalesRepository.cs @@ -0,0 +1,59 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Models.Catalogos; +using GEMCO.Backend.Contracts.Catalogos; +using System.Data; + +namespace GEMCO.Backend.Repository.Catalogos +{ + public class CorresponsalesRepository : ICorresponsalesRepository + { + + private readonly DapperContext _context; + public CorresponsalesRepository(DapperContext context) { _context = context; } + public async Task Append(CatCorresponsales data) + { + var query = "[Catalogo.Corresponsales.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @Nombre = data.Nombre, + @Patente = data.Patente, + @Aduana = data.Aduana, + @Correos = data.Correos + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task> GetAll() + { + var query = "[Catalogo.Corresponsales.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { @Mode = 1 }, + commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task> GetAllFormated() + { + var query = "[Catalogo.Corresponsales.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { @Mode = 2 }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task Delete(int id) + { + var query = "[Catalogo.Corresponsales.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { @id }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Catalogos/ProveedoresRepository.cs b/GEMCO.Backend/Repository/Catalogos/ProveedoresRepository.cs new file mode 100644 index 0000000..b42cf7b --- /dev/null +++ b/GEMCO.Backend/Repository/Catalogos/ProveedoresRepository.cs @@ -0,0 +1,54 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Models; +using GEMCO.Backend.Contracts.Catalogos; +using System.Data; + +namespace GEMCO.Backend.Repository.Catalogos +{ + public class ProveedoresRepository : IProveedoresRepository + { + private readonly DapperContext _context; + + public ProveedoresRepository(DapperContext context) { _context = context; } + + public async Task> GetAll(int Clasificacion) + { + var query = "[Catalogo.Proveedores.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Clasificacion = Clasificacion + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task Append(CatProveedores data) + { + var query = "[Catalogo.Proveedores.Append]"; + /* int Mode; + if (data.id == 0) Mode = 1; // Es un insert + else Mode = 2; // Es un update */ + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + data.id, + data.Nombre, + data.Clasificacion + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task Delete(int id) + { + var query = "[Catalogo.Proveedores.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id, + }, + commandType: CommandType.StoredProcedure); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Catalogos/TabuladorDetalleRepository.cs b/GEMCO.Backend/Repository/Catalogos/TabuladorDetalleRepository.cs new file mode 100644 index 0000000..d1c75f8 --- /dev/null +++ b/GEMCO.Backend/Repository/Catalogos/TabuladorDetalleRepository.cs @@ -0,0 +1,78 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Models.Catalogos; +using GEMCO.Backend.DTO; +using GEMCO.Backend.Contracts.Catalogos; +using System.Data; +namespace GEMCO.Backend.Repository.Catalogos +{ + public class TabuladorDetalleRepository : ITabuladorDetalleRepository + { + private readonly DapperContext _context; + public TabuladorDetalleRepository(DapperContext context) { _context = context; } + + public async Task> Append(TabuladorDetalle data) + { + var query = "[Catalogo.Tabulador.Detalle.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + data.id, + data.IdTabulador, + data.IdConcepto, + data.Costo, + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task> GetDetailByIdTab(int id) + { + var query = "[Catalogo.Tabulador.Detalle.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = 0, + @IdTabulador = id + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task> GetAll(int id, int IdTabulador) + { + var query = "[Catalogo.Tabulador.Detalle.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + @IdTabulador = IdTabulador + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task Delete(int id) + { + var query = "[Catalogo.Tabulador.Detalle.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id, + }, + commandType: CommandType.StoredProcedure); + // return entrada.First(); + } + + public async Task> GetAllConcepts() + { + var query = "[Catalogo.Tabulador.Detalle.Conceptos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + } +} diff --git a/GEMCO.Backend/Repository/Catalogos/TabuladorRepository.cs b/GEMCO.Backend/Repository/Catalogos/TabuladorRepository.cs new file mode 100644 index 0000000..2181d8b --- /dev/null +++ b/GEMCO.Backend/Repository/Catalogos/TabuladorRepository.cs @@ -0,0 +1,55 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Models.Catalogos; +using GEMCO.Backend.Contracts.Catalogos; +using System.Data; + +namespace GEMCO.Backend.Repository.Catalogos +{ + public class TabuladorRepository : ITabuladorRepository + { + + private readonly DapperContext _context; + public TabuladorRepository(DapperContext context) { _context = context; } + + public async Task> GetAll(int id, int IdCliente) + { + var query = "[Catalogo.Tabulador.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + @IdCliente = IdCliente + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + + public async Task Append(Tabulador data) + { + var query = "[Catalogo.Tabulador.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + data.id, + data.Nombre, + data.IdCliente, + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task Delete(int id) + { + var query = "[Catalogo.Tabulador.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id, + }, + commandType: CommandType.StoredProcedure); + // return entrada.First(); + } + } +} diff --git a/GEMCO.Backend/Repository/Clientes/CasaCuervo/CasaCuervoRepository.cs b/GEMCO.Backend/Repository/Clientes/CasaCuervo/CasaCuervoRepository.cs new file mode 100644 index 0000000..6c16963 --- /dev/null +++ b/GEMCO.Backend/Repository/Clientes/CasaCuervo/CasaCuervoRepository.cs @@ -0,0 +1,160 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Clientes.CasaCuervo; +using GEMCO.Backend.Models.Clientes.CasaCuervo; +using GEMCO.Backend.DTO.Clientes.CasaCuervo; +using System.Data; + +namespace GEMCO.Backend.Repository.Clientes.CasaCuervo +{ + public class CasaCuervoRepository : ICasaCuervoRepository + { + private readonly DapperContext _context; + public CasaCuervoRepository(DapperContext context) { _context = context; } + public async Task Append(List data) + { + var query = "[Clientes.CasaCuervo.Pedidos.Append]"; + using var connection = _context.CreateConnection(); + foreach (var row in data) + { + var entrada = await connection.QueryAsync(query, new + { + @id = row.id, + @PO = row.PO, + @Aduana = row.Aduana, + @Destination = row.Destination, + @TruckNumber = row.TruckNumber, + @Forwarder = row.Forwarder, + @Carrier = row.Carrier, + @LoadDate = row.LoadDate, + @Prioridad = row.Prioridad, + @Estatus = row.Estatus, + @ComentarioGEMCO = row.ComentarioGEMCO, + @FechaCompromiso = row.FechaCompromiso, + @FechaCruce = row.FechaCruce, + @Activo = 1 + }, + commandType: CommandType.StoredProcedure); + } + return true; + } + + public async Task UpdateInfoFromCorresponsal(List data) + { + var query = "[Clientes.CasaCuervo.Corresponsal.Pedidos.Update]"; + using var connection = _context.CreateConnection(); + try + { + foreach (var row in data) + { + var entrada = await connection.QueryAsync(query, new + { + @Pedido = row.Pedido, + @Factura = row.Factura, + @UUID = row.UUID, + @Trafico = row.Trafico, + @Pedimento = row.Pedimento, + @Patente = row.Patente, + @Modulacion = row.Modulacion, + @FechaCompromiso = row.FechaCompromiso, + @Comentarios = row.Comentario + }, + commandType: CommandType.StoredProcedure); + } + } + catch (InvalidCastException e) + { + Console.Write(e.ToString()); + return false; + } + return true; + } + + public async Task> getAll(string Inicio, string Fin, string Aduana) + { + var query = "[Reportes.Web.Clientes.CasaCuervo.Pedidos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Inicio = Inicio, + @Fin = Fin, + @Aduana = Aduana + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task GetById(int Id) + { + var query = "[Reportes.Web.Clientes.CasaCuervo.Pedidos.GetById]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Id = Id, + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + /* public async Task Update(int id, string Campo, string Valor) + { + var query = "[Clientes.CasaCuervo.Pedidos.Update]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + @Campo = Campo, + @Valor = Valor + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } */ + + public async Task UpdateInfoFromWeb(DTO325UpdateFromWeb data) + { + var query = "[Clientes.CasaCuervo.Pedidos.UpdateFromWeb]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @ComentarioGEMCO = data.ComentarioGEMCO, + @FechaCruce = data.FechaCruce, + @FechaCompromiso = data.FechaCompromiso, + @Factura = data.Factura, + @MedidaCaja = data.MedidaCaja, + @Sello1 = data.Sello1, + @Sello2 = data.Sello2, + @UUID = data.UUID, + @Trafico = data.Trafico, + @Pedimento = data.Pedimento, + @Patente = data.Patente + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task> getAduanas(int Usuario, int TipoUsuario) + { + var query = "[Clientes.CasaCuervo.Pedidos.Aduana.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Usuario = Usuario, + @TipoUsuario = TipoUsuario + }, commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task> GetRptCOVE(string Inicio, string Fin) + { + var query = "[Reportes.Web.Clientes.CasaCuervo.COVE.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Inicio = Inicio, + @Fin = Fin + }, commandType: CommandType.StoredProcedure); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/ClientesRepository.cs b/GEMCO.Backend/Repository/ClientesRepository.cs new file mode 100644 index 0000000..d72b128 --- /dev/null +++ b/GEMCO.Backend/Repository/ClientesRepository.cs @@ -0,0 +1,81 @@ +using System.Data; +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO.Cliente; +using GEMCO.Backend.DTO.Usuario; +using GEMCO.Backend.Models; + +namespace GEMCO.Backend.Repository +{ + public class ClientesRepository : IClientesRepository + { + private readonly DapperContext _context; + public ClientesRepository(DapperContext context) { _context = context; } + + public async Task> getAllClientes(int id) + { + //var query = "SELECT sClave, CONCAT(sClave,' | ',sRazonSocial) as sRazonSocial FROM SIR.Admin.ADMINC_07_CLIENTES WHERE bStatus='1'"; + var query = "[Clientes.Get]"; + using (var connection = _context.CreateConnection()) + { + var clientes = await connection.QueryAsync(query, new { @IdUsuario = id }, commandType: CommandType.StoredProcedure); + return clientes.ToList(); + } + } + + public async Task> getClientesAsignados(int id) + { + var query = "[Clientes.Asignados.Get]"; + using (var connection = _context.CreateConnection()) + { + var clientes = await connection.QueryAsync(query, new { @IdUsuario = id }, commandType: CommandType.StoredProcedure); + return clientes.ToList(); + } + } + + public async Task GetCustomerName(int sClave) + { + string nombreCliente = ""; + IEnumerable clientes = await getAllClientes(0); + foreach (IClientes cliente in clientes) + { + if (cliente.sClave == sClave) nombreCliente = cliente.sRazonSocial; + } + if (nombreCliente.Length < 1) return ""; + nombreCliente = nombreCliente.Substring(0,nombreCliente.IndexOf("|")-1); + return nombreCliente; + } + + public async Task> addCliente(DTOClienteUsuario CU) + { + var query = "addCliente"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new { @sClave = CU.sClave, @IdUsuario = CU.IdUsuario, @agregar = CU.agregar }, commandType: CommandType.StoredProcedure); + return result; + } + } + + public async Task> asignaClienteProveedor(DTOClienteProveedor cp) + { + var query = "asignaClienteProveedor"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new { @IdUsuario = cp.IdUsuario, @sClaveCliente = cp.sClaveCliente, @sClave = cp.sClave, @asignado = cp.asignado }, commandType: CommandType.StoredProcedure); + return result; + } + } + + public async Task> asignaUsuarioTransportista(DTOUsuarioTransportista t) + { + var query = "asignaUsuarioTransportista"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new { @IdUsuario = t.IdUsuario, @sClave = t.sClave, @asignado = t.Asignado }, commandType: CommandType.StoredProcedure); + return result; + } + } + + } +} diff --git a/GEMCO.Backend/Repository/Contabilidad/ContabilidadCorresponsaliasRepository.cs b/GEMCO.Backend/Repository/Contabilidad/ContabilidadCorresponsaliasRepository.cs new file mode 100644 index 0000000..806133c --- /dev/null +++ b/GEMCO.Backend/Repository/Contabilidad/ContabilidadCorresponsaliasRepository.cs @@ -0,0 +1,46 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Contabilidad.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; +namespace GEMCO.Backend.Repository.Contabilidad +{ + public class ContabilidadCorresponsaliasRepository : IContabilidadCorresponsaliasRepository + { + + private readonly DapperContext _context; + public ContabilidadCorresponsaliasRepository(DapperContext context) { _context = context; } + + public async Task Append(CorresponsalTraficoContabilidad data) + { + var query = "[Contabilidad.Corresponsales.Trafico.Validacion.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @IdUsuario = data.IdUsuario, + @IdTrafico = data.IdTrafico, + @StatusProceso = data.StatusProceso, + @RazonRechazo = data.RazonRechazo, + @Tipo = data.Tipo + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new CorresponsalTraficoContabilidad { }); + } + + public async Task> Get(int IdTrafico, int tipo) + { + var query = "[Contabilidad.Corresponsales.Trafico.Validacion.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdTrafico = IdTrafico, + @tipo = tipo + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + + } +} diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasAnticiposRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasAnticiposRepository.cs new file mode 100644 index 0000000..f8f2a85 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasAnticiposRepository.cs @@ -0,0 +1,79 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasAnticiposRepository : ICorresponsaliasAnticiposRepository + { + private readonly DapperContext _context; + public CorresponsaliasAnticiposRepository(DapperContext context) { _context = context; } + + public async Task Append(CorresponsalAnticipos data) + { + var query = "[Corresponsales.Anticipos.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @IdTrafico = data.IdTrafico, + @Anticipo = data.Anticipo, + @Moneda = data.Moneda, + @Concepto = data.Concepto, + @Solicita = data.Solicita, + @Autoriza = data.Autoriza, + @Financiado = data.Financiado, + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task> getAll(int IdTrafico) + { + var query = "[Corresponsales.Anticipos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdTrafico = IdTrafico, + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task Delete(int id) + { + var query = "[Corresponsales.Anticipos.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + id, + }, + commandType: CommandType.StoredProcedure); + } + + public async Task GetTotalAnticiposPendientes() + { + var query = "[Dashboard.Corresponsales.Anticipos.Pendientes.Autorizar]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new DashboardTotal { Total = 0 }); + } + + public async Task Autoriza(DTOCorresponsalesAnticipo data) + { + var query = "[Corresponsales.Anticipos.Autoriza]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @IdUsuario = data.IdUsuario + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatAduanasRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatAduanasRepository.cs new file mode 100644 index 0000000..8f4ea56 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatAduanasRepository.cs @@ -0,0 +1,25 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasCatAduanasRepository : ICorresponsaliasCatAduanasRepository + { + private readonly DapperContext _context; + public CorresponsaliasCatAduanasRepository(DapperContext context) { _context = context; } + public async Task> getAll(int IdCliente) + { + var query = "[Corresponsales.CatAduanas.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdCliente = IdCliente, + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatDestinosRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatDestinosRepository.cs new file mode 100644 index 0000000..f75b2c7 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatDestinosRepository.cs @@ -0,0 +1,25 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasCatDestinosRepository : ICorresponsaliasCatDestinosRepository + { + private readonly DapperContext _context; + public CorresponsaliasCatDestinosRepository(DapperContext context) { _context = context; } + public async Task> getAll(int IdCliente) + { + var query = "[Corresponsales.CatDestinos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdCliente = IdCliente, + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatMedioEmbarquesRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatMedioEmbarquesRepository.cs new file mode 100644 index 0000000..e5b6019 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatMedioEmbarquesRepository.cs @@ -0,0 +1,24 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasCatMedioEmbarquesRepository : ICorresponsaliasCatMediosEmbarqueRepository + { + private readonly DapperContext _context; + public CorresponsaliasCatMedioEmbarquesRepository(DapperContext context) { _context = context; } + public async Task> getAll() + { + var query = "[Corresponsales.CatMediosEmbarque.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatTipoEmbarqueRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatTipoEmbarqueRepository.cs new file mode 100644 index 0000000..2e46992 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatTipoEmbarqueRepository.cs @@ -0,0 +1,24 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasCatTipoEmbarqueRepository : ICorresponsaliasCatTipoEmbarqueRepository + { + private readonly DapperContext _context; + public CorresponsaliasCatTipoEmbarqueRepository(DapperContext context) { _context = context; } + public async Task> getAll() + { + var query = "[Corresponsales.CatTiposEmbarque.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatTiposDocumentosRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatTiposDocumentosRepository.cs new file mode 100644 index 0000000..9bf9483 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCatTiposDocumentosRepository.cs @@ -0,0 +1,30 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasCatTiposDocumentosRepository : ICorresponsaliasCatTiposDocumentosRepository + { + + private readonly DapperContext _context; + //public ClientesRepository(DapperContext context) { _context = context; } + public CorresponsaliasCatTiposDocumentosRepository(DapperContext context) { _context = context; } + public async Task> getAll(int Cliente, int Clasificacion) + { + var query = "[Corresponsales.CatTiposDocumentos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Cliente = Cliente, + @Clasificacion = Clasificacion + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasContenedoresRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasContenedoresRepository.cs new file mode 100644 index 0000000..7af3b5d --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasContenedoresRepository.cs @@ -0,0 +1,67 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasContenedoresRepository : ICorresponsaliasContenedoresRepository + { + + private readonly DapperContext _context; + public CorresponsaliasContenedoresRepository(DapperContext context) { _context = context; } + + public async Task> GetAll(int IdTrafico) + { + var query = "[Corresponsales.Contenedores.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdTrafico = IdTrafico, + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task Append(CorresponsalesContenedores data) + { + var query = "[Corresponsales.Contenedores.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + data.id, + data.IdTrafico, + data.Contenedor, + data.FSemaforo, + data.Semaforo + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task Delete(int id) + { + var query = "[Corresponsales.Contenedores.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + id, + }, + commandType: CommandType.StoredProcedure); + } + public async Task Appendc1896(CorresponsalesContenedores data) + { + var query = "[Corresponsales.Contenedores.c1896.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + data.IdTrafico, + data.Contenedor, + data.FSemaforo, + data.Semaforo + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCuentaComplementariaRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCuentaComplementariaRepository.cs new file mode 100644 index 0000000..f661b90 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasCuentaComplementariaRepository.cs @@ -0,0 +1,114 @@ +using System.Runtime; +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.DTO.Corresponsales; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using GEMCO.Backend.Models; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + + public class CorresponsaliasCuentaComplementariaRepository : ICorresponsaliasCuentasComplementarias + { + private readonly DapperContext _context; + public CorresponsaliasCuentaComplementariaRepository(DapperContext context) + { _context = context; } + public async Task Append(DTOCorresponsalCuentaComplementaria data) + { + var query = "[Corresponsales.Trafico.Complementarias.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.Id, + @IdTrafico = data.IdTrafico, + @IdFile = data.IdFile + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task> Get(int IdTrafico) + { + var query = "[Corresponsales.Trafico.Complementarias.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdTrafico = IdTrafico + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task GetPendientes() + { + var query = "[Dashboard.Corresponsales.Cuentas.Complementarias.Pedientes]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task> GetEstatus() + { + var query = "[Catalogo.CuentaComplementaria.Estatus.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task AppendEstatus(CorresponsalCuentasComplementariasEstatus data) + { + var query = "[Catalogo.CuentaComplementaria.Estatus.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @Estatus = data.Estatus + + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task ChangeEstatus(DTOCorresponsalCuentaComplementariaEstatus data) + { + var query = "[Corresponsales.Trafico.Complementarias.ChangeStatus]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.Id, + @Estatus = data.Estatus + }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task> GetLogEstatus(int id) + { + var query = "[Corresponsales.Trafico.Complementarias.Historico.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + }, commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task ClearFile(int id, byte witchFile) + { + var query = "[Corresponsales.Trafico.Complementarias.ClearFile]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + @witchFile = witchFile + }, commandType: CommandType.StoredProcedure); + return true; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasFacturasRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasFacturasRepository.cs new file mode 100644 index 0000000..b7fca7e --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasFacturasRepository.cs @@ -0,0 +1,74 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasFacturasRepository : ICorresponsaliasFacturasRepository + { + + private readonly DapperContext _context; + public CorresponsaliasFacturasRepository(DapperContext context) { _context = context; } + + public async Task> GetAll(int IdTrafico) + { + var query = "[Corresponsales.Facturas.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + IdTrafico + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task Append(CorresponsalFacturas data) + { + var query = "[Corresponsales.Facturas.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + data.id, + data.Factura, + data.IdTrafico, + data.Proveedor, + data.ValorFacturaDls, + data.Pedido, + data.FechaFactura + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task Delete(int id) + { + var query = "[Corresponsales.Facturas.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + id, + }, + commandType: CommandType.StoredProcedure); + } + + public async Task Appendc1896(CorresponsalFacturas data, string UUID) + { + var query = "[Corresponsales.Facturas.c1896.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + data.id, + data.Factura, + data.IdTrafico, + data.Proveedor, + data.ValorFacturaDls, + data.Pedido, + data.FechaFactura, + UUID + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasFacturasTercerosRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasFacturasTercerosRepository.cs new file mode 100644 index 0000000..3c84eb6 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasFacturasTercerosRepository.cs @@ -0,0 +1,50 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasFacturasTercerosRepository : ICorresponsaliasFacturasTercerosRepository + { + private readonly DapperContext _context; + public CorresponsaliasFacturasTercerosRepository(DapperContext context) { _context = context; } + + public async Task> GetAll(int IdTrafico) + { + var query = "[Corresponsales.FacturasTerceros.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdTrafico = IdTrafico, + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task Append(CorresponsalFacturasTerceros data) + { + var query = "[Corresponsales.FacturasTerceros.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + data.id, + data.IdTrafico, + data.IdProveedor, + data.Factura + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task Delete(int id) + { + var query = "[Corresponsales.FacturasTerceros.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + }, + commandType: CommandType.StoredProcedure); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasGuiasRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasGuiasRepository.cs new file mode 100644 index 0000000..a4839b9 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasGuiasRepository.cs @@ -0,0 +1,50 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasGuiasRepository : ICorresponsaliasGuiasRepository + { + + private readonly DapperContext _context; + public CorresponsaliasGuiasRepository(DapperContext context) { _context = context; } + + public async Task> GetAll(int IdTrafico) + { + var query = "[Corresponsales.Trafico.Guia.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdTrafico = IdTrafico, + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task Append(CorresponsalesGuias data) + { + var query = "[Corresponsales.Trafico.Guia.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + data.id, + data.IdTrafico, + data.Guia, + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task Delete(int id) + { + var query = "[Corresponsales.Trafico.Guia.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + id, + }, + commandType: CommandType.StoredProcedure); + } + } +} diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasPedimentoPartidasRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasPedimentoPartidasRepository.cs new file mode 100644 index 0000000..c23b208 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasPedimentoPartidasRepository.cs @@ -0,0 +1,61 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasPedimentoPartidasRepository : ICorresponsaliasPedimentoPartidasRepository + { + private readonly DapperContext _context; + + public CorresponsaliasPedimentoPartidasRepository(DapperContext context) { _context = context; } + + public async Task Append(CorresponsalPedimentoPartida data) + { + var query = "[Corresponsales.Trafico.Pedimento.Partidas.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @IdTrafico = data.IdTrafico, + @Partida = data.Partida, + @IdFactura = data.IdFactura, + @Factura = data.Factura, + @Proveedor = data.Proveedor, + @DescripcionMaterial = data.DescripcionMaterial, + @FraccionArancelaria = data.FraccionArancelaria, + @ValorAduana = data.ValorAduana, + @DTA = data.DTA, + @IGI = data.IGI, + @IEPS = data.IEPS, + @Activo = data.Activo + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task> getAll(int IdTrafico) + { + var query = "[Corresponsales.Trafico.Pedimento.Partidas.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdTrafico = IdTrafico, + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task Delete(int id) + { + var query = "[Corresponsales.Trafico.Pedimento.Partidas.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + id, + }, + commandType: CommandType.StoredProcedure); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasPedimentoRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasPedimentoRepository.cs new file mode 100644 index 0000000..677670b --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasPedimentoRepository.cs @@ -0,0 +1,80 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.DTO.Corresponsales; +//using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Corresponsales; +using System.Data; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasPedimentoRepository : ICorresponsaliasPedimentoRepository + { + private readonly DapperContext _context; + public CorresponsaliasPedimentoRepository(DapperContext context) { _context = context; } + public async Task Append(CorresponsalPedimento data) + { + var query = "[Corresponsales.Trafico.Pedimento.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Activo = data.Activo, + @Aduana = data.Aduana, + @CostoDiario = data.CostoDiario, + @Descripcion = data.Descripcion, + @Destino = data.Destino, + @DiasCPPagado = data.DiasCPPagado, + @Embalaje = data.Embalaje, + @Estatus = data.Estatus, + @FAlmacenajeInicioGastos = data.FAlmacenajeInicioGastos, + @FDespacho = data.FDespacho, + @FechaETA = data.FechaETA, + @FEntrada = data.FEntrada, + @FHEntregaPlanta = data.FHEntregaPlanta, + @FHInstrucciones = data.FHInstrucciones, + @Fletes = data.Fletes, + @FRevalidacionGuia = data.FRevalidacionGuia, + @HAWB = data.HAWB, + @id = data.id, + @IdTrafico = data.IdTrafico, + @Incoterm = data.Incoterm, + @LineaTransportistaInternacional = data.LineaTransportistaInternacional, + @MAWB = data.MAWB, + @MontoUSA = data.MontoUSA, + @NoGuia = data.NoGuia, + @Observaciones = data.Observaciones, + @Origen = data.Origen, + @Otros = data.Otros, + @PaqueteriaTransportista = data.PaqueteriaTransportista, + @PesoNeto = data.PesoNeto, + @PreferenciaArancelaria = data.PreferenciaArancelaria, + @Seguros = data.Seguros, + @TipoEmbarque = data.TipoEmbarque, + @TotalPagar = data.TotalPagar + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task Get(int IdTrafico) + { + var query = "[Corresponsales.Trafico.Pedimento.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdTrafico = IdTrafico, + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + public async Task Delete(int id) + { + var query = "[Corresponsales.Trafico.Pedimento.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + id, + }, + commandType: CommandType.StoredProcedure); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasPrecuentaRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasPrecuentaRepository.cs new file mode 100644 index 0000000..6fb2f38 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasPrecuentaRepository.cs @@ -0,0 +1,54 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Models.Corresponsales; +using GEMCO.Backend.Contracts.Corresponsalias; +using System.Data; + + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasPrecuentaRepository : ICorresponsaliasPrecuentaRepository + { + + private readonly DapperContext _context; + public CorresponsaliasPrecuentaRepository(DapperContext context) { _context = context; } + + public async Task> GetAll(int id, int IdTrafico) + { + var query = "[Corresponsales.Precuenta.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + @IdTrafico = IdTrafico + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + + public async Task ChangeStatus(int id) + { + var query = "[Corresponsales.Precuenta.ChangeStatus]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id, + }, + commandType: CommandType.StoredProcedure); + } + + public async Task> Append(int IdTabulador, int IdTrafico) + { + var query = "[Corresponsales.Precuenta.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdTabulador = IdTabulador, + @IdTrafico = IdTrafico + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + } +} diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasTraficoRectificacionHistorico.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasTraficoRectificacionHistorico.cs new file mode 100644 index 0000000..0ad16f3 --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasTraficoRectificacionHistorico.cs @@ -0,0 +1,16 @@ +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasTraficoRectificacionHistorico + { + public int Id { get; set; } = 0; + public int Usuario { get; set; } = 0; + public int IdTrafico { get; set; } = 0; + public int Aduana { get; set; } = 0; + public int Patente { get; set; } = 0; + public int Pedimento { get; set; } = 0; + public string Clave { get; set; } = null!; + public string FechaPago { get; set; } = null!; + public string FHCreacion { get; set; } = null!; + public byte Activo { get; set; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasTraficosRepository.cs b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasTraficosRepository.cs new file mode 100644 index 0000000..02815dc --- /dev/null +++ b/GEMCO.Backend/Repository/Corresponsalias/CorresponsaliasTraficosRepository.cs @@ -0,0 +1,151 @@ +using System.IO; +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models; +using GEMCO.Backend.DTO.Corresponsales; +using System.Data; +using GEMCO.Backend.Models.Corresponsales; + +namespace GEMCO.Backend.Repository.Corresponsalias +{ + public class CorresponsaliasTraficosRepository : ICorresponsaliasTraficosRepository + { + private readonly DapperContext _context; + public CorresponsaliasTraficosRepository(DapperContext context) { _context = context; } + + public async Task GetAll(int Mode) + { + var query = "[Corresponsales.Trafico.GetAll]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Mode = Mode + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task Get(int id) + { + var query = "[Corresponsales.Trafico.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new ITrafico { }); + } + + public async Task> GetRectificaciones(int id) + { + var query = "[Corresponsales.Trafico.Rectificacion.GetAll]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task AddRectificacion(int id) + { + var query = "[Corresponsales.Trafico.Rectificacion.Add]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task Append(ITrafico data) + { + var query = "[Corresponsales.Trafico.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @IdUsuario = data.IdUsuario, + @IdCliente = data.IdCliente, + @TipoOperacion = data.TipoOperacion, + @OpEntrada = data.OpEntrada, + @OpSalida = data.OpSalida, + @IdCorresponsal = data.IdCorresponsal, + @Bultos = data.Bultos, + @Kilos = data.Kilos, + @Estatus = data.Estatus, + @Trafico = data.Trafico, + @Aduana = data.Aduana, + @Patente = data.Patente, + @Pedimento = data.Pedimento, + @Clave = data.Clave, + @FechaPago = data.FechaPago, + @TipoCambio = data.TipoCambio, + @ValorAduanaMN = data.ValorAduanaMN, + @TotalPagado = data.TotalPagado, + @ValorFacturaMN = data.ValorFacturaMN, + @CantidadFracciones = data.CantidadFracciones, + @Buque = data.Buque, + @ValorFacturaDls = data.ValorFacturaDls, + @DescripcionMercancia = data.DescripcionMercancia, + @Observaciones = data.Observaciones, + @FechaDesaduanamiento = data.FechaDesaduanamiento, + @SemaforoFiscal = data.SemaforoFiscal, + @NoCuenta = data.NoCuenta, + @FechaCuenta = data.FechaCuenta, + @TipoMercancia = data.TipoMercancia, + @Activo = true, + @IdTabulador = data.IdTabulador + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task> GetTraficoEstatus() + { + var query = "[Catalogo.Corresponsales.Trafico.Estatus.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task ValidaTraficoCompleto(DTOTraficoCompleto data) + { + var query = "[Corresponsales.Trafico.ValidateComplete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.Id, + @IdUsuario = data.IdUsuario, + @Estatus = data.Estatus, + @Comentarios = data.Comentarios + }, + commandType: CommandType.StoredProcedure); + return true; + } + + public async Task RectificacionHistoricoAppend(DTORectificacionHistorico data) + { + var query = "[Corresponsales.Trafico.Rectificacion.Historico.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @data.IdTrafico, @data.IdUsuario }, commandType: CommandType.StoredProcedure); + return true; + } + + public async Task RectificacionHistoricoGet(int IdTrafico) + { + var query = "[Corresponsales.Trafico.Rectificacion.Historico.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @IdTrafico }, commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new CorresponsaliasTraficoRectificacionHistorico { }); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Dashboard/DashboardCorresponsalesRepository.cs b/GEMCO.Backend/Repository/Dashboard/DashboardCorresponsalesRepository.cs new file mode 100644 index 0000000..31f2f73 --- /dev/null +++ b/GEMCO.Backend/Repository/Dashboard/DashboardCorresponsalesRepository.cs @@ -0,0 +1,33 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Dashboard; +using GEMCO.Backend.Models; +using System.Data; +namespace GEMCO.Backend.Repository.Dashboard +{ + public class DashboardCorresponsalesRepository : IDashboardCorresponsalesRepository + { + private readonly DapperContext _context; + public DashboardCorresponsalesRepository(DapperContext context) { _context = context; } + + public async Task> Get() + { + var query = "[Dashboard.Corresponsales.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, + commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task GetTipoCambio(string Fecha) + { + var query = "SELECT dbo.getTipoCambioSIR(@Fecha)"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Fecha = Fecha + }); + return entrada.First(); + } + } +} diff --git a/GEMCO.Backend/Repository/MenuRepository.cs b/GEMCO.Backend/Repository/MenuRepository.cs new file mode 100644 index 0000000..d3ee02e --- /dev/null +++ b/GEMCO.Backend/Repository/MenuRepository.cs @@ -0,0 +1,24 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.Models; +using System.Data; + +namespace GEMCO.Backend.Repository +{ + public class MenuRepository : IMenuRepository + { + + private readonly DapperContext _context; + public MenuRepository(DapperContext context) { _context = context; } + public async Task> GetItemsMenu(Usuarios user) + { + var query = "getMenu"; + using (var connection = _context.CreateConnection()) + { + var menu = await connection.QueryAsync(query, new { @id = user.Id }, commandType: CommandType.StoredProcedure); + return menu.ToList(); + } + } + } +} diff --git a/GEMCO.Backend/Repository/PerfilesRepository.cs b/GEMCO.Backend/Repository/PerfilesRepository.cs new file mode 100644 index 0000000..5abcb9b --- /dev/null +++ b/GEMCO.Backend/Repository/PerfilesRepository.cs @@ -0,0 +1,107 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO; +using GEMCO.Backend.DTO.Usuario; +using GEMCO.Backend.Models; +using System.Data; + +namespace GEMCO.Backend.Repository +{ + public class PerfilesRepository : IPerfilesRepository + { + private readonly DapperContext _context; + public PerfilesRepository(DapperContext context) { _context = context; } + public async Task> getPerfiles() + { + var query = "getPerfiles"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @id = 0 }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + public async Task PerfilGetById(int id) + { + var query = "[Perfil.GetById]"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @id }, commandType: CommandType.StoredProcedure); + return perfiles.FirstOrDefault(new Perfiles()); + } + } + public async Task> getMenu() + { + var query = "SELECT * FROM Menu"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query); + return result.ToList(); + } + } + public async Task> getPerfilMenuById(int id) + { + var query = "getPerfilMenuById"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @id = id }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + public async Task> getAllPerfilesMenu() + { + var query = "getAllPerfilesMenu"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + public async Task> createPerfil(DTOPerfilCreate data) + { + var query = "[Perfil.Append]"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @Perfil = data.Perfil, @IdPerfilClonado = data.IdPerfilClonado }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + public async Task> createItemMenu(Menu data) + { + var query = "createItemMenu"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new { @Descripcion = data.Descripcion, @PadreId = data.PadreId, @Posicion = data.Posicion, @URL = data.Url }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + public async Task> asignaItemMenuPerfil(DTOItemMenuPerfil data) + { + var query = "asignaItemMenuPerfil"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @IdPerfil = data.IdPerfil, @itemMenu = data.itemMenu, @asignado = data.asignado }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + public async Task> getAllTransportistas(int id) + { + //var query = "SELECT sClave, CONCAT(sClave,' | ',sRazonSocial) as sRazonSocial FROM SIR.Admin.ADMINC_42_PROVEEDORES ORDER BY 2"; + var query = "getAllTransportistas"; + using (var connection = _context.CreateConnection()) + { + var transportistas = await connection.QueryAsync(query, new { @IdUsuario = id }, commandType: CommandType.StoredProcedure); + return transportistas.ToList(); + } + } + public async Task> getAllProveedores(int id) + { + var query = "getAllProveedores"; + using (var connection = _context.CreateConnection()) + { + var proveedores = await connection.QueryAsync(query, new { @IdUsuario = id }, commandType: CommandType.StoredProcedure); + return proveedores.ToList(); + } + } + } +} diff --git a/GEMCO.Backend/Repository/ReportesRepository.cs b/GEMCO.Backend/Repository/ReportesRepository.cs new file mode 100644 index 0000000..5cabde5 --- /dev/null +++ b/GEMCO.Backend/Repository/ReportesRepository.cs @@ -0,0 +1,188 @@ +using Dapper; +using Dapper.FluentMap; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.Models.Reportes; +using System.Data; +using GEMCO.Backend.DTO.Reportes; +using GEMCO.Backend.DTO.Corresponsales; + + +namespace GEMCO.Backend.Repository +{ + public class ReportesRepository : IReportesRepository + { + private readonly DapperContext _context; + public ReportesRepository(DapperContext context) { _context = context; } + public async Task> getPedimentosPagados(DTOReporte data) + { + FluentMapper.EntityMaps.Clear(); + FluentMapper.Initialize(config => + { + config.AddMap(new RptPedimentosPagadosMap()); + }); + var query = "[Reportes.Web.Pedimentos.PagadosSIR.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Inicio = data.Inicio, @Fin = data.Fin, @TipoOperacion = data.TipoOperacion, @Cliente = data.NoCliente }, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + public async Task> getPedimentosPagadosImpuestos(DTOReporte data) + { + FluentMapper.EntityMaps.Clear(); + FluentMapper.Initialize(config => + { + config.AddMap(new RptPedimentosPagadosImpuestosMap()); + }); + var query = "[Reportes.Web.Pedimentos.Pagados.ImpuestosSIR.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Inicio = data.Inicio, @Fin = data.Fin, @TipoOperacion = data.TipoOperacion, @Cliente = data.NoCliente }, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + + + public async Task> getPedimentosPagadosFacturasCruzadas(DTOReporte data ) + { + FluentMapper.EntityMaps.Clear(); + FluentMapper.Initialize(config => + { + config.AddMap(new RptPedimentosPagadosFacturasCruzadasMap()); + }); + var query = "[Reportes.Web.Clientes.Facturas.Cruzadas]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Inicio = data.Inicio, @Fin = data.Fin, @TipoOperacion = data.TipoOperacion, @Cliente = data.NoCliente }, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + + } + + + + + + + public async Task> getDetalleAnexo24(DTOReporte data) + { + FluentMapper.EntityMaps.Clear(); + FluentMapper.Initialize(config => + { + config.AddMap(new RptDetalleAnexo24Map()); + }); + var query = "[Reportes.Web.Detalle.Anexo24SIR.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Inicio = data.Inicio, @Fin = data.Fin, @TipoOperacion = data.TipoOperacion, @Cliente = data.NoCliente }, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + public async Task> getOperacionesRemesa() + { + FluentMapper.EntityMaps.Clear(); + FluentMapper.Initialize(config => + { + config.AddMap(new RptOperacionesRemesaMap()); + }); + var query = "[Reportes.Web.Operaciones.Remesa.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + public async Task> getPedimentosConsolidados(DTOReporte data) + { + FluentMapper.EntityMaps.Clear(); + FluentMapper.Initialize(config => + { + config.AddMap(new RptPedimentosConsolidadosMap()); + }); + var query = "[Reportes.Web.Pedimentos.Consolidados.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Inicio = data.Inicio, @Fin = data.Fin, @TipoOperacion = data.TipoOperacion, @Cliente = data.NoCliente }, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + public async Task> GetRptCorresponsalesTraficos(DTOReporteCorresponsales data) + { + var query = "[Reportes.Web.Corresponsales.Traficos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @Inicio = data.Inicio, + @Fin = data.Fin, + @NoCliente = data.NoCliente, + @TipoOperacion = data.TipoOperacion, + @IdCorresponsal = data.IdCorresponsal, + @Proceso = data.Proceso, + @Modo = data.Modo + }, + commandType: CommandType.StoredProcedure); + return entrada; + } + public async Task> GetRptOperaciones(string Inicio, string Fin, int TipoOperacion, int NoCliente) + { + var query = "[Reportes.Web.Operaciones.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Inicio = Inicio, @Fin = Fin, @TipoOperacion = TipoOperacion, @Cliente = NoCliente }, + commandTimeout: 180, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + public async Task> GetRptOperacionesConsolidadas(string Inicio, string Fin, int TipoOperacion, int NoCliente) + { + var query = "[Reportes.Web.OperacionesConsolidadas.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Inicio = Inicio, @Fin = Fin, @TipoOperacion = TipoOperacion, @Cliente = NoCliente }, + commandTimeout: 180, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + public async Task GenerateControlDocumentosClientes() + { + var query = "[Reportes.Archivos.ControlDocumentosSIR.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { }, + commandTimeout: 3600, + commandType: CommandType.StoredProcedure); + return true; + } + } + public async Task> GetRptOperacionesDiarias(string Inicio, string Fin, int TipoOperacion, int Cliente) + { + var query = "[Reportes.Web.Operaciones.Diarias.Get]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Inicio, @Fin, @TipoOperacion, @Cliente }, + commandTimeout: 180, + commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/UsuariosRepository.cs b/GEMCO.Backend/Repository/UsuariosRepository.cs new file mode 100644 index 0000000..f701a8c --- /dev/null +++ b/GEMCO.Backend/Repository/UsuariosRepository.cs @@ -0,0 +1,194 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO; +using GEMCO.Backend.Models; +using System.Data; +using GEMCO.Backend.Crypto; +using GEMCO.Backend.DTO.Usuario; + + +namespace GEMCO.Backend.Repository +{ + public class UsuariosRepository : IUsuariosRepository + { + private readonly DapperContext _context; + private readonly IConfiguration _config; + public UsuariosRepository(DapperContext context, IConfiguration config) + { + _context = context; + _config = config; + } + + public async Task> getAllUsuariosShort() + { + var query = "SELECT id, Usuario FROM Usuario WHERE Usuario<>'Admin' ORDER BY Usuario"; + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query); + return usuarios.ToList(); + } + } + + public async Task> getAllUsuarios() + { + var query = "SELECT * FROM Usuario"; + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query); + return usuarios.ToList(); + } + } + + public async Task GetUsuarioById(int id) + { + var query = "SELECT * FROM Usuario WHERE id=@id"; + using (var connection = _context.CreateConnection()) + { + var usuario = await connection.QueryAsync(query, new { id = id }); + var usr = usuario.First(); + return usr; + } + } + + public async Task GetUsuario(DTOLogin user) + { + var query = "getUsuario"; + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query, + new + { + Usuario = user.Usuario, + Contrasena = user.Contrasena, + @HashContrasena = CryptDecrypt.Encrypt(user.Contrasena), + }, commandType: CommandType.StoredProcedure); + Usuarios userFound = usuarios.First(); + if (userFound == null) return null!; + var hashed = CryptDecrypt.Decrypt(userFound.Contrasena); + if (hashed != user.Contrasena) return null!; + return userFound; + } + } + + public async Task searchUsuario(string Usuario) + { + var query = "SELECT * FROM Usuario WHERE Usuario=@Usuario"; + using (var connection = _context.CreateConnection()) + { + var usuario = await connection.QueryAsync(query, new { @Usuario }); + return usuario.Count() > 0 ? usuario.First().Id : 0; + } + } + + public async Task CreatePIN(int Id) + { + var query = "[Usuario.PIN.Create]"; + using (var connection = _context.CreateConnection()) + { + var data = await connection.QueryAsync(query, new { @Id }, commandType: CommandType.StoredProcedure); + return data.First(); + } + } + public async Task ValidatePIN(DTOPINUsuario data) + { + var query = "[Usuario.PIN.Validate]"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new { @data.PIN, @data.Usuario }, commandType: CommandType.StoredProcedure); + if (result.Count() == 0) return false; + return true; + } + } + + public async Task resetPassword(DTOResetPassword user) + { + var query = "[Usuario.Password.Reset]"; + DTOLogin userFound = new DTOLogin(); + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query, new + { + @user.PIN, + @Contrasena = user.Contrasena, + @HashContrasena = CryptDecrypt.Encrypt(user.Contrasena), + }, commandType: CommandType.StoredProcedure); + if (usuarios.Count() > 0) userFound = usuarios.First(); + } + return userFound; + } + + public async Task createUsuario(Usuarios user) + { + var query = "[Usuario.Append]"; + using (var connection = _context.CreateConnection()) + { + if (user.Id == 0) user.Contrasena = _config.GetValue("DefaultUser:Password"); + var usuario = await connection.QueryAsync(query, new + { + @id = user.Id, + @Usuario = user.Usuario, + @Nombre = user.Nombre, + @Contrasena = CryptDecrypt.Encrypt(user.Contrasena), + @Correo = user.Correo, + @TipoUsuario = user.TipoUsuario, + @Activo = user.Activo, + @UsuarioAlta = user.UsuarioAlta, + @IdPerfil = user.IdPerfil + }, commandType: CommandType.StoredProcedure); + return usuario.First(); + } + } + + public async Task> clonarUsuario(DTOClonarUsuario user) + { + var query = "[Usuario.Clonar]"; + using (var connection = _context.CreateConnection()) + { + var usuario = await connection.QueryAsync(query, new + { + @IdUsuarioOrigen = user.IDUsuarioOrigen, + @IdUsuarioDestino = user.IdUsuarioDestino + }, commandType: CommandType.StoredProcedure); + return usuario.ToList(); + } + } + + // Catalogo de Roles + public async Task> CatalogoRolesGET() + { + var query = "[CatRoles.GET]"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new + { + }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + public async Task> RolesAsignadosGET(int id) + { + var query = "[RolesAsignados.GET]"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new + { + @id + }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + + public async Task> GETPerfilesParecidos(string Perfil) + { + var query = "[Usuarios.Perfiles.Parecidos.Get]"; + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query, new { @Perfil }, commandType: CommandType.StoredProcedure); + return usuarios.ToList(); + } + } + } +} diff --git a/GEMCO.Backend/Repository/Utils/FileManagerRepository.cs b/GEMCO.Backend/Repository/Utils/FileManagerRepository.cs new file mode 100644 index 0000000..a33c322 --- /dev/null +++ b/GEMCO.Backend/Repository/Utils/FileManagerRepository.cs @@ -0,0 +1,88 @@ +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Utils; +using GEMCO.Backend.Models.Utils; +using System.Data; + +namespace GEMCO.Backend.Repository.Utils +{ + public class FileManagerRepository : IFileManagerRepository + { + private readonly DapperContext _context; + public FileManagerRepository(DapperContext context) { _context = context; } + + public async Task FileManager(FileManager data) + { + var query = "[Utils.FileManager.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = 0, + @IdUsuario = data.IdUsuario, + @Proceso = data.Proceso, + @NombreArchivo = data.NombreArchivo, + @Tags = data.Tags, + @Size = data.Size + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task getFileByProcess(long id, int Proceso) + { + var query = "[Utils.FileManager.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = 0, + @Proceso = Proceso, + @NombreArchivo = "", + @Tags = id, + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new FileManager { id = id, Proceso = Proceso, NombreArchivo = "", Tags = "", Size = 0 }); + } + + public async Task getFileById(long id) + { + var query = "[Utils.FileManager.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + @Proceso = 0, + @NombreArchivo = "", + @Tags = id, + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new FileManager { id = id, Proceso = 0, NombreArchivo = "", Tags = "", Size = 0 }); + } + + public async Task> getAllFilesByProcess(long Tags, int Proceso) + { + var query = "[Utils.FileManager.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = 0, + @Proceso = Proceso, + @NombreArchivo = "", + @Tags = Tags, + }, + commandType: CommandType.StoredProcedure); + return entrada.ToList(); + } + + public async Task deleteFileByProcess(long id, int Proceso) + { + var query = "[Utils.FileManager.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + @Proceso = Proceso, + }, + commandType: CommandType.StoredProcedure); + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Repository/Utils/FilePaths4ProcessRepository.cs b/GEMCO.Backend/Repository/Utils/FilePaths4ProcessRepository.cs new file mode 100644 index 0000000..555dbc9 --- /dev/null +++ b/GEMCO.Backend/Repository/Utils/FilePaths4ProcessRepository.cs @@ -0,0 +1,27 @@ +using System.Numerics; +using Dapper; +using GEMCO.Backend.Contracts.Utils; +using GEMCO.Backend.Context; +using GEMCO.Backend.Models.Utils; +using System.Data; + +namespace GEMCO.Backend.Repository.Utils +{ + public class FilePaths4ProcessRepository : IFilePaths4ProcessRepository + { + private readonly DapperContext _context; + public FilePaths4ProcessRepository(DapperContext context) { _context = context; } + + public async Task getPaths4ProcessById(long id) + { + var query = "getPath4ProcessById"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = id, + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + } +} diff --git a/GEMCO.Backend/Repository/Utils/NotificacionesRepository.cs b/GEMCO.Backend/Repository/Utils/NotificacionesRepository.cs new file mode 100644 index 0000000..c6e4a02 --- /dev/null +++ b/GEMCO.Backend/Repository/Utils/NotificacionesRepository.cs @@ -0,0 +1,150 @@ +using System.Data; +using Dapper; +using GEMCO.Backend.Context; +using GEMCO.Backend.Contracts.Utils.Notificaciones; +using GEMCO.Backend.DTO.Utils; +using GEMCO.Backend.Models.Utils.Notificaciones; + +namespace GEMCO.Backend.Repository.Utils +{ + public class NotificacionesRepository : INotificacionesRepository + { + private readonly DapperContext _context; + + public NotificacionesRepository(DapperContext context) { _context = context; } + + public async Task ContactosAppend(INotificacionesContactos data) + { + var query = "[Notificaciones.Contactos.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @Nombre = data.Nombre, + @Puesto = data.Puesto, + @Pais = data.Pais, + @Celular = data.Celular, + @Empresa = data.Empresa, + @Activo = data.Activo + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task> ContactosGet() + { + var query = "[Notificaciones.Contactos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task GruposAppend(INotificacionesGrupos data) + { + var query = "[Notificaciones.Grupos.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @Grupo = data.Grupo, + @Activo = data.Activo + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task> GruposGet() + { + var query = "[Notificaciones.Grupos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task ContactosGruposAppend(INotificacionesContactosGrupos data) + { + var query = "[Notificaciones.ContactosGrupos.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @IdContacto = data.IdContacto, + @IdGrupo = data.IdGrupo, + @Accion = data.Accion + }, + commandType: CommandType.StoredProcedure); + return true; + } + + public async Task> ContactosdelGrupoGet(int IdGrupo) + { + var query = "[Notificaciones.Contactos.Grupos.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @IdGrupo }, commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task AccionContactosGrupos(DTONotificacionesContactoGrupo data) + { + foreach (int contacto in data.Contactos) + { + var query = "[Notificaciones.Contacto.Grupo.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdContacto = contacto, + @IdGrupo = data.IdGrupo, + @Accion = data.Accion + }, + commandType: CommandType.StoredProcedure); + } + return true; + } + + public async Task CatalogoAppend(INotificacionesCatalogo data) + { + var query = "[Notificaciones.Catalogo.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @Concepto = data.Concepto, + @Activo = data.Activo + }, + commandType: CommandType.StoredProcedure); + return entrada.First(); + } + + public async Task> CatalogoGet() + { + var query = "[Notificaciones.Catalogo.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return entrada; + } + + + public async Task NotificacionesLogAppend(int IdUsuario, string Concepto, int IdGrupo) + { + var query = "[Notificaciones.Log.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @IdUsuario, + @Concepto, + @IdGrupo + }, + commandType: CommandType.StoredProcedure); + return true; + } + + public async Task> NotificacionesLogGet() + { + var query = "[Notificaciones.Log.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return entrada; + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Services/ArchivoElectronicoOficial/SArchivoElectronicoOficial.cs b/GEMCO.Backend/Services/ArchivoElectronicoOficial/SArchivoElectronicoOficial.cs new file mode 100644 index 0000000..c8e9ada --- /dev/null +++ b/GEMCO.Backend/Services/ArchivoElectronicoOficial/SArchivoElectronicoOficial.cs @@ -0,0 +1,358 @@ +using GEMCO.Backend.Contracts; +using GEMCO.Backend.DTO; +using GEMCO.Backend.DTO.ArchivoElectronico; +using GEMCO.Backend.DTO.Reportes; +using GEMCO.Backend.Models; +using GEMCO.Backend.Models.Reportes; +using System.IO.Compression; + +namespace GEMCO.Backend.Services.ArchivoElectronicoOficial +{ + public class SArchivoElectronicoOficial + { + private readonly IClientesRepository _clientesRepo; + private readonly IReportesRepository _reportesRepo; + private readonly IArchivoElectronico _AERepo; + private readonly IConfiguration _config; + private readonly string DOCsPath; + + public SArchivoElectronicoOficial(IClientesRepository usuariosRepo, IReportesRepository reportesRepo, + IArchivoElectronico AERepo, IConfiguration config) + { + _clientesRepo = usuariosRepo; + _reportesRepo = reportesRepo; + _AERepo = AERepo; + _config = config; + DOCsPath = _config.GetValue("pathArchivoElectronico"); + } + + public async Task GetPDFContent(ArchivoElectronico data) + { + string nombreCliente = await GetNombreCliente(data.IdUsuario, data.NoCliente); + if (nombreCliente.Length > 0) + { + string Anio = "20" + data.Referencia.Substring(0, 2); + string physicalPath = _config.GetValue("pathArchivoElectronico") + nombreCliente + "\\" + Anio + "\\" + data.Referencia + "\\" + data.PedimentoLargo + "NORMAL_PAGADO.pdf"; + if (!System.IO.File.Exists(physicalPath)) physicalPath = "c:\\downs\\FNF\\FNF.pdf"; + return System.IO.File.ReadAllBytes(physicalPath); + } + else return null!; + } + + public List GetListaPedimentos(IEnumerable result, DTOPedimentosSeleccion data, string nombreCliente) + { + List listaPDFs = new List(); + foreach (RptPedimentosPagados row in result) + { + string Anio = "20" + row.Referencia.Substring(0, 2); + string Pedimento = row.PedimentoLargo.Substring(6).Replace(" ", row.AduanaSeccionDespacho); + bool PedInList = false; + if (data.Pedimentos!.Count() == 0) PedInList = true; + else + { + foreach (string Ped in data.Pedimentos!) + { + if (Ped.Substring(Ped.Length - 7).Equals(Pedimento.Substring(Pedimento.Length - 7))) + { + PedInList = true; + break; + } + } + } + if (PedInList) + { + listaPDFs.Add(_config.GetValue("pathArchivoElectronico") + nombreCliente + "\\" + Anio + "\\" + row.Referencia + "\\" + Pedimento + "NORMAL_PAGADO.pdf"); + } + } + return listaPDFs; + } + + public void CreateZipFileFromList(List listaPDFs, string zipPath) + { + using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)) + { + foreach (string pdf in listaPDFs) + { + string filename = pdf; + if (System.IO.File.Exists(filename)) + { + FileInfo file_info = new FileInfo(filename); + string entry_name = file_info.Name; + for (int version = 1; version < 10000; version++) + { + ZipArchiveEntry? old_entry = archive.GetEntry(entry_name); + if (old_entry == null) break; + entry_name = Path.GetFileNameWithoutExtension(file_info.Name) + $"({version})" + file_info.Extension; + } + archive.CreateEntryFromFile(filename, entry_name); + } + } + } + } + + public async Task GetSeveralPDFs(DTOPedimentosSeleccion data) + { + DTOReporte _data = new DTOReporte(); + _data.Inicio = data.Inicio; + _data.Fin = data.Fin; + _data.NoCliente = data.NoCliente; + _data.TipoOperacion = data.TipoOperacion; + IEnumerable ListaPedimentos = await _reportesRepo.getPedimentosPagados(_data); + string nombreCliente = await GetNombreCliente(data.IdUsuario, data.NoCliente); + DateTime now = DateTime.Now; + List listaPDFs = GetListaPedimentos(ListaPedimentos, data, nombreCliente); + string zipPath = _config.GetValue("pathTemp") + "todosPedimentos_" + now.ToString("dd_MM_yy_hh_mm_ss") + ".zip"; + CreateZipFileFromList(listaPDFs, zipPath); + return System.IO.File.ReadAllBytes(zipPath); + } + + private Boolean IsReferenceInList(DTOAEPeriodoSeleccion DTOData, string Referencia) + { + bool refInList = false; + if (DTOData.Referencias!.Count() == 0) refInList = true; + else + { + foreach (string Ref in DTOData.Referencias!) + { + if (Referencia.Equals(Ref)) + { + refInList = true; + break; + } + } + } + return refInList; + } + + private async Task> GetListOfFiles(ArchivoElectronico ArchivosDeReferencia) + { + var arrPedimentoLargo = ArchivosDeReferencia.PedimentoLargo.Split(' '); + string nombreCliente = await GetNombreCliente(ArchivosDeReferencia.IdUsuario, ArchivosDeReferencia.NoCliente); + string Patente = arrPedimentoLargo[2]; + string Pedimento = arrPedimentoLargo[3]; + List matches = await _AERepo.GetAOCheckLists(); + for (int i = 0; i < matches.Count; i++) + { + if (matches[i].Inicia.Contains("[Referencia]")) matches[i].Inicia = matches[i].Inicia.Replace("[Referencia]", ArchivosDeReferencia.Referencia); + if (matches[i].Inicia.Contains("[Patente]")) matches[i].Inicia = matches[i].Inicia.Replace("[Patente]", Patente); + if (matches[i].Inicia.Contains("[Pedimento]")) matches[i].Inicia = matches[i].Inicia.Replace("[Pedimento]", Pedimento); + } + List allFiles = new List(); + string Anio = "20" + ArchivosDeReferencia.Referencia.Substring(0, 2); + string targetFolder = DOCsPath + nombreCliente + "\\" + Anio + "\\" + ArchivosDeReferencia.Referencia; + string file = ""; + if (Directory.Exists(targetFolder)) + { + string[] fileEntries = Directory.GetFiles(targetFolder); + foreach (string fileName in fileEntries) + { + file = fileName.Replace(targetFolder + "\\", ""); + foreach (AOCheckList item in matches) + { + if (file.Contains(item.Inicia)) + { + if ((item.Extension.Length > 0) && (file.Contains(item.Extension))) + { + if (!allFiles.Contains(file)) + { + allFiles.Add(targetFolder + "\\" + file); + break; + } + } + else + { + if (!allFiles.Contains(file)) + { + allFiles.Add(targetFolder + "\\" + file); + break; + } + } + } + } + } + } + return allFiles; + } + + private void AgrupaArchivosPorReferenciaEnZip(ArchivoElectronico ArchivosDeReferencia, List listaArchivosParaZipear, string Start) + { + string zipPath = _config.GetValue("pathTemp") + ArchivosDeReferencia.Referencia + "_" + Start + ".zip"; + using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)) + { + foreach (string archivo in listaArchivosParaZipear) + { + string filename = archivo; + if (System.IO.File.Exists(filename)) + { + FileInfo file_info = new FileInfo(filename); + string entry_name = file_info.Name; + for (int version = 1; version < 10000; version++) + { + ZipArchiveEntry? old_entry = archive.GetEntry(entry_name); + if (old_entry == null) break; + entry_name = Path.GetFileNameWithoutExtension(file_info.Name) + $"({version})" + file_info.Extension; + } + archive.CreateEntryFromFile(filename, entry_name); + } + } + } + } + + private void AgrupaReferenciasPorPeriodo(List listaAEO, string zipPathReferencias, string Start) + { + for (int a = 0; a < listaAEO.Count; a++) + { + using (ZipArchive archive = ZipFile.Open(zipPathReferencias, ZipArchiveMode.Update)) + { + string filename = _config.GetValue("pathTemp") + listaAEO[a].Referencia + "_" + Start + ".zip"; + if (System.IO.File.Exists(filename)) + { + FileInfo file_info = new FileInfo(filename); + string entry_name = file_info.Name; + for (int version = 1; version < 10000; version++) + { + ZipArchiveEntry? old_entry = archive.GetEntry(entry_name); + if (old_entry == null) break; + entry_name = Path.GetFileNameWithoutExtension(file_info.Name) + $"({version})" + file_info.Extension; + } + archive.CreateEntryFromFile(filename, entry_name); + } + } + } + } + + public async Task GetReferenceFilesByPeriod(DTOAEPeriodoSeleccion data, string Start) + { + // Lista de referencias buscados por periodo: Año, Mes, Tipo Operacion, Cliente + List Referencias = await _AERepo.getArchivoOficial(data); + string nombreCliente = await GetNombreCliente(data.IdUsuario, data.NoCliente); + foreach (ArchivoElectronico itemRef in Referencias) + { + bool refInList = IsReferenceInList(data, itemRef.Referencia); + if (refInList) + { + List listaArchivosParaZipear = await GetListOfFiles(itemRef); + AgrupaArchivosPorReferenciaEnZip(itemRef, listaArchivosParaZipear, Start); + } + } + string zipReferencias = _config.GetValue("pathTemp") + nombreCliente + "_" + Start + ".zip"; + AgrupaReferenciasPorPeriodo(Referencias, zipReferencias, Start); + return System.IO.File.ReadAllBytes(zipReferencias); + } + + public async Task GetFilesByReference(ArchivoElectronicoSeleccion data, string Start) + { + var arrPedimentoLargo = data.PedimentoLargo.Split(' '); // now you have an array of 3 strings + string Patente = arrPedimentoLargo[2]; + string Pedimento = arrPedimentoLargo[3]; + string nombreCliente = await GetNombreCliente(data.IdUsuario, data.NoCliente); + string Anio = "20" + data.Referencia.Substring(0, 2); + string targetFolder = DOCsPath + nombreCliente + "\\" + Anio + "\\" + data.Referencia; + List MatchingFiles = await RegExpFilesInChecklist(data, Patente, Pedimento); + List SelectedFiles = GetSelectedFilelist(data, MatchingFiles, targetFolder); + List Filelist = new List(); + if (data.Archivos!.Count() == 0) + Filelist = SelectedFiles; + else + { + foreach (string selectedFileFromWeb in data.Archivos!) + { + foreach (string archivoLocal in SelectedFiles) + { + if (archivoLocal.Equals(targetFolder + "\\" + selectedFileFromWeb)) + { + Filelist.Add(archivoLocal); + } + } + } + } + string zipPath = _config.GetValue("pathTemp") + data.Referencia + "_" + Start + ".zip"; + ZipFilesByReference(zipPath, Filelist); + byte[] pdfBytes = System.IO.File.ReadAllBytes(zipPath); + return pdfBytes; + } + + private void ZipFilesByReference(string zipPath, List listaPDFs) + { + using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)) + { + foreach (string pdf in listaPDFs) + { + string filename = pdf; + if (System.IO.File.Exists(filename)) + { + FileInfo file_info = new FileInfo(filename); + string entry_name = file_info.Name; + for (int version = 1; version < 10000; version++) + { + ZipArchiveEntry? old_entry = archive.GetEntry(entry_name); + if (old_entry == null) break; + entry_name = Path.GetFileNameWithoutExtension(file_info.Name) + $"({version})" + file_info.Extension; + } + archive.CreateEntryFromFile(filename, entry_name); + } + } + } + } + + public List GetSelectedFilelist(ArchivoElectronicoSeleccion data, List matches, string targetFolder) + { + List allFiles = new List(); + string file = ""; + if (Directory.Exists(targetFolder)) + { + string[] fileEntries = Directory.GetFiles(targetFolder); + foreach (string fileName in fileEntries) + { + file = fileName; + foreach (AOCheckList item in matches) + { + if (file.Contains(item.Inicia)) + { + if ((item.Extension.Length > 0) && (file.Contains(item.Extension))) + { + if (!allFiles.Contains(file)) + { + allFiles.Add(file); + break; + } + } + else + { + if (!allFiles.Contains(file)) + { + allFiles.Add(file); + break; + } + } + } + } + } + } + return allFiles; + } + + public async Task> RegExpFilesInChecklist(ArchivoElectronicoSeleccion data, string Patente, string Pedimento) + { + List matchingFiles = await _AERepo.GetAOCheckLists(); + for (int i = 0; i < matchingFiles.Count; i++) + { + if (matchingFiles[i].Inicia.Contains("[Referencia]")) matchingFiles[i].Inicia = matchingFiles[i].Inicia.Replace("[Referencia]", data.Referencia); + if (matchingFiles[i].Inicia.Contains("[Patente]")) matchingFiles[i].Inicia = matchingFiles[i].Inicia.Replace("[Patente]", Patente); + if (matchingFiles[i].Inicia.Contains("[Pedimento]")) matchingFiles[i].Inicia = matchingFiles[i].Inicia.Replace("[Pedimento]", Pedimento); + } + return matchingFiles; + } + + + // Busca si un cliente esta asignado a un usuario + public async Task GetNombreCliente(int IdUsuario, int NoCliente) + { + string nombreCliente = ""; + IEnumerable clientes = await _clientesRepo.getAllClientes(IdUsuario); + foreach (IClientes cliente in clientes) { if (cliente.sClave == NoCliente) nombreCliente = cliente.sRazonSocial; } + nombreCliente = nombreCliente.Substring(0, nombreCliente.IndexOf("|") - 1); + return nombreCliente; + } + } +} diff --git a/GEMCO.Backend/Services/C1896/SrvUploadTemplete.cs b/GEMCO.Backend/Services/C1896/SrvUploadTemplete.cs new file mode 100644 index 0000000..55ff9f9 --- /dev/null +++ b/GEMCO.Backend/Services/C1896/SrvUploadTemplete.cs @@ -0,0 +1,171 @@ +using System.Data; +using GEMCO.Backend.Contracts.Corresponsalias; +using GEMCO.Backend.Models.Corresponsales; +using System.Text.RegularExpressions; + +namespace GEMCO.Backend.Services.C1896 +{ + public class SrvUploadTemplete + { + private readonly ICorresponsaliasTraficosRepository _RepoTrafico; + private readonly ICorresponsaliasFacturasRepository _RepoFacturas; + private readonly ICorresponsaliasContenedoresRepository _RepoContenedores; + private readonly IConfiguration _config; + + public SrvUploadTemplete(ICorresponsaliasTraficosRepository RepoTrafico, ICorresponsaliasFacturasRepository RepoFacturas, ICorresponsaliasContenedoresRepository RepoContenedores, IConfiguration config) + { + _config = config; + _RepoTrafico = RepoTrafico; + _RepoFacturas = RepoFacturas; + _RepoContenedores = RepoContenedores; + } + + public async Task> AutoInsertFromTemplete(string filePath, int id) + { + List arrDataFromFile = ReadDataFromFile(filePath, id); + var RegistroComplementado = await ComplementaData(arrDataFromFile, id); + var Duplicidad = ExisteDuplicidad(arrDataFromFile); + if (!Duplicidad) + { + var resultadoTrafico = await _RepoTrafico.Append(RegistroComplementado); // Update information on the Traffic based on the file data + var resultadoFacturas = await AgregaFacturas(arrDataFromFile, id); + var resultadoContenedores = await AgregaContenedores(arrDataFromFile, id); + } + return arrDataFromFile; + } + + public async Task AgregaFacturas(List arrDataFromFile, int id) + { + foreach (var row in arrDataFromFile) + { + CorresponsalFacturas data = new CorresponsalFacturas(); + data.id = 0; + data.Factura = row.Factura; + data.IdTrafico = id; + data.Proveedor = 54; + data.ValorFacturaDls = Convert.ToDouble(row.ValorDolares); + data.Pedido = row.Pedido; + var arrFF = row.FechaFactura.Split('/'); + data.FechaFactura = arrFF[2] + '-' + arrFF[0] + '-' + arrFF[1]; + try + { + await _RepoFacturas.Appendc1896(data, row.UUID); + } + catch (Exception e) + { + Console.WriteLine("Ocurrio un error: " + e.ToString()); + } + } + return true; + } + + public async Task AgregaContenedores(List arrDataFromFile, int id) + { + foreach (var row in arrDataFromFile) + { + CorresponsalesContenedores data = new CorresponsalesContenedores(); + data.id = 0; + data.IdTrafico = id; + data.Contenedor = row.Caja; + bool equal = String.Equals(row.Semaforo.Replace(" ", ""), "ROJO", StringComparison.InvariantCulture); // SEMAFORO ROJO = 1 + data.Semaforo = 0; + if (row.FechaCruce.Length > 0) + { + data.Semaforo = equal ? (byte)1 : (byte)2; + string[] arrDateTime = row.FechaCruce.Split(' '); + var arrFF = arrDateTime[0].Split('/'); + data.FSemaforo = arrFF[2] + '-' + arrFF[0] + '-' + arrFF[1] + ' ' + arrDateTime[1]; + } + try + { + await _RepoContenedores.Appendc1896(data); + } + catch (Exception e) + { + Console.WriteLine("Ocurrio un error: " + e.ToString()); + } + } + return true; + } + + public async Task ComplementaData(List arrDataFromFile, int id) + { + var Registro = await _RepoTrafico.Get(id); + foreach (var row in arrDataFromFile) + { + Registro.Trafico = row.Referencia; + Registro.Patente = Int32.Parse(row.Patente); + Registro.Aduana = Int32.Parse(row.Aduana); + Registro.Pedimento = Int32.Parse(row.Pedimento); + Registro.FechaPago = row.FechaPago; + Registro.TipoCambio = row.TC; + Registro.CantidadFracciones = Int32.Parse(row.Fracciones); + Registro.DescripcionMercancia = row.DescripcionMercancia; + break; + } + return Registro; + } + + public List ReadDataFromFile(string filePath, int id) + { + List arrData = new List(); + var fileArray = File.ReadAllLines(@filePath); + for (int i = 0; i < fileArray.Length; i++) + { + var data = new I1896TempleteUpload(); + var line = fileArray[i]; + var columns = line.Split('|'); + data.id = id; + data.RFC = columns[1]; + data.RazonSocial = columns[2]; + data.Referencia = columns[3]; + data.Patente = columns[4]; + data.Aduana = columns[5]; + data.Pedimento = columns[6]; + data.FechaPago = columns[7]; + data.Clave = columns[8]; + data.Cuenta = columns[9]; + data.Proveedor = columns[10].Replace('"', ' '); + data.TipoOperacion = columns[12]; + data.Factura = columns[13]; + data.DescripcionMercancia = columns[14].Replace('"', ' '); + data.TC = (float)Convert.ToDouble(Regex.Replace(columns[15], @"\s+", "")); + data.ValorDolares = (float)Convert.ToDouble(Regex.Replace(columns[16], @"\s+", "")); + data.TotalEfectivo = (float)Convert.ToDouble(Regex.Replace(columns[20], @"\s+", "")); ; + data.Fracciones = columns[21]; + data.FechaCruce = columns[22]; + data.Pedido = columns[29]; + data.UUID = columns[33]; + data.Caja = columns[38]; + data.Tipo = columns[39]; + data.Semaforo = columns[45]; + data.FechaFactura = columns[49]; + arrData.Add(data); + } + return arrData; + } + + public Boolean ExisteDuplicidad(List rawData) + { + Boolean ExisteDuplicidad = false; + foreach (var item in rawData) + { + int Ocurrence = 0; + ExisteDuplicidad = false; + foreach (var row in rawData) + { + if (item.UUID.Equals(row.UUID)) + { + Ocurrence++; + } + if (Ocurrence > 1) + { + ExisteDuplicidad = true; + break; + } + } + } + return ExisteDuplicidad; + } + } +} diff --git a/GEMCO.Backend/Services/Clientes/SAmazon/Models/IAmazonAnswer.cs b/GEMCO.Backend/Services/Clientes/SAmazon/Models/IAmazonAnswer.cs new file mode 100644 index 0000000..66666ff --- /dev/null +++ b/GEMCO.Backend/Services/Clientes/SAmazon/Models/IAmazonAnswer.cs @@ -0,0 +1,15 @@ +namespace GEMCO.Backend.Services.Clientes.SAmazon.Models +{ + public class IAmazonAnswer + { + public int id { set; get; } = 0; + public string FechaSolicitud { set; get; } = string.Empty; + public string VRIDFactura { set; get; } = string.Empty; + public string ASIN { set; get; } = string.Empty; + public string HTSFactura { set; get; } = string.Empty; + public string HTSSugerido { set; get; } = string.Empty; + public string HTSAmazon { set; get; } = string.Empty; + public string FHCreado { set; get; } = string.Empty; + public Int16 Estatus { set; get; } = 0; + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Services/Clientes/SAmazon/SAmazonAnswerFile.cs b/GEMCO.Backend/Services/Clientes/SAmazon/SAmazonAnswerFile.cs new file mode 100644 index 0000000..c518b26 --- /dev/null +++ b/GEMCO.Backend/Services/Clientes/SAmazon/SAmazonAnswerFile.cs @@ -0,0 +1,112 @@ +using ExcelDataReader; +using System.Data; +using GEMCO.Backend.Clientes.Amazon.Contracts; +using GEMCO.Backend.Services.Clientes.SAmazon.Models; +using GEMCO.Backend.Services.ValidaFraccion; + +namespace GEMCO.Backend.Services.Clientes.SAmazon +{ + public class SAmazonAnswerFile + { + public DataSet mExcelInfo = null!; + private readonly IAmazonRepository _Repo; + private readonly IConfiguration _config; + private readonly string defaultPath; + + public SAmazonAnswerFile(IConfiguration config, IAmazonRepository Repo) + { + _Repo = Repo; + defaultPath = config.GetValue("AllFiles")! + "\\Clientes\\2096\\Answers\\"; + } + + public async Task ValidateAnswerFile(string Filename) + { + List ItemList = ReadContent(Filename); + if (!ItemList.Any()) return false; + string Invoice = ""; + SrvValidaFraccion srv = new SrvValidaFraccion(); + foreach (IAmazonAnswer item in ItemList) + { + Invoice = item.VRIDFactura; + Boolean fraccionValida = srv.ValidaFraccion(item.HTSAmazon); + if (fraccionValida) item.Estatus = 1; + await _Repo.AnswerFromAmazon(item); + } + await _Repo.SyncAnswers2Invoice(Invoice); + return true; + } + + public List ReadContent(string Filename) + { + Filename = defaultPath + Filename; + List AnswerList = new List(); + bool fileExist = File.Exists(Filename); + if (!fileExist) return AnswerList; + DataTable dt = new DataTable(); + DataSet mExcelInfo = null!; + System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); + using (var stream = File.Open(Filename, FileMode.Open, FileAccess.Read)) + { + using (var reader = ExcelReaderFactory.CreateReader(stream)) + { + mExcelInfo = reader.AsDataSet(); + if (mExcelInfo != null) + { + int lastTable = mExcelInfo.Tables.Count - 1; + dt = mExcelInfo.Tables[0]; + for (int r = 2; r < mExcelInfo!.Tables[mExcelInfo.Tables.Count - 1].Rows.Count; r++) + { + IAmazonAnswer data = new IAmazonAnswer(); + if (mExcelInfo != null) + { + for (int c = 0; c < mExcelInfo!.Tables[mExcelInfo.Tables.Count - 1].Columns.Count; c++) + { + if (c == 0 || c == 3 || (c >= 7 && c <= 9) || c == 21) + try + { + switch (c) + { + case 0: + data.FechaSolicitud = mExcelInfo.Tables[lastTable].Rows[r][c].ToString() ?? ""; + break; + case 3: + data.VRIDFactura = mExcelInfo.Tables[lastTable].Rows[r][c].ToString() ?? ""; + break; + case 7: + data.ASIN = mExcelInfo.Tables[lastTable].Rows[r][c].ToString() ?? ""; + break; + case 8: + data.HTSFactura = mExcelInfo.Tables[lastTable].Rows[r][c].ToString() ?? ""; + break; + case 9: + data.HTSSugerido = mExcelInfo.Tables[lastTable].Rows[r][c].ToString() ?? ""; + break; + case 21: + data.HTSAmazon = mExcelInfo.Tables[lastTable].Rows[r][c].ToString() ?? ""; + break; + default: + break; + } + } + catch (Exception e) + { + Console.Write(e.ToString()); + } + } + } + data.FechaSolicitud = data.FechaSolicitud.Trim(); + data.VRIDFactura = data.VRIDFactura.Trim(); + data.ASIN = data.ASIN.Trim(); + data.HTSFactura = data.HTSFactura.Trim(); + data.HTSSugerido = data.HTSSugerido.Trim(); + data.HTSAmazon = data.HTSAmazon.Trim(); + AnswerList.Add(data); + } + stream.Close(); + } + } + } + return AnswerList; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Services/Clientes/SCasaCuervo/SCasaCuervo.cs b/GEMCO.Backend/Services/Clientes/SCasaCuervo/SCasaCuervo.cs new file mode 100644 index 0000000..bbb128e --- /dev/null +++ b/GEMCO.Backend/Services/Clientes/SCasaCuervo/SCasaCuervo.cs @@ -0,0 +1,161 @@ +using GEMCO.Backend.Models.Clientes.CasaCuervo; +using GEMCO.Backend.DTO.Clientes.CasaCuervo; +using ExcelDataReader; +using System.Data; +using GEMCO.Backend.Contracts.Clientes.CasaCuervo; + +namespace GEMCO.Backend.Services.Clientes.SCasaCuervo +{ + public class SCasaCuervo + { + public DataSet mExcelInfo = null!; + private readonly ICasaCuervoRepository _Repo; + private readonly string rutaArchivo; + + public SCasaCuervo(ICasaCuervoRepository Repo, String Archivo) + { + _Repo = Repo; + rutaArchivo = Archivo; + } + + public async Task ReadExcel() + { + DataTable dt = new DataTable(); + List Data = new List(); + System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); + using (var stream = File.Open(rutaArchivo, FileMode.Open, FileAccess.Read)) + { + using (var reader = ExcelReaderFactory.CreateReader(stream)) + { + mExcelInfo = reader.AsDataSet(); + if (mExcelInfo != null) + { + int lastTable = mExcelInfo!.Tables.Count - 1; + dt = mExcelInfo.Tables[lastTable]; + for (int r = 1; r < mExcelInfo!.Tables[mExcelInfo.Tables.Count - 1].Rows.Count; r++) + { + if (mExcelInfo != null) + { + /* I325Pedidos data = new I325Pedidos(); + data.PO = mExcelInfo.Tables[lastTable].Rows[r][0].ToString() ?? ""; + data.Aduana = (string)mExcelInfo!.Tables[lastTable].Rows[r][1]; + data.Destination = (string)mExcelInfo!.Tables[lastTable].Rows[r][2]; + data.TruckNumber = mExcelInfo.Tables[lastTable].Rows[r][3].ToString() ?? ""; + data.Forwarder = (string)mExcelInfo.Tables[lastTable].Rows[r][4]; + data.Carrier = (string)mExcelInfo.Tables[lastTable].Rows[r][5]; + data.LoadDate = changeDateFormat(mExcelInfo.Tables[lastTable].Rows[r][6].ToString() ?? ""); + data.Prioridad = mExcelInfo.Tables[lastTable].Rows[r][7].ToString() ?? ""; + data.Estatus = mExcelInfo.Tables[lastTable].Rows[r][8].ToString(); + Data.Add(data); */ + + I325Pedidos data = new I325Pedidos(); + data.PO = mExcelInfo.Tables[lastTable].Rows[r][0].ToString() ?? ""; + data.Aduana = mExcelInfo!.Tables[lastTable].Rows[r][1].ToString() ?? ""; + data.Destination = mExcelInfo!.Tables[lastTable].Rows[r][2].ToString() ?? ""; + data.TruckNumber = mExcelInfo.Tables[lastTable].Rows[r][3].ToString() ?? ""; + data.Forwarder = mExcelInfo.Tables[lastTable].Rows[r][4].ToString() ?? ""; + data.Carrier = mExcelInfo.Tables[lastTable].Rows[r][5].ToString() ?? ""; + data.LoadDate = changeDateFormat(mExcelInfo.Tables[lastTable].Rows[r][6].ToString() ?? ""); + data.Prioridad = mExcelInfo.Tables[lastTable].Rows[r][7].ToString() ?? ""; + data.Estatus = mExcelInfo.Tables[lastTable].Rows[r][8].ToString() ?? ""; + Data.Add(data); + } + } + stream.Close(); + await _Repo.Append(Data); + } + } + } + return true; + } + + + public async Task UpdateInfoFromCorresponsal() + { + DataTable dt = new DataTable(); + List Data = new List(); + System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); + using (var stream = File.Open(rutaArchivo, FileMode.Open, FileAccess.Read)) + { + using (var reader = ExcelReaderFactory.CreateReader(stream)) + { + mExcelInfo = reader.AsDataSet(); + if (mExcelInfo != null) + { + int lastTable = mExcelInfo.Tables.Count - 1; + dt = mExcelInfo.Tables[lastTable]; + for (int r = 1; r < mExcelInfo!.Tables[mExcelInfo.Tables.Count - 1].Rows.Count; r++) + { + if (mExcelInfo != null) + { + DTO325ComplementaPedido data = new DTO325ComplementaPedido(); + if (mExcelInfo.Tables[lastTable].Columns.Count >= 1) + { + data.Pedido = mExcelInfo.Tables[lastTable].Rows[r][0].ToString() ?? ""; + } + if (mExcelInfo.Tables[lastTable].Columns.Count >= 2) + { + data.Factura = mExcelInfo.Tables[lastTable].Rows[r][1].ToString() ?? ""; + } + if (mExcelInfo.Tables[lastTable].Columns.Count >= 3) + { + data.UUID = mExcelInfo.Tables[lastTable].Rows[r][2].ToString() ?? ""; + } + if (mExcelInfo.Tables[lastTable].Columns.Count >= 4) + { + data.Trafico = mExcelInfo.Tables[lastTable].Rows[r][3].ToString() ?? ""; + } + if (mExcelInfo.Tables[lastTable].Columns.Count >= 5) + { + data.Pedimento = mExcelInfo.Tables[lastTable].Rows[r][4].ToString() ?? ""; + } + if (mExcelInfo.Tables[lastTable].Columns.Count >= 7) + { + data.Patente = mExcelInfo.Tables[lastTable].Rows[r][6].ToString() ?? ""; + } + if (mExcelInfo?.Tables[lastTable].Columns.Count >= 8) + { + data.Modulacion = mExcelInfo.Tables[lastTable].Rows[r][7].ToString() ?? ""; + } + if (mExcelInfo?.Tables[lastTable].Columns.Count >= 9) + { + string? fecha = mExcelInfo.Tables[lastTable].Rows[r][8].ToString(); + if (IsDateTime(fecha!)) + { + data.FechaCompromiso = fecha; + var temp = Convert.ToDateTime(fecha); + data.FechaCompromiso = temp.ToString("MM/dd/yyyy"); + } + else return false; + } + if (mExcelInfo?.Tables[mExcelInfo.Tables.Count - 1].Columns.Count >= 10) + { + data.Comentario = mExcelInfo?.Tables[lastTable].Rows[r][9].ToString(); + } + Data.Add(data); + } + } + stream.Close(); + await _Repo.UpdateInfoFromCorresponsal(Data); + } + } + } + return true; + } + + public static bool IsDateTime(string txtDate) + { + DateTime tempDate; + return DateTime.TryParse(txtDate, out tempDate); + } + + private string changeDateFormat(String data) + { + if (data.Length == 0) return ""; + var datePart = data.Split(' '); + String[] arr = datePart[0].Split('/'); + return arr[2].Substring(0, 4) + "-" + arr[0].PadLeft(2, '0') + "-" + arr[1].PadLeft(2, '0'); + } + } + +} \ No newline at end of file diff --git a/GEMCO.Backend/Services/MFileManager/SvcMFileManager.cs b/GEMCO.Backend/Services/MFileManager/SvcMFileManager.cs new file mode 100644 index 0000000..08e3b2d --- /dev/null +++ b/GEMCO.Backend/Services/MFileManager/SvcMFileManager.cs @@ -0,0 +1,110 @@ +using GEMCO.Backend.Contracts.Utils; +using GEMCO.Backend.Models.Utils; +using System.Threading; +using Microsoft.AspNetCore.Mvc; + +namespace GEMCO.Backend.Services.MFileManager +{ + public class SvcMFileManager + { + private readonly IFileManagerRepository _Repo; + private readonly IConfiguration _config; + // private readonly IFilePaths4ProcessRepository _RepoRelativePath; + private readonly string rootPath; + + public SvcMFileManager(IConfiguration config, IFileManagerRepository Repo, string _rootPath) + { + _config = config; + _Repo = Repo; + rootPath = _rootPath; + } + + public async Task> GetFilesFromLog(int Tags, int Proceso) + { + return await _Repo.getAllFilesByProcess(Tags, Proceso); + } + + public async Task getFileContentById(long id) + { + Boolean ExisteEnDisco = false; + byte[] emptyFile = System.IO.File.ReadAllBytes("c:\\downs\\empty.png"); + MemoryStream emptyms = new MemoryStream(emptyFile); + FileManager recFound = await _Repo.getFileById(id); + if (!String.IsNullOrEmpty(recFound.NombreArchivo)) + { + try + { + if (System.IO.File.Exists(Path.Combine(rootPath, recFound.NombreArchivo))) + { + ExisteEnDisco = true; + } + else + { + return new FileStreamResult(emptyms, "image/png"); + } + } + catch (IOException ex) + { + Console.Write(ex.ToString()); + return new FileStreamResult(emptyms, "image/png"); + } + if (ExisteEnDisco) + { + string fileMime = recFound.NombreArchivo.Substring(recFound.NombreArchivo.Length - 3).ToLower(); + var mime = "application/" + fileMime.ToLower(); + string targetFile = rootPath + recFound.NombreArchivo; + if (System.IO.File.Exists(targetFile)) + { + byte[] pdfBytes = System.IO.File.ReadAllBytes(targetFile); + MemoryStream ms = new MemoryStream(pdfBytes); + return new FileStreamResult(ms, mime); + } + } + } + return new FileStreamResult(emptyms, "image/png"); + } + + public async Task> SaveFile2DiskList(List FileList) + { + DateTime time = DateTime.Now; + var filePaths = new List(); + FileManager data = new FileManager(); + foreach (var file in FileList) + { + //string fileMime = file.FileName.Substring(file.FileName.Length - 4); + string fileMime = file.FileName.Substring(file.FileName.LastIndexOf('.') + 1); + string newFileName = file.FileName.Replace(fileMime, "") + "_" + time.ToString("yyyy_MM_dd_HH_mm_ss") + "." + fileMime; + if (file.Length > 0) + { + var filePath = rootPath + newFileName; + using (var stream = System.IO.File.Create(filePath)) + { + await file.CopyToAsync(stream); + filePaths.Add(newFileName); + } + } + } + return filePaths; + } + + public async Task> SaveFileLog(List files, int Tags, int Proceso, int Usuario) + { + List resultados = new List(); + foreach (string file in files) + { + FileManager data = new FileManager(); + long fileLength = new System.IO.FileInfo(rootPath + file).Length / 1024; + data.id = 0; + data.IdUsuario = Usuario; + data.Proceso = Proceso; + data.NombreArchivo = file; + data.Tags = Tags.ToString(); + data.Size = fileLength; + await _Repo.FileManager(data); + } + return await _Repo.getAllFilesByProcess(Tags, Proceso); + } + } + + +} \ No newline at end of file diff --git a/GEMCO.Backend/Services/PDFGenerator/PDFGenerator.cs b/GEMCO.Backend/Services/PDFGenerator/PDFGenerator.cs new file mode 100644 index 0000000..3ee1bc7 --- /dev/null +++ b/GEMCO.Backend/Services/PDFGenerator/PDFGenerator.cs @@ -0,0 +1,52 @@ +using DinkToPdf; +using DinkToPdf.Contracts; +using GEMCO.Backend.Contracts.Utils; +//using GEMCO.Backend.Models.Clientes.CasaCuervo; + + +namespace GEMCO.Backend.Services.PDFGenerator +{ + public class PDFGenerator : IPDFGenerator + { + private readonly IConverter _converter; + public PDFGenerator(IConverter converter) + { + _converter = converter; + } + + private async Task GeneratePdf(string htmlContent) + { + var globalSettings = new GlobalSettings + { + ColorMode = ColorMode.Color, + Orientation = Orientation.Portrait, + PaperSize = PaperKind.A4, + Margins = new MarginSettings { Top = 18, Bottom = 18, Left = 18, Right = 18 }, + }; + + var objectSettings = new ObjectSettings + { + PagesCount = true, + HtmlContent = htmlContent, + WebSettings = { DefaultEncoding = "utf-8" }, + /* HeaderSettings = { FontSize = 10, Right = "Page [page] of [toPage]", Line = true },*/ + FooterSettings = { FontSize = 8, Right = "[page] DE [toPage]", Line = true }, + }; + + var htmlToPdfDocument = new HtmlToPdfDocument() + { + GlobalSettings = globalSettings, + Objects = { objectSettings }, + }; + + return await Task.FromResult(_converter.Convert(htmlToPdfDocument)); + } + + + public async Task GeneratePdfFromString(string htmlContent) + { + return await GeneratePdf(htmlContent); + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Services/Utilerias.cs b/GEMCO.Backend/Services/Utilerias.cs new file mode 100644 index 0000000..f1527b6 --- /dev/null +++ b/GEMCO.Backend/Services/Utilerias.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Net; +using System.Net.Mail; +using System.Net.Mime; +using GEMCO.Backend.Models; +using Newtonsoft.Json; +using System.Text; +using GEMCO.Backend.Clientes.ZincInternacional.DTO; + +namespace GEMCO.Backend.Services.Utilerias +{ + public class Utilerias + { + private IConfiguration _config; + + public Utilerias(IConfiguration config) + { + _config = config; + } + /* public Boolean SendEmail(string htmlContent, Usuarios user) + { + string defaultPassword = _config.GetValue("DefaultUser:Password"); + string emailServer = _config.GetValue("EmailServer"); + int emailPort = _config.GetValue("EmailPort"); + htmlContent = (htmlContent.Length > 0) ? htmlContent : $@" + + + + + + + + + + + + +
Hola: {user.Nombre}, mediante el siguiente correo electronico, se le notifica que se le ha creado un nuevo acceso
Para acceder a su cuenta, favor de entrar a: http://reportes.gemcousa.com/
Nombre de usuario: {user.Usuario}
Contraseña: {defaultPassword}
Su contraseña inicial sera: {defaultPassword}, pero es necesario que la cambie antes de poder ingresar
Para cambiar la contraseña, puede ir al menu Reset, proporcione su nombre de usuario y su nueva contraseña
Si por alguna razon, no recuerda su contrasena, repita este proceso de resetear su contraseña
No es necesario responder a este correo, ya que fue generado en automatico por el sistema.
Nota: Las credenciales de acceso son responsabilidad personal, nadie solo usted debe conocerlas
Que tenga un excelente dia!
+ + "; + try + { + using (var smtp = new SmtpClient(emailServer, emailPort)) + { + smtp.Credentials = new NetworkCredential("noreply@gemcousa.com", "N#16rm87"); + smtp.EnableSsl = false; + var correo = new MailMessage(); + correo.From = new MailAddress("noreply@gemcousa.com", "noreply"); + correo.To.Add(user.Correo); + correo.Subject = "Notification - Se le ha creado un nuevo acceso en http://reportes.gemcousa.com"; + correo.Body = htmlContent; + correo.IsBodyHtml = true; + smtp.Send(correo); + return true; + } + } + catch (Exception ex) + { + Console.Write(ex.ToString()); + return false; + } + } */ + + public async Task SendEmail(DTOSendEmail data) + { + using var client = new HttpClient(); + string EmailAPI = _config.GetValue("EmailAPI"); + client.BaseAddress = new Uri(EmailAPI); + HttpContent body = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json"); + var response = client.PostAsync("SendEmail", body).Result; + if (response.IsSuccessStatusCode) + { + var content = await response.Content.ReadAsStringAsync(); + } + return true; + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/Services/ValidaFraccion/SrvValidaFraccion.cs b/GEMCO.Backend/Services/ValidaFraccion/SrvValidaFraccion.cs new file mode 100644 index 0000000..1753da4 --- /dev/null +++ b/GEMCO.Backend/Services/ValidaFraccion/SrvValidaFraccion.cs @@ -0,0 +1,104 @@ +using System.Xml; +using System.Net; +using GEMCO.Backend.Contracts.Utils; +using System.Xml.Serialization; +using System.Xml.Linq; +using GEMCO.Backend.Models.AnexoFacturacion; + +namespace GEMCO.Backend.Services.ValidaFraccion +{ + public class SrvValidaFraccion : IValidaFraccion + { + + public Boolean ValidaFraccion(string Fraccion) + { + if (Fraccion.Length != 10) { return false; } + int inicio = 0, fin = 0; + string Nico = Fraccion.Substring(8, 2); + Fraccion = Fraccion.Substring(0, 8); + List NicosAutorizados = new List(); + DateTime now = DateTime.Now; + int year = now.Year; + int month = now.Month; + int day = now.Day; + string Fecha = String.Format("{0:00}/{1:00}/{2:0000}", day, month, year); + HttpWebRequest request = CreateWebRequest(); + XmlDocument soapEnvelopeXml = new XmlDocument(); + soapEnvelopeXml.LoadXml(@" + + + + + + + + " + Fraccion + @" + + " + Fecha + @" + + I + + MEX + + 240 + + 3636 + + " + Fecha + @" + + + "); + using (Stream stream = request.GetRequestStream()) { soapEnvelopeXml.Save(stream); } + using (WebResponse response = request.GetResponse()) + { + using (StreamReader rd = new StreamReader(response.GetResponseStream())) + { + string soapResult = rd.ReadToEnd(); + string resultado = soapResult.ToString(); + try + { + inicio = resultado.IndexOf("<desc_nicos>"); + } + catch (FormatException) + { + return false; + } + try + { + fin = resultado.IndexOf("</desc_nicos>"); + } + catch (FormatException) + { + return false; + } + if (inicio < 0 || fin < 0) return false; + resultado = resultado.Substring(inicio, resultado.Length - fin); + inicio = resultado.IndexOf("<desc_nicos>"); + fin = resultado.IndexOf("</desc_nicos>"); + resultado = resultado.Substring(inicio, fin); + resultado = resultado.Replace("<", "<").Replace(">", ">") + ""; + XElement contacts = XElement.Parse( + resultado); + List Nicos = contacts.Elements("numero").ToList(); + foreach (var nico in Nicos) + { + NicosAutorizados.Add(nico.ToString().Replace("", "").Replace("", "")); + } + + } + } + return (NicosAutorizados.Any(Nico.Contains)); + } + + public static HttpWebRequest CreateWebRequest() + { + HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(@"https://tarifaweb.griver.com.mx/wstel/tel.asmx?op=TEL"); + webRequest.Headers.Add(@"SOAP:Action"); + webRequest.ContentType = "text/xml;charset=\"utf-8\""; + webRequest.Accept = "text/xml"; + webRequest.Method = "POST"; + return webRequest; + } + + } +} \ No newline at end of file diff --git a/GEMCO.Backend/WeatherForecast.cs b/GEMCO.Backend/WeatherForecast.cs new file mode 100644 index 0000000..5ded6ae --- /dev/null +++ b/GEMCO.Backend/WeatherForecast.cs @@ -0,0 +1,13 @@ +namespace GEMCO.Backend +{ + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string? Summary { get; set; } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/appsettings.Development.json b/GEMCO.Backend/appsettings.Development.json new file mode 100644 index 0000000..88ce278 --- /dev/null +++ b/GEMCO.Backend/appsettings.Development.json @@ -0,0 +1,25 @@ +{ + "ConnectionStrings": { + "SqlConnection": "server=.; database=GEMCO; Integrated Security=true;TrustServerCertificate=True;Command Timeout=360" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "EmailServer": "gemcousa-com.mail.protection.outlook.com", + "EmailPort": 25, + "pathArchivoElectronico": "C:\\downs\\ArchivoElectronicoSIR\\www.gemcousa.com\\SIR-GEMCO\\DOCS-SIR\\", + "pathTemp": "C:\\downs\\temp\\", + "pathFotosBodega": "c:\\data\\Bodega\\Fotos\\", + "pathZipCorresponsales": "C:\\data\\", + "CorresponsalesFilePath": "C:\\data\\", + "Allfiles": "C:\\data\\", + "Twilio_SID": "AC59baecf4872fa93e3c315180c96b4cc2", + "Twilio_Token":"5416fe0460e9afaf5400697def878c04", + "AmazonPyAPI":"http://localhost:6010/", + "AmazonEJSAPI": "http://localhost:6030/", + "AmazonNodeAPI": "http://localhost:6020/api/Amazon/", + "EmailAPI" : "https://pyapi.gemcousa.mx/" +} diff --git a/GEMCO.Backend/appsettings.Staging.json b/GEMCO.Backend/appsettings.Staging.json new file mode 100644 index 0000000..d0b9938 --- /dev/null +++ b/GEMCO.Backend/appsettings.Staging.json @@ -0,0 +1,22 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "EmailServer": "gemcousa-com.mail.protection.outlook.com", + "EmailPort": 25, + "pathArchivoElectronico": "D:\\data\\ArchivoElectronicoSIR\\www.gemcousa.com\\SIR-GEMCO\\DOCS-SIR\\", + "pathTemp": "D:\\data\\temp\\", + "pathFotosBodega": "D:\\data\\Bodega\\Fotos\\", + "pathZipCorresponsales": "D:\\data\\Corresponsales\\Zips\\", + "CorresponsalesFilePath": "D:\\data\\Corresponsales\\", + "AllFiles": "D:\\data\\", + "Twilio_SID": "AC59baecf4872fa93e3c315180c96b4cc2", + "Twilio_Token":"5416fe0460e9afaf5400697def878c04", + "AmazonPyAPI": "https://amazon-pyapi.gemcousa.solutions/", + "AmazonEJSAPI": "https://amazon-ejsapi.gemcousa.solutions/", + "AmazonNodeAPI": "https://amazon-nodeapi.gemcousa.solutions/api/Amazon" , + "EmailAPI" : "https://pyapi.gemcousa.mx/" +} diff --git a/GEMCO.Backend/appsettings.json b/GEMCO.Backend/appsettings.json new file mode 100644 index 0000000..6d4e812 --- /dev/null +++ b/GEMCO.Backend/appsettings.json @@ -0,0 +1,37 @@ +{ + "ConnectionStrings": { + "SqlConnection": "server=.; database=GEMCO; Integrated Security=true;TrustServerCertificate=True;" + //"SqlConnection": "server= 50.40.01; database=GEMCO; User Id=DBAdmin; password=DBAdmin1234$.; Integrated Security=true;TrustServerCertificate=True " + }, + "DefaultUser": { + "Password": "Bienvenido123!" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "Jwt": { + "Key": "GFE1j5KLolZHDK9iKw5xK17Rz4ty7BlbXgnjPL6dNwVCCNQWU8uRGVyZmAZPWZMs4XX0phFMS849p25Lrwsn31Bi4J7GT2HQ9xeWlJLarJPDyoRZZvChpovwgrquQ9Pd", + "Issuer": "JWTAuthenticationServer", + "Audience": "JWTServicePostmanClient", + "Subject": "JWTServiceAccessToken", + "ExpirationHours": 4 + }, + "EmailServer": "gemcousa-com.mail.protection.outlook.com", + "EmailPort": 25, + "pathArchivoElectronico": "D:\\data\\ArchivoElectronicoSIR\\www.gemcousa.com\\SIR-GEMCO\\DOCS-SIR\\", + "pathTemp": "D:\\data\\temp\\", + "pathFotosBodega": "D:\\data\\Bodega\\Fotos\\", + "pathZipCorresponsales": "D:\\data\\Corresponsales\\Zips\\", + "CorresponsalesFilePath": "D:\\data\\Corresponsales\\", + "AllFiles": "D:\\data\\", + "Twilio_SID": "AC59baecf4872fa93e3c315180c96b4cc2", + "Twilio_Token":"5416fe0460e9afaf5400697def878c04", + "AmazonPyAPI":"https://amazon-pyapi.gemcousa.mx/", + "AmazonEJSAPI": "https://amazon-ejsapi.gemcousa.mx/", + "AmazonNodeAPI": "https://amazon-nodeapi.gemcousa.mx/api/Amazon", + "EmailAPI" : "https://pyapi.gemcousa.mx/" +} diff --git a/GEMCO.Backend/libwkhtmltox.dll b/GEMCO.Backend/libwkhtmltox.dll new file mode 100644 index 0000000..98a007b Binary files /dev/null and b/GEMCO.Backend/libwkhtmltox.dll differ diff --git a/GEMCO.Backend/libwkhtmltox.dylib b/GEMCO.Backend/libwkhtmltox.dylib new file mode 100644 index 0000000..0263cad Binary files /dev/null and b/GEMCO.Backend/libwkhtmltox.dylib differ diff --git a/GEMCO.Backend/libwkhtmltox.so b/GEMCO.Backend/libwkhtmltox.so new file mode 100644 index 0000000..eecc883 Binary files /dev/null and b/GEMCO.Backend/libwkhtmltox.so differ diff --git a/GEMCO.Backend/obj/GEMCO.Backend.csproj.EntityFrameworkCore.targets b/GEMCO.Backend/obj/GEMCO.Backend.csproj.EntityFrameworkCore.targets new file mode 100644 index 0000000..7d6485d --- /dev/null +++ b/GEMCO.Backend/obj/GEMCO.Backend.csproj.EntityFrameworkCore.targets @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GEMCO.Backend/obj/GEMCO.Backend.csproj.nuget.dgspec.json b/GEMCO.Backend/obj/GEMCO.Backend.csproj.nuget.dgspec.json new file mode 100644 index 0000000..251c114 --- /dev/null +++ b/GEMCO.Backend/obj/GEMCO.Backend.csproj.nuget.dgspec.json @@ -0,0 +1,124 @@ +{ + "format": 1, + "restore": { + "C:\\Projects\\staging\\Gemco\\GEMCOBackend\\GEMCO.Backend\\GEMCO.Backend.csproj": {} + }, + "projects": { + "C:\\Projects\\staging\\Gemco\\GEMCOBackend\\GEMCO.Backend\\GEMCO.Backend.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Projects\\staging\\Gemco\\GEMCOBackend\\GEMCO.Backend\\GEMCO.Backend.csproj", + "projectName": "GEMCO.Backend", + "projectPath": "C:\\Projects\\staging\\Gemco\\GEMCOBackend\\GEMCO.Backend\\GEMCO.Backend.csproj", + "packagesPath": "C:\\Users\\Luis Rendon\\.nuget\\packages\\", + "outputPath": "C:\\Projects\\staging\\Gemco\\GEMCOBackend\\GEMCO.Backend\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\Luis Rendon\\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": [ + "net6.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net6.0": { + "targetAlias": "net6.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net6.0": { + "targetAlias": "net6.0", + "dependencies": { + "BCrypt.Net-Next": { + "target": "Package", + "version": "[4.0.2, )" + }, + "ClosedXML": { + "target": "Package", + "version": "[0.97.0, )" + }, + "Dapper": { + "target": "Package", + "version": "[2.0.123, )" + }, + "Dapper.FluentMap": { + "target": "Package", + "version": "[2.0.0, )" + }, + "DinkToPdf": { + "target": "Package", + "version": "[1.0.8, )" + }, + "DocumentFormat.OpenXml": { + "target": "Package", + "version": "[2.19.0, )" + }, + "ExcelDataReader": { + "target": "Package", + "version": "[3.6.0, )" + }, + "ExcelDataReader.DataSet": { + "target": "Package", + "version": "[3.6.0, )" + }, + "Microsoft.AspNetCore.Authentication.JwtBearer": { + "target": "Package", + "version": "[6.0.2, )" + }, + "Microsoft.Data.SqlClient": { + "target": "Package", + "version": "[4.1.0, )" + }, + "Newtonsoft.Json": { + "target": "Package", + "version": "[13.0.1, )" + }, + "Swashbuckle.AspNetCore": { + "target": "Package", + "version": "[6.2.3, )" + }, + "Twilio": { + "target": "Package", + "version": "[6.2.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.203\\RuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/obj/GEMCO.Backend.csproj.nuget.g.props b/GEMCO.Backend/obj/GEMCO.Backend.csproj.nuget.g.props new file mode 100644 index 0000000..fb74f4f --- /dev/null +++ b/GEMCO.Backend/obj/GEMCO.Backend.csproj.nuget.g.props @@ -0,0 +1,23 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\Luis Rendon\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages + PackageReference + 6.5.0 + + + + + + + + + + + C:\Users\Luis Rendon\.nuget\packages\microsoft.extensions.apidescription.server\3.0.0 + + \ No newline at end of file diff --git a/GEMCO.Backend/obj/GEMCO.Backend.csproj.nuget.g.targets b/GEMCO.Backend/obj/GEMCO.Backend.csproj.nuget.g.targets new file mode 100644 index 0000000..a03b337 --- /dev/null +++ b/GEMCO.Backend/obj/GEMCO.Backend.csproj.nuget.g.targets @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GEMCO.Backend/obj/project.assets.json b/GEMCO.Backend/obj/project.assets.json new file mode 100644 index 0000000..30c5b4b --- /dev/null +++ b/GEMCO.Backend/obj/project.assets.json @@ -0,0 +1,7228 @@ +{ + "version": 3, + "targets": { + "net6.0": { + "Azure.Core/1.6.0": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.0.0", + "System.Buffers": "4.5.0", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory": "4.5.3", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Json": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "compile": { + "lib/netstandard2.0/Azure.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Azure.Core.dll": { + "related": ".xml" + } + } + }, + "Azure.Identity/1.3.0": { + "type": "package", + "dependencies": { + "Azure.Core": "1.6.0", + "Microsoft.Identity.Client": "4.22.0", + "Microsoft.Identity.Client.Extensions.Msal": "2.16.5", + "System.Memory": "4.5.3", + "System.Security.Cryptography.ProtectedData": "4.5.0", + "System.Text.Json": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "compile": { + "lib/netstandard2.0/Azure.Identity.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Azure.Identity.dll": { + "related": ".xml" + } + } + }, + "BCrypt.Net-Next/4.0.2": { + "type": "package", + "compile": { + "lib/net5.0/BCrypt.Net-Next.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/BCrypt.Net-Next.dll": { + "related": ".xml" + } + } + }, + "ClosedXML/0.97.0": { + "type": "package", + "dependencies": { + "DocumentFormat.OpenXml": "2.16.0", + "ExcelNumberFormat": "1.1.0", + "Microsoft.CSharp": "4.7.0", + "SixLabors.Fonts": "1.0.0-beta18", + "System.Buffers": "4.5.1", + "System.IO.Packaging": "4.7.0", + "System.Memory": "4.5.4", + "XLParser": "1.5.2" + }, + "compile": { + "lib/netstandard2.0/ClosedXML.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/ClosedXML.dll": { + "related": ".xml" + } + } + }, + "Dapper/2.0.123": { + "type": "package", + "compile": { + "lib/net5.0/Dapper.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/Dapper.dll": { + "related": ".xml" + } + } + }, + "Dapper.FluentMap/2.0.0": { + "type": "package", + "dependencies": { + "Dapper": "2.0.35" + }, + "compile": { + "lib/netstandard2.0/Dapper.FluentMap.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Dapper.FluentMap.dll": { + "related": ".xml" + } + } + }, + "DinkToPdf/1.0.8": { + "type": "package", + "dependencies": { + "NETStandard.Library": "1.6.0", + "System.Collections.Concurrent": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading.Thread": "4.0.0" + }, + "compile": { + "lib/netstandard1.6/DinkToPdf.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard1.6/DinkToPdf.dll": { + "related": ".pdb;.xml" + } + } + }, + "DocumentFormat.OpenXml/2.19.0": { + "type": "package", + "dependencies": { + "System.IO.Packaging": "4.7.0" + }, + "compile": { + "lib/net6.0/DocumentFormat.OpenXml.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/DocumentFormat.OpenXml.dll": { + "related": ".xml" + } + } + }, + "ExcelDataReader/3.6.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/ExcelDataReader.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/ExcelDataReader.dll": { + "related": ".pdb;.xml" + } + } + }, + "ExcelDataReader.DataSet/3.6.0": { + "type": "package", + "dependencies": { + "ExcelDataReader": "3.6.0" + }, + "compile": { + "lib/netstandard2.0/ExcelDataReader.DataSet.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/ExcelDataReader.DataSet.dll": { + "related": ".pdb;.xml" + } + } + }, + "ExcelNumberFormat/1.1.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/ExcelNumberFormat.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/ExcelNumberFormat.dll": { + "related": ".xml" + } + } + }, + "Irony.NetCore/1.0.11": { + "type": "package", + "dependencies": { + "NETStandard.Library": "1.6.1", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Runtime.Numerics": "4.3.0" + }, + "compile": { + "lib/netstandard1.6/Irony.dll": {} + }, + "runtime": { + "lib/netstandard1.6/Irony.dll": {} + } + }, + "Microsoft.AspNetCore.Authentication.JwtBearer/6.0.2": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.10.0" + }, + "compile": { + "lib/net6.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "type": "package", + "compile": { + "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {} + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.CSharp/4.7.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + }, + "Microsoft.Data.SqlClient/4.1.0": { + "type": "package", + "dependencies": { + "Azure.Identity": "1.3.0", + "Microsoft.Data.SqlClient.SNI.runtime": "4.0.0", + "Microsoft.Identity.Client": "4.22.0", + "Microsoft.IdentityModel.JsonWebTokens": "6.8.0", + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.8.0", + "Microsoft.Win32.Registry": "5.0.0", + "System.Buffers": "4.5.1", + "System.Configuration.ConfigurationManager": "5.0.0", + "System.Diagnostics.DiagnosticSource": "5.0.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime.Caching": "5.0.0", + "System.Security.Cryptography.Cng": "5.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encoding.CodePages": "5.0.0", + "System.Text.Encodings.Web": "4.7.2" + }, + "compile": { + "ref/netcoreapp3.1/Microsoft.Data.SqlClient.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll": { + "related": ".pdb;.xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "Microsoft.Data.SqlClient.SNI.runtime/4.0.0": { + "type": "package", + "runtimeTargets": { + "runtimes/win-arm/native/Microsoft.Data.SqlClient.SNI.dll": { + "assetType": "native", + "rid": "win-arm" + }, + "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll": { + "assetType": "native", + "rid": "win-arm64" + }, + "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll": { + "assetType": "native", + "rid": "win-x64" + }, + "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll": { + "assetType": "native", + "rid": "win-x86" + } + } + }, + "Microsoft.Extensions.ApiDescription.Server/3.0.0": { + "type": "package", + "build": { + "build/Microsoft.Extensions.ApiDescription.Server.props": {}, + "build/Microsoft.Extensions.ApiDescription.Server.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props": {}, + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets": {} + } + }, + "Microsoft.Identity.Client/4.22.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.1/Microsoft.Identity.Client.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp2.1/Microsoft.Identity.Client.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/2.16.5": { + "type": "package", + "dependencies": { + "Microsoft.Identity.Client": "4.22.0", + "System.Security.Cryptography.ProtectedData": "4.5.0" + }, + "compile": { + "lib/netcoreapp2.1/Microsoft.Identity.Client.Extensions.Msal.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp2.1/Microsoft.Identity.Client.Extensions.Msal.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Abstractions/6.19.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/6.19.0": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "6.19.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Logging/6.19.0": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "6.19.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Protocols/6.10.0": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Logging": "6.10.0", + "Microsoft.IdentityModel.Tokens": "6.10.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/6.10.0": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Protocols": "6.10.0", + "System.IdentityModel.Tokens.Jwt": "6.10.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Tokens/6.19.0": { + "type": "package", + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "Microsoft.IdentityModel.Logging": "6.19.0", + "System.Security.Cryptography.Cng": "4.5.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.NETCore.Platforms/5.0.0": { + "type": "package", + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "Microsoft.NETCore.Targets/1.1.0": { + "type": "package", + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "Microsoft.OpenApi/1.2.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + } + }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/Microsoft.Win32.Primitives.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Win32.Registry/5.0.0": { + "type": "package", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + }, + "compile": { + "ref/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Win32.Registry.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "Microsoft.Win32.SystemEvents/5.0.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0" + }, + "compile": { + "ref/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "NETStandard.Library/1.6.1": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.Win32.Primitives": "4.3.0", + "System.AppContext": "4.3.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Console": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.Compression.ZipFile": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.Net.Http": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Net.Sockets": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Timer": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0" + } + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "compile": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + } + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/debian.8-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "debian.8-x64" + } + } + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/fedora.23-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "fedora.23-x64" + } + } + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/fedora.24-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "fedora.24-x64" + } + } + }, + "runtime.native.System/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.native.System.IO.Compression/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/opensuse.13.2-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "opensuse.13.2-x64" + } + } + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/opensuse.42.1-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "opensuse.42.1-x64" + } + } + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.Apple.dylib": { + "assetType": "native", + "rid": "osx.10.10-x64" + } + } + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.OpenSsl.dylib": { + "assetType": "native", + "rid": "osx.10.10-x64" + } + } + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/rhel.7-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "rhel.7-x64" + } + } + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/ubuntu.14.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "ubuntu.14.04-x64" + } + } + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/ubuntu.16.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "ubuntu.16.04-x64" + } + } + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/ubuntu.16.10-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "ubuntu.16.10-x64" + } + } + }, + "SixLabors.Fonts/1.0.0-beta18": { + "type": "package", + "compile": { + "lib/netcoreapp3.1/SixLabors.Fonts.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp3.1/SixLabors.Fonts.dll": { + "related": ".xml" + } + } + }, + "Swashbuckle.AspNetCore/6.2.3": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.ApiDescription.Server": "3.0.0", + "Swashbuckle.AspNetCore.Swagger": "6.2.3", + "Swashbuckle.AspNetCore.SwaggerGen": "6.2.3", + "Swashbuckle.AspNetCore.SwaggerUI": "6.2.3" + }, + "build": { + "build/Swashbuckle.AspNetCore.props": {} + } + }, + "Swashbuckle.AspNetCore.Swagger/6.2.3": { + "type": "package", + "dependencies": { + "Microsoft.OpenApi": "1.2.3" + }, + "compile": { + "lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/6.2.3": { + "type": "package", + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "6.2.3" + }, + "compile": { + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/6.2.3": { + "type": "package", + "compile": { + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "System.AppContext/4.3.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/System.AppContext.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.6/System.AppContext.dll": {} + } + }, + "System.Buffers/4.5.1": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + }, + "System.Collections/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Collections.dll": { + "related": ".xml" + } + } + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Collections.Concurrent.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Concurrent.dll": {} + } + }, + "System.Collections.NonGeneric/4.3.0": { + "type": "package", + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Collections.NonGeneric.dll": {} + } + }, + "System.Collections.Specialized/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections.NonGeneric": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Collections.Specialized.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Specialized.dll": {} + } + }, + "System.Configuration.ConfigurationManager/5.0.0": { + "type": "package", + "dependencies": { + "System.Security.Cryptography.ProtectedData": "5.0.0", + "System.Security.Permissions": "5.0.0" + }, + "compile": { + "ref/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll": { + "related": ".xml" + } + } + }, + "System.Console/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Console.dll": { + "related": ".xml" + } + } + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Diagnostics.Debug.dll": { + "related": ".xml" + } + } + }, + "System.Diagnostics.DiagnosticSource/5.0.0": { + "type": "package", + "compile": { + "lib/net5.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + } + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Diagnostics.Tools.dll": { + "related": ".xml" + } + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/System.Diagnostics.Tracing.dll": { + "related": ".xml" + } + } + }, + "System.Drawing.Common/5.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Win32.SystemEvents": "5.0.0" + }, + "compile": { + "ref/netcoreapp3.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp3.0/System.Drawing.Common.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Formats.Asn1/5.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Formats.Asn1.dll": { + "related": ".xml" + } + } + }, + "System.Globalization/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Globalization.dll": { + "related": ".xml" + } + } + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Globalization.Calendars.dll": { + "related": ".xml" + } + } + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/_._": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.Globalization.Extensions.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Globalization.Extensions.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.IdentityModel.Tokens.Jwt/6.19.0": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "6.19.0", + "Microsoft.IdentityModel.Tokens": "6.19.0" + }, + "compile": { + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + } + }, + "System.IO/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/System.IO.dll": { + "related": ".xml" + } + } + }, + "System.IO.Compression/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Buffers": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.IO.Compression": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.IO.Compression.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.IO.Compression.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.IO.Compression.ZipFile/4.3.0": { + "type": "package", + "dependencies": { + "System.Buffers": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.IO.Compression.ZipFile.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.IO.Compression.ZipFile.dll": {} + } + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.IO.FileSystem.dll": { + "related": ".xml" + } + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.IO.FileSystem.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.IO.Packaging/4.7.0": { + "type": "package", + "compile": { + "ref/netstandard2.0/System.IO.Packaging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.IO.Packaging.dll": { + "related": ".xml" + } + } + }, + "System.Linq/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/System.Linq.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.6/System.Linq.dll": {} + } + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/System.Linq.Expressions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.6/System.Linq.Expressions.dll": {} + } + }, + "System.Memory/4.5.4": { + "type": "package", + "compile": { + "ref/netcoreapp2.1/_._": {} + }, + "runtime": { + "lib/netcoreapp2.1/_._": {} + } + }, + "System.Net.Http/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.DiagnosticSource": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Net.Http.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Net.Http.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Net.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Net.Primitives.dll": { + "related": ".xml" + } + } + }, + "System.Net.Sockets/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Net.Sockets.dll": { + "related": ".xml" + } + } + }, + "System.Numerics.Vectors/4.5.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.ObjectModel.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.ObjectModel.dll": {} + } + }, + "System.Reflection/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/System.Reflection.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.Emit/4.3.0": { + "type": "package", + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.1/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.dll": {} + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {} + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {} + } + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Reflection.Extensions.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Reflection.Primitives.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/System.Reflection.TypeExtensions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {} + } + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Resources.ResourceManager.dll": { + "related": ".xml" + } + } + }, + "System.Runtime/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + }, + "compile": { + "ref/netstandard1.5/System.Runtime.dll": { + "related": ".xml" + } + } + }, + "System.Runtime.Caching/5.0.0": { + "type": "package", + "dependencies": { + "System.Configuration.ConfigurationManager": "5.0.0" + }, + "compile": { + "ref/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Runtime.Caching.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netstandard2.0/System.Runtime.Caching.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/System.Runtime.Extensions.dll": { + "related": ".xml" + } + } + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Runtime.Handles.dll": { + "related": ".xml" + } + } + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + }, + "compile": { + "ref/netcoreapp1.1/System.Runtime.InteropServices.dll": {} + } + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "type": "package", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0" + }, + "compile": { + "ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {} + }, + "runtime": { + "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {} + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "compile": { + "ref/netstandard1.1/System.Runtime.Numerics.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Numerics.dll": {} + } + }, + "System.Security.AccessControl/5.0.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + }, + "compile": { + "ref/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Security.AccessControl.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll": {} + }, + "runtimeTargets": { + "runtimes/osx/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { + "assetType": "runtime", + "rid": "osx" + }, + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.Cng/5.0.0": { + "type": "package", + "dependencies": { + "System.Formats.Asn1": "5.0.0" + }, + "compile": { + "ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/_._": {} + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Csp.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Csp.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Security.Cryptography.Encoding.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/_._": {} + }, + "runtime": { + "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": {} + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": { + "assetType": "runtime", + "rid": "unix" + } + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} + }, + "runtime": { + "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} + } + }, + "System.Security.Cryptography.ProtectedData/5.0.0": { + "type": "package", + "compile": { + "ref/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Permissions/5.0.0": { + "type": "package", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Windows.Extensions": "5.0.0" + }, + "compile": { + "ref/net5.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/System.Security.Permissions.dll": { + "related": ".xml" + } + } + }, + "System.Security.Principal.Windows/5.0.0": { + "type": "package", + "compile": { + "ref/netcoreapp3.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Security.Principal.Windows.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Text.Encoding.dll": { + "related": ".xml" + } + } + }, + "System.Text.Encoding.CodePages/5.0.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0" + }, + "compile": { + "lib/netstandard2.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp2.0/System.Text.Encoding.CodePages.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Text.Encoding.Extensions.dll": { + "related": ".xml" + } + } + }, + "System.Text.Encodings.Web/4.7.2": { + "type": "package", + "compile": { + "lib/netstandard2.1/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + } + }, + "System.Text.Json/4.6.0": { + "type": "package", + "compile": { + "lib/netcoreapp3.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp3.0/System.Text.Json.dll": { + "related": ".xml" + } + } + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netcoreapp1.1/System.Text.RegularExpressions.dll": {} + }, + "runtime": { + "lib/netstandard1.6/System.Text.RegularExpressions.dll": {} + } + }, + "System.Threading/4.3.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Threading.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Threading.dll": {} + } + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Threading.Tasks.dll": { + "related": ".xml" + } + } + }, + "System.Threading.Tasks.Extensions/4.5.2": { + "type": "package", + "compile": { + "ref/netcoreapp2.1/_._": {} + }, + "runtime": { + "lib/netcoreapp2.1/_._": {} + } + }, + "System.Threading.Thread/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.1.0" + }, + "compile": { + "ref/netstandard1.3/System.Threading.Thread.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Threading.Thread.dll": {} + } + }, + "System.Threading.Timer/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.2/System.Threading.Timer.dll": { + "related": ".xml" + } + } + }, + "System.Windows.Extensions/5.0.0": { + "type": "package", + "dependencies": { + "System.Drawing.Common": "5.0.0" + }, + "compile": { + "ref/netcoreapp3.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netcoreapp3.0/System.Windows.Extensions.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp3.0/System.Windows.Extensions.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Xml.ReaderWriter.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Xml.ReaderWriter.dll": {} + } + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Xml.XDocument.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XDocument.dll": {} + } + }, + "Twilio/6.2.0": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "6.19.0", + "Newtonsoft.Json": "13.0.1", + "System.Collections.Specialized": "4.3.0", + "System.IdentityModel.Tokens.Jwt": "6.19.0" + }, + "compile": { + "lib/netstandard2.0/Twilio.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Twilio.dll": { + "related": ".xml" + } + } + }, + "XLParser/1.5.2": { + "type": "package", + "dependencies": { + "Irony.NetCore": "1.0.11", + "NETStandard.Library": "1.6.1" + }, + "compile": { + "lib/netstandard1.6/XLParser.dll": {} + }, + "runtime": { + "lib/netstandard1.6/XLParser.dll": {} + } + } + } + }, + "libraries": { + "Azure.Core/1.6.0": { + "sha512": "kI4m2NsODPOrxo0OoKjk6B3ADbdovhDQIEmI4039upjjZKRaewVLx/Uz4DfRa/NtnIRZQPUALe1yvdHWAoRt4w==", + "type": "package", + "path": "azure.core/1.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "CHANGELOG.md", + "README.md", + "azure.core.1.6.0.nupkg.sha512", + "azure.core.nuspec", + "lib/net461/Azure.Core.dll", + "lib/net461/Azure.Core.xml", + "lib/netstandard2.0/Azure.Core.dll", + "lib/netstandard2.0/Azure.Core.xml", + "pkgicon.png" + ] + }, + "Azure.Identity/1.3.0": { + "sha512": "l1SYfZKOFBuUFG7C2SWHmJcrQQaiXgBdVCycx4vcZQkC6efDVt7mzZ5pfJAFEJDBUq7mjRQ0RPq9ZDGdSswqMg==", + "type": "package", + "path": "azure.identity/1.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "CHANGELOG.md", + "README.md", + "azure.identity.1.3.0.nupkg.sha512", + "azure.identity.nuspec", + "lib/netstandard2.0/Azure.Identity.dll", + "lib/netstandard2.0/Azure.Identity.xml", + "pkgicon.png" + ] + }, + "BCrypt.Net-Next/4.0.2": { + "sha512": "LyNKpIpr4GraRD9+xlTviyxxbZpF6J4xJf7DvraC1mR8PSN/KonGc4rt8C/fjkD3vaEvgA7BcvsbHFCOjgczyQ==", + "type": "package", + "path": "bcrypt.net-next/4.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "bcrypt.net-next.4.0.2.nupkg.sha512", + "bcrypt.net-next.nuspec", + "lib/net20/BCrypt.Net-Next.dll", + "lib/net20/BCrypt.Net-Next.xml", + "lib/net35/BCrypt.Net-Next.dll", + "lib/net35/BCrypt.Net-Next.xml", + "lib/net40/BCrypt.Net-Next.dll", + "lib/net40/BCrypt.Net-Next.xml", + "lib/net452/BCrypt.Net-Next.dll", + "lib/net452/BCrypt.Net-Next.xml", + "lib/net462/BCrypt.Net-Next.dll", + "lib/net462/BCrypt.Net-Next.xml", + "lib/net472/BCrypt.Net-Next.dll", + "lib/net472/BCrypt.Net-Next.xml", + "lib/net48/BCrypt.Net-Next.dll", + "lib/net48/BCrypt.Net-Next.xml", + "lib/net5.0/BCrypt.Net-Next.dll", + "lib/net5.0/BCrypt.Net-Next.xml", + "lib/netcoreapp3.1/BCrypt.Net-Next.dll", + "lib/netcoreapp3.1/BCrypt.Net-Next.xml", + "lib/netstandard2.0/BCrypt.Net-Next.dll", + "lib/netstandard2.0/BCrypt.Net-Next.xml", + "lib/netstandard2.1/BCrypt.Net-Next.dll", + "lib/netstandard2.1/BCrypt.Net-Next.xml" + ] + }, + "ClosedXML/0.97.0": { + "sha512": "L+uiMgnyd5s11YSGmPWmJ30Rg57BNqgOxabfYmFaqVjqOGM5TQv2olc9E/1qiEZzxyR8pgFIGAEcK4yFzN2S6g==", + "type": "package", + "path": "closedxml/0.97.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "closedxml.0.97.0.nupkg.sha512", + "closedxml.nuspec", + "lib/netstandard2.0/ClosedXML.dll", + "lib/netstandard2.0/ClosedXML.xml", + "nuget-logo.png" + ] + }, + "Dapper/2.0.123": { + "sha512": "RDFF4rBLLmbpi6pwkY7q/M6UXHRJEOerplDGE5jwEkP/JGJnBauAClYavNKJPW1yOTWRPIyfj4is3EaJxQXILQ==", + "type": "package", + "path": "dapper/2.0.123", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Dapper.png", + "dapper.2.0.123.nupkg.sha512", + "dapper.nuspec", + "lib/net461/Dapper.dll", + "lib/net461/Dapper.xml", + "lib/net5.0/Dapper.dll", + "lib/net5.0/Dapper.xml", + "lib/netstandard2.0/Dapper.dll", + "lib/netstandard2.0/Dapper.xml" + ] + }, + "Dapper.FluentMap/2.0.0": { + "sha512": "UFSBuYreRQqOQfzSJ2HOnLvBolg5VFfBjS30ohM8DT4Yra/m+bEKAjVTmCBM1VDahWsPSsKqjX5eLR37MB/O+Q==", + "type": "package", + "path": "dapper.fluentmap/2.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "dapper.fluentmap.2.0.0.nupkg.sha512", + "dapper.fluentmap.nuspec", + "lib/netstandard2.0/Dapper.FluentMap.dll", + "lib/netstandard2.0/Dapper.FluentMap.xml" + ] + }, + "DinkToPdf/1.0.8": { + "sha512": "wJDlcNXjQ+OnBFwh3LBeAXgrXqlKl0RsgN60XpxEFbyqzdaG9ASb5HTXQjXQPaBguSCOrGZZESPnpcng34TEkw==", + "type": "package", + "path": "dinktopdf/1.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "dinktopdf.1.0.8.nupkg.sha512", + "dinktopdf.nuspec", + "lib/netstandard1.6/DinkToPdf.dll", + "lib/netstandard1.6/DinkToPdf.pdb", + "lib/netstandard1.6/DinkToPdf.xml" + ] + }, + "DocumentFormat.OpenXml/2.19.0": { + "sha512": "BLFqodowHZHR/A/sKU/6e+63J5ONWDdv8hEuSZOUiBfGFuVmsG9P3o+LMSq+dajNWE1q+lqVSa1H5FuhLX8/fA==", + "type": "package", + "path": "documentformat.openxml/2.19.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "documentformat.openxml.2.19.0.nupkg.sha512", + "documentformat.openxml.nuspec", + "icon.png", + "lib/net35/DocumentFormat.OpenXml.dll", + "lib/net35/DocumentFormat.OpenXml.xml", + "lib/net40/DocumentFormat.OpenXml.dll", + "lib/net40/DocumentFormat.OpenXml.xml", + "lib/net46/DocumentFormat.OpenXml.dll", + "lib/net46/DocumentFormat.OpenXml.xml", + "lib/net6.0/DocumentFormat.OpenXml.dll", + "lib/net6.0/DocumentFormat.OpenXml.xml", + "lib/netstandard1.3/DocumentFormat.OpenXml.dll", + "lib/netstandard1.3/DocumentFormat.OpenXml.xml", + "lib/netstandard2.0/DocumentFormat.OpenXml.dll", + "lib/netstandard2.0/DocumentFormat.OpenXml.xml" + ] + }, + "ExcelDataReader/3.6.0": { + "sha512": "eXyxTwG7EEWpgQX3juZ2KcndqTqm/ydx9GXS2lUiMJU54U4h5eXdygRtVgINv0t60ezPWEb+lL7uM7Q+wm5BBA==", + "type": "package", + "path": "exceldatareader/3.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "exceldatareader.3.6.0.nupkg.sha512", + "exceldatareader.nuspec", + "lib/net20/ExcelDataReader.dll", + "lib/net20/ExcelDataReader.pdb", + "lib/net20/ExcelDataReader.xml", + "lib/net45/ExcelDataReader.dll", + "lib/net45/ExcelDataReader.pdb", + "lib/net45/ExcelDataReader.xml", + "lib/netstandard1.3/ExcelDataReader.dll", + "lib/netstandard1.3/ExcelDataReader.pdb", + "lib/netstandard1.3/ExcelDataReader.xml", + "lib/netstandard2.0/ExcelDataReader.dll", + "lib/netstandard2.0/ExcelDataReader.pdb", + "lib/netstandard2.0/ExcelDataReader.xml" + ] + }, + "ExcelDataReader.DataSet/3.6.0": { + "sha512": "miW3sWmPXnLM38YadRIfnhL4W4QZajpS6Q/OqsOpFJU5ct8h+M/fMpbGMm5INtsMP0Y1k0WK0stIfSW3RP31Xg==", + "type": "package", + "path": "exceldatareader.dataset/3.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "exceldatareader.dataset.3.6.0.nupkg.sha512", + "exceldatareader.dataset.nuspec", + "lib/net20/ExcelDataReader.DataSet.dll", + "lib/net20/ExcelDataReader.DataSet.pdb", + "lib/net20/ExcelDataReader.DataSet.xml", + "lib/net35/ExcelDataReader.DataSet.dll", + "lib/net35/ExcelDataReader.DataSet.pdb", + "lib/net35/ExcelDataReader.DataSet.xml", + "lib/netstandard2.0/ExcelDataReader.DataSet.dll", + "lib/netstandard2.0/ExcelDataReader.DataSet.pdb", + "lib/netstandard2.0/ExcelDataReader.DataSet.xml" + ] + }, + "ExcelNumberFormat/1.1.0": { + "sha512": "R3BVHPs9O+RkExbZYTGT0+9HLbi8ZrNij1Yziyw6znd3J7P3uoIR07uwTLGOogtz1p6+0sna66eBoXu7tBiVQA==", + "type": "package", + "path": "excelnumberformat/1.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "excelnumberformat.1.1.0.nupkg.sha512", + "excelnumberformat.nuspec", + "icon.png", + "lib/net20/ExcelNumberFormat.dll", + "lib/net20/ExcelNumberFormat.xml", + "lib/netstandard1.0/ExcelNumberFormat.dll", + "lib/netstandard1.0/ExcelNumberFormat.xml", + "lib/netstandard2.0/ExcelNumberFormat.dll", + "lib/netstandard2.0/ExcelNumberFormat.xml" + ] + }, + "Irony.NetCore/1.0.11": { + "sha512": "/2MCkqdhEjPiSTZKYXg6u9AO9o3m68biqcFHAnM28WdnrcZii2vYbmKPzT5ejByyV72FUlygOtHBMt8SLnUyNw==", + "type": "package", + "path": "irony.netcore/1.0.11", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "irony.netcore.1.0.11.nupkg.sha512", + "irony.netcore.nuspec", + "lib/net452/Irony.dll", + "lib/net461/Irony.dll", + "lib/netstandard1.6/Irony.dll" + ] + }, + "Microsoft.AspNetCore.Authentication.JwtBearer/6.0.2": { + "sha512": "piqHQnFONTynowTNuMDqCyL2oWSVrnoDhwc7iywwl4VG0Y2WCbpyoYQyiXlHpyc9htWy2KcM2cAe2twC4gBt8w==", + "type": "package", + "path": "microsoft.aspnetcore.authentication.jwtbearer/6.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net6.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll", + "lib/net6.0/Microsoft.AspNetCore.Authentication.JwtBearer.xml", + "microsoft.aspnetcore.authentication.jwtbearer.6.0.2.nupkg.sha512", + "microsoft.aspnetcore.authentication.jwtbearer.nuspec" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "sha512": "K63Y4hORbBcKLWH5wnKgzyn7TOfYzevIEwIedQHBIkmkEBA9SCqgvom+XTuE+fAFGvINGkhFItaZ2dvMGdT5iw==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/1.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.1.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "ref/net461/Microsoft.Bcl.AsyncInterfaces.dll", + "ref/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.CSharp/4.7.0": { + "sha512": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", + "type": "package", + "path": "microsoft.csharp/4.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/Microsoft.CSharp.dll", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.3/Microsoft.CSharp.dll", + "lib/netstandard2.0/Microsoft.CSharp.dll", + "lib/netstandard2.0/Microsoft.CSharp.xml", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/uap10.0.16299/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "microsoft.csharp.4.7.0.nupkg.sha512", + "microsoft.csharp.nuspec", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/Microsoft.CSharp.dll", + "ref/netcore50/Microsoft.CSharp.xml", + "ref/netcore50/de/Microsoft.CSharp.xml", + "ref/netcore50/es/Microsoft.CSharp.xml", + "ref/netcore50/fr/Microsoft.CSharp.xml", + "ref/netcore50/it/Microsoft.CSharp.xml", + "ref/netcore50/ja/Microsoft.CSharp.xml", + "ref/netcore50/ko/Microsoft.CSharp.xml", + "ref/netcore50/ru/Microsoft.CSharp.xml", + "ref/netcore50/zh-hans/Microsoft.CSharp.xml", + "ref/netcore50/zh-hant/Microsoft.CSharp.xml", + "ref/netcoreapp2.0/_._", + "ref/netstandard1.0/Microsoft.CSharp.dll", + "ref/netstandard1.0/Microsoft.CSharp.xml", + "ref/netstandard1.0/de/Microsoft.CSharp.xml", + "ref/netstandard1.0/es/Microsoft.CSharp.xml", + "ref/netstandard1.0/fr/Microsoft.CSharp.xml", + "ref/netstandard1.0/it/Microsoft.CSharp.xml", + "ref/netstandard1.0/ja/Microsoft.CSharp.xml", + "ref/netstandard1.0/ko/Microsoft.CSharp.xml", + "ref/netstandard1.0/ru/Microsoft.CSharp.xml", + "ref/netstandard1.0/zh-hans/Microsoft.CSharp.xml", + "ref/netstandard1.0/zh-hant/Microsoft.CSharp.xml", + "ref/netstandard2.0/Microsoft.CSharp.dll", + "ref/netstandard2.0/Microsoft.CSharp.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/uap10.0.16299/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.Data.SqlClient/4.1.0": { + "sha512": "o/sIRlcKEcI9vg5z9USqJ/VCxtUUBYEOXYr4TrkMNu+gGBh0KfUi06Jqpe+xZgeoxcqYruV9dLOn046uFA4vHQ==", + "type": "package", + "path": "microsoft.data.sqlclient/4.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "dotnet.png", + "lib/net461/Microsoft.Data.SqlClient.dll", + "lib/net461/Microsoft.Data.SqlClient.pdb", + "lib/net461/Microsoft.Data.SqlClient.xml", + "lib/net461/de/Microsoft.Data.SqlClient.resources.dll", + "lib/net461/es/Microsoft.Data.SqlClient.resources.dll", + "lib/net461/fr/Microsoft.Data.SqlClient.resources.dll", + "lib/net461/it/Microsoft.Data.SqlClient.resources.dll", + "lib/net461/ja/Microsoft.Data.SqlClient.resources.dll", + "lib/net461/ko/Microsoft.Data.SqlClient.resources.dll", + "lib/net461/pt-BR/Microsoft.Data.SqlClient.resources.dll", + "lib/net461/ru/Microsoft.Data.SqlClient.resources.dll", + "lib/net461/zh-Hans/Microsoft.Data.SqlClient.resources.dll", + "lib/net461/zh-Hant/Microsoft.Data.SqlClient.resources.dll", + "lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll", + "lib/netcoreapp3.1/Microsoft.Data.SqlClient.pdb", + "lib/netcoreapp3.1/Microsoft.Data.SqlClient.xml", + "lib/netstandard2.0/Microsoft.Data.SqlClient.dll", + "lib/netstandard2.0/Microsoft.Data.SqlClient.pdb", + "lib/netstandard2.0/Microsoft.Data.SqlClient.xml", + "lib/netstandard2.1/Microsoft.Data.SqlClient.dll", + "lib/netstandard2.1/Microsoft.Data.SqlClient.pdb", + "lib/netstandard2.1/Microsoft.Data.SqlClient.xml", + "microsoft.data.sqlclient.4.1.0.nupkg.sha512", + "microsoft.data.sqlclient.nuspec", + "ref/net461/Microsoft.Data.SqlClient.dll", + "ref/net461/Microsoft.Data.SqlClient.pdb", + "ref/net461/Microsoft.Data.SqlClient.xml", + "ref/netcoreapp3.1/Microsoft.Data.SqlClient.dll", + "ref/netcoreapp3.1/Microsoft.Data.SqlClient.pdb", + "ref/netcoreapp3.1/Microsoft.Data.SqlClient.xml", + "ref/netstandard2.0/Microsoft.Data.SqlClient.dll", + "ref/netstandard2.0/Microsoft.Data.SqlClient.pdb", + "ref/netstandard2.0/Microsoft.Data.SqlClient.xml", + "ref/netstandard2.1/Microsoft.Data.SqlClient.dll", + "ref/netstandard2.1/Microsoft.Data.SqlClient.pdb", + "ref/netstandard2.1/Microsoft.Data.SqlClient.xml", + "runtimes/unix/lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll", + "runtimes/unix/lib/netcoreapp3.1/Microsoft.Data.SqlClient.pdb", + "runtimes/unix/lib/netstandard2.0/Microsoft.Data.SqlClient.dll", + "runtimes/unix/lib/netstandard2.0/Microsoft.Data.SqlClient.pdb", + "runtimes/unix/lib/netstandard2.1/Microsoft.Data.SqlClient.dll", + "runtimes/unix/lib/netstandard2.1/Microsoft.Data.SqlClient.pdb", + "runtimes/win/lib/net461/Microsoft.Data.SqlClient.dll", + "runtimes/win/lib/net461/Microsoft.Data.SqlClient.pdb", + "runtimes/win/lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll", + "runtimes/win/lib/netcoreapp3.1/Microsoft.Data.SqlClient.pdb", + "runtimes/win/lib/netstandard2.0/Microsoft.Data.SqlClient.dll", + "runtimes/win/lib/netstandard2.0/Microsoft.Data.SqlClient.pdb", + "runtimes/win/lib/netstandard2.1/Microsoft.Data.SqlClient.dll", + "runtimes/win/lib/netstandard2.1/Microsoft.Data.SqlClient.pdb" + ] + }, + "Microsoft.Data.SqlClient.SNI.runtime/4.0.0": { + "sha512": "wtLlRwQX7YoBUYm25xBjJ3UsuLgycme1xXqDn8t3S5kPCWiZrx8uOkyZHLKzH4kkCiQ9m2/J5JeCKNRbZNn3Qg==", + "type": "package", + "path": "microsoft.data.sqlclient.sni.runtime/4.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.txt", + "dotnet.png", + "microsoft.data.sqlclient.sni.runtime.4.0.0.nupkg.sha512", + "microsoft.data.sqlclient.sni.runtime.nuspec", + "runtimes/win-arm/native/Microsoft.Data.SqlClient.SNI.dll", + "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll", + "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll", + "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll" + ] + }, + "Microsoft.Extensions.ApiDescription.Server/3.0.0": { + "sha512": "LH4OE/76F6sOCslif7+Xh3fS/wUUrE5ryeXAMcoCnuwOQGT5Smw0p57IgDh/pHgHaGz/e+AmEQb7pRgb++wt0w==", + "type": "package", + "path": "microsoft.extensions.apidescription.server/3.0.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "build/Microsoft.Extensions.ApiDescription.Server.props", + "build/Microsoft.Extensions.ApiDescription.Server.targets", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets", + "microsoft.extensions.apidescription.server.3.0.0.nupkg.sha512", + "microsoft.extensions.apidescription.server.nuspec", + "tools/Newtonsoft.Json.dll", + "tools/dotnet-getdocument.deps.json", + "tools/dotnet-getdocument.dll", + "tools/dotnet-getdocument.runtimeconfig.json", + "tools/net461-x86/GetDocument.Insider.exe", + "tools/net461-x86/GetDocument.Insider.exe.config", + "tools/net461/GetDocument.Insider.exe", + "tools/net461/GetDocument.Insider.exe.config", + "tools/netcoreapp2.1/GetDocument.Insider.deps.json", + "tools/netcoreapp2.1/GetDocument.Insider.dll", + "tools/netcoreapp2.1/GetDocument.Insider.runtimeconfig.json" + ] + }, + "Microsoft.Identity.Client/4.22.0": { + "sha512": "GlamU9rs8cSVIx9WSGv5QKpt66KkE+ImxNa/wNZZUJ3knt3PM98T9sOY8B7NcEfhw7NoxU2/0TSOcmnRSJQgqw==", + "type": "package", + "path": "microsoft.identity.client/4.22.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/monoandroid10.0/Microsoft.Identity.Client.dll", + "lib/monoandroid10.0/Microsoft.Identity.Client.xml", + "lib/monoandroid90/Microsoft.Identity.Client.dll", + "lib/monoandroid90/Microsoft.Identity.Client.xml", + "lib/net45/Microsoft.Identity.Client.dll", + "lib/net45/Microsoft.Identity.Client.xml", + "lib/net461/Microsoft.Identity.Client.dll", + "lib/net461/Microsoft.Identity.Client.xml", + "lib/netcoreapp2.1/Microsoft.Identity.Client.dll", + "lib/netcoreapp2.1/Microsoft.Identity.Client.xml", + "lib/netstandard1.3/Microsoft.Identity.Client.dll", + "lib/netstandard1.3/Microsoft.Identity.Client.xml", + "lib/uap10.0/Microsoft.Identity.Client.dll", + "lib/uap10.0/Microsoft.Identity.Client.pri", + "lib/uap10.0/Microsoft.Identity.Client.xml", + "lib/xamarinios10/Microsoft.Identity.Client.dll", + "lib/xamarinios10/Microsoft.Identity.Client.xml", + "lib/xamarinmac20/Microsoft.Identity.Client.dll", + "lib/xamarinmac20/Microsoft.Identity.Client.xml", + "microsoft.identity.client.4.22.0.nupkg.sha512", + "microsoft.identity.client.nuspec", + "ref/MonoAndroid10.0/Microsoft.Identity.Client.dll", + "ref/MonoAndroid10.0/Microsoft.Identity.Client.xml", + "ref/MonoAndroid9.0/Microsoft.Identity.Client.dll", + "ref/MonoAndroid9.0/Microsoft.Identity.Client.xml", + "ref/Xamarin.iOS10/Microsoft.Identity.Client.dll", + "ref/Xamarin.iOS10/Microsoft.Identity.Client.xml", + "ref/net45/Microsoft.Identity.Client.dll", + "ref/net45/Microsoft.Identity.Client.xml", + "ref/net461/Microsoft.Identity.Client.dll", + "ref/net461/Microsoft.Identity.Client.xml", + "ref/netcoreapp2.1/Microsoft.Identity.Client.dll", + "ref/netcoreapp2.1/Microsoft.Identity.Client.xml", + "ref/netstandard1.3/Microsoft.Identity.Client.dll", + "ref/netstandard1.3/Microsoft.Identity.Client.xml", + "ref/uap10.0/Microsoft.Identity.Client.dll", + "ref/uap10.0/Microsoft.Identity.Client.xml", + "ref/xamarinmac20/Microsoft.Identity.Client.dll", + "ref/xamarinmac20/Microsoft.Identity.Client.xml" + ] + }, + "Microsoft.Identity.Client.Extensions.Msal/2.16.5": { + "sha512": "VlGUZEpF8KP/GCfFI59sdE0WA0o9quqwM1YQY0dSp6jpGy5EOBkureaybLfpwCuYUUjQbLkN2p7neUIcQCfbzA==", + "type": "package", + "path": "microsoft.identity.client.extensions.msal/2.16.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net45/Microsoft.Identity.Client.Extensions.Msal.dll", + "lib/net45/Microsoft.Identity.Client.Extensions.Msal.xml", + "lib/netcoreapp2.1/Microsoft.Identity.Client.Extensions.Msal.dll", + "lib/netcoreapp2.1/Microsoft.Identity.Client.Extensions.Msal.xml", + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll", + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.xml", + "microsoft.identity.client.extensions.msal.2.16.5.nupkg.sha512", + "microsoft.identity.client.extensions.msal.nuspec" + ] + }, + "Microsoft.IdentityModel.Abstractions/6.19.0": { + "sha512": "SNDIcIdXeclk8lcwUtZMijCxBZ44krYG9at6kQMuds6I7zkiVvfYwOp394zI8tXFFDXu49Q6XFFTS59Exgw6xA==", + "type": "package", + "path": "microsoft.identitymodel.abstractions/6.19.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net45/Microsoft.IdentityModel.Abstractions.dll", + "lib/net45/Microsoft.IdentityModel.Abstractions.xml", + "lib/net461/Microsoft.IdentityModel.Abstractions.dll", + "lib/net461/Microsoft.IdentityModel.Abstractions.xml", + "lib/net472/Microsoft.IdentityModel.Abstractions.dll", + "lib/net472/Microsoft.IdentityModel.Abstractions.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", + "microsoft.identitymodel.abstractions.6.19.0.nupkg.sha512", + "microsoft.identitymodel.abstractions.nuspec" + ] + }, + "Microsoft.IdentityModel.JsonWebTokens/6.19.0": { + "sha512": "PMk1mP88y/dv6n1j9Xa6Go6Kl1bNsV4Z5+fmnd4FAOKtYFIGJOSN2VadCPqvm7h7FEPBlpqtbRr4yccefnBSoQ==", + "type": "package", + "path": "microsoft.identitymodel.jsonwebtokens/6.19.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net45/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net45/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "microsoft.identitymodel.jsonwebtokens.6.19.0.nupkg.sha512", + "microsoft.identitymodel.jsonwebtokens.nuspec" + ] + }, + "Microsoft.IdentityModel.Logging/6.19.0": { + "sha512": "773vzDzuwg+v+Jvsa+HOSPAZmMl1KztszdBErBPlXvNxZCvL52FrYlQblI6m1f3Pr9DtQt8jCI0RG6b1MajLgg==", + "type": "package", + "path": "microsoft.identitymodel.logging/6.19.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net45/Microsoft.IdentityModel.Logging.dll", + "lib/net45/Microsoft.IdentityModel.Logging.xml", + "lib/net461/Microsoft.IdentityModel.Logging.dll", + "lib/net461/Microsoft.IdentityModel.Logging.xml", + "lib/net472/Microsoft.IdentityModel.Logging.dll", + "lib/net472/Microsoft.IdentityModel.Logging.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", + "microsoft.identitymodel.logging.6.19.0.nupkg.sha512", + "microsoft.identitymodel.logging.nuspec" + ] + }, + "Microsoft.IdentityModel.Protocols/6.10.0": { + "sha512": "DFyXD0xylP+DknCT3hzJ7q/Q5qRNu0hO/gCU90O0ATdR0twZmlcuY9RNYaaDofXKVbzcShYNCFCGle2G/o8mkg==", + "type": "package", + "path": "microsoft.identitymodel.protocols/6.10.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net45/Microsoft.IdentityModel.Protocols.dll", + "lib/net45/Microsoft.IdentityModel.Protocols.xml", + "lib/net461/Microsoft.IdentityModel.Protocols.dll", + "lib/net461/Microsoft.IdentityModel.Protocols.xml", + "lib/net472/Microsoft.IdentityModel.Protocols.dll", + "lib/net472/Microsoft.IdentityModel.Protocols.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.xml", + "microsoft.identitymodel.protocols.6.10.0.nupkg.sha512", + "microsoft.identitymodel.protocols.nuspec" + ] + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/6.10.0": { + "sha512": "LVvMXAWPbPeEWTylDrxunlHH2wFyE4Mv0L4gZrJHC4HTESbWHquKZb/y/S8jgiQEDycOP0PDQvbG4RR/tr2TVQ==", + "type": "package", + "path": "microsoft.identitymodel.protocols.openidconnect/6.10.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net45/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net45/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "microsoft.identitymodel.protocols.openidconnect.6.10.0.nupkg.sha512", + "microsoft.identitymodel.protocols.openidconnect.nuspec" + ] + }, + "Microsoft.IdentityModel.Tokens/6.19.0": { + "sha512": "kmEuZo1+Q4CJIprBVOcZQ18to3WUbPaYE9HRAoK0hEhoh8cH0uA8oOOjff4N2gQ/gk79QrAJTbh0RI7vIZU7vA==", + "type": "package", + "path": "microsoft.identitymodel.tokens/6.19.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net45/Microsoft.IdentityModel.Tokens.dll", + "lib/net45/Microsoft.IdentityModel.Tokens.xml", + "lib/net461/Microsoft.IdentityModel.Tokens.dll", + "lib/net461/Microsoft.IdentityModel.Tokens.xml", + "lib/net472/Microsoft.IdentityModel.Tokens.dll", + "lib/net472/Microsoft.IdentityModel.Tokens.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", + "microsoft.identitymodel.tokens.6.19.0.nupkg.sha512", + "microsoft.identitymodel.tokens.nuspec" + ] + }, + "Microsoft.NETCore.Platforms/5.0.0": { + "sha512": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", + "type": "package", + "path": "microsoft.netcore.platforms/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netstandard1.0/_._", + "microsoft.netcore.platforms.5.0.0.nupkg.sha512", + "microsoft.netcore.platforms.nuspec", + "runtime.json", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.NETCore.Targets/1.1.0": { + "sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", + "type": "package", + "path": "microsoft.netcore.targets/1.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "microsoft.netcore.targets.1.1.0.nupkg.sha512", + "microsoft.netcore.targets.nuspec", + "runtime.json" + ] + }, + "Microsoft.OpenApi/1.2.3": { + "sha512": "Nug3rO+7Kl5/SBAadzSMAVgqDlfGjJZ0GenQrLywJ84XGKO0uRqkunz5Wyl0SDwcR71bAATXvSdbdzPrYRYKGw==", + "type": "package", + "path": "microsoft.openapi/1.2.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net46/Microsoft.OpenApi.dll", + "lib/net46/Microsoft.OpenApi.pdb", + "lib/net46/Microsoft.OpenApi.xml", + "lib/netstandard2.0/Microsoft.OpenApi.dll", + "lib/netstandard2.0/Microsoft.OpenApi.pdb", + "lib/netstandard2.0/Microsoft.OpenApi.xml", + "microsoft.openapi.1.2.3.nupkg.sha512", + "microsoft.openapi.nuspec" + ] + }, + "Microsoft.Win32.Primitives/4.3.0": { + "sha512": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "type": "package", + "path": "microsoft.win32.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/Microsoft.Win32.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "microsoft.win32.primitives.4.3.0.nupkg.sha512", + "microsoft.win32.primitives.nuspec", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/Microsoft.Win32.Primitives.dll", + "ref/netstandard1.3/Microsoft.Win32.Primitives.dll", + "ref/netstandard1.3/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/de/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/es/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/fr/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/it/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/ja/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/ko/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/ru/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/zh-hans/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/zh-hant/Microsoft.Win32.Primitives.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._" + ] + }, + "Microsoft.Win32.Registry/5.0.0": { + "sha512": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "type": "package", + "path": "microsoft.win32.registry/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/Microsoft.Win32.Registry.dll", + "lib/net461/Microsoft.Win32.Registry.dll", + "lib/net461/Microsoft.Win32.Registry.xml", + "lib/netstandard1.3/Microsoft.Win32.Registry.dll", + "lib/netstandard2.0/Microsoft.Win32.Registry.dll", + "lib/netstandard2.0/Microsoft.Win32.Registry.xml", + "microsoft.win32.registry.5.0.0.nupkg.sha512", + "microsoft.win32.registry.nuspec", + "ref/net46/Microsoft.Win32.Registry.dll", + "ref/net461/Microsoft.Win32.Registry.dll", + "ref/net461/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/Microsoft.Win32.Registry.dll", + "ref/netstandard1.3/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/de/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/es/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/fr/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/it/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/ja/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/ko/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/ru/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/zh-hans/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/zh-hant/Microsoft.Win32.Registry.xml", + "ref/netstandard2.0/Microsoft.Win32.Registry.dll", + "ref/netstandard2.0/Microsoft.Win32.Registry.xml", + "runtimes/win/lib/net46/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/net461/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/net461/Microsoft.Win32.Registry.xml", + "runtimes/win/lib/netstandard1.3/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.Win32.SystemEvents/5.0.0": { + "sha512": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", + "type": "package", + "path": "microsoft.win32.systemevents/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Win32.SystemEvents.dll", + "lib/net461/Microsoft.Win32.SystemEvents.xml", + "lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll", + "lib/netstandard2.0/Microsoft.Win32.SystemEvents.xml", + "microsoft.win32.systemevents.5.0.0.nupkg.sha512", + "microsoft.win32.systemevents.nuspec", + "ref/net461/Microsoft.Win32.SystemEvents.dll", + "ref/net461/Microsoft.Win32.SystemEvents.xml", + "ref/netstandard2.0/Microsoft.Win32.SystemEvents.dll", + "ref/netstandard2.0/Microsoft.Win32.SystemEvents.xml", + "runtimes/win/lib/netcoreapp2.0/Microsoft.Win32.SystemEvents.dll", + "runtimes/win/lib/netcoreapp2.0/Microsoft.Win32.SystemEvents.xml", + "runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll", + "runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.xml", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "NETStandard.Library/1.6.1": { + "sha512": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", + "type": "package", + "path": "netstandard.library/1.6.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "netstandard.library.1.6.1.nupkg.sha512", + "netstandard.library.nuspec" + ] + }, + "Newtonsoft.Json/13.0.1": { + "sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "type": "package", + "path": "newtonsoft.json/13.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "newtonsoft.json.13.0.1.nupkg.sha512", + "newtonsoft.json.nuspec", + "packageIcon.png" + ] + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "type": "package", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/debian.8-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "type": "package", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/fedora.23-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "type": "package", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/fedora.24-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.native.System/4.3.0": { + "sha512": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "type": "package", + "path": "runtime.native.system/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.4.3.0.nupkg.sha512", + "runtime.native.system.nuspec" + ] + }, + "runtime.native.System.IO.Compression/4.3.0": { + "sha512": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", + "type": "package", + "path": "runtime.native.system.io.compression/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.io.compression.4.3.0.nupkg.sha512", + "runtime.native.system.io.compression.nuspec" + ] + }, + "runtime.native.System.Net.Http/4.3.0": { + "sha512": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "type": "package", + "path": "runtime.native.system.net.http/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.net.http.4.3.0.nupkg.sha512", + "runtime.native.system.net.http.nuspec" + ] + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "sha512": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "type": "package", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", + "runtime.native.system.security.cryptography.apple.nuspec" + ] + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "type": "package", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.native.system.security.cryptography.openssl.nuspec" + ] + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "type": "package", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/opensuse.13.2-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "type": "package", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/opensuse.42.1-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "sha512": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "type": "package", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", + "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.nuspec", + "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.Apple.dylib" + ] + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "type": "package", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.OpenSsl.dylib" + ] + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "type": "package", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/rhel.7-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "type": "package", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/ubuntu.14.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "type": "package", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/ubuntu.16.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "type": "package", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/ubuntu.16.10-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "SixLabors.Fonts/1.0.0-beta18": { + "sha512": "evykNmy/kEE9EAEKgZm3MNUYXuMHFfmcLUNPw7Ho5q7OI96GFkkIxBm+QaKOTPBKw+L0AjKOs+ArVg8P40Ac9g==", + "type": "package", + "path": "sixlabors.fonts/1.0.0-beta18", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netcoreapp3.1/SixLabors.Fonts.dll", + "lib/netcoreapp3.1/SixLabors.Fonts.xml", + "lib/netstandard2.0/SixLabors.Fonts.dll", + "lib/netstandard2.0/SixLabors.Fonts.xml", + "lib/netstandard2.1/SixLabors.Fonts.dll", + "lib/netstandard2.1/SixLabors.Fonts.xml", + "sixlabors.fonts.1.0.0-beta18.nupkg.sha512", + "sixlabors.fonts.128.png", + "sixlabors.fonts.nuspec" + ] + }, + "Swashbuckle.AspNetCore/6.2.3": { + "sha512": "cnzQDn0Le+hInsw2SYwlOhOCPXpYi/szcvnyqZJ12v+QyrLBwAmWXBg6RIyHB18s/mLeywC+Rg2O9ndz0IUNYQ==", + "type": "package", + "path": "swashbuckle.aspnetcore/6.2.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "build/Swashbuckle.AspNetCore.props", + "swashbuckle.aspnetcore.6.2.3.nupkg.sha512", + "swashbuckle.aspnetcore.nuspec" + ] + }, + "Swashbuckle.AspNetCore.Swagger/6.2.3": { + "sha512": "qOF7j1sL0bWm8g/qqHVPCvkO3JlVvUIB8WfC98kSh6BT5y5DAnBNctfac7XR5EZf+eD7/WasvANncTqwZYfmWQ==", + "type": "package", + "path": "swashbuckle.aspnetcore.swagger/6.2.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net5.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net5.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net5.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net6.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net6.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.xml", + "swashbuckle.aspnetcore.swagger.6.2.3.nupkg.sha512", + "swashbuckle.aspnetcore.swagger.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/6.2.3": { + "sha512": "+Xq7WdMCCfcXlnbLJVFNgY8ITdP2TRYIlpbt6IKzDw5FwFxdi9lBfNDtcT+/wkKwX70iBBFmXldnnd02/VO72A==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggergen/6.2.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "swashbuckle.aspnetcore.swaggergen.6.2.3.nupkg.sha512", + "swashbuckle.aspnetcore.swaggergen.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerUI/6.2.3": { + "sha512": "bCRI87uKJVb4G+KURWm8LQrL64St04dEFZcF6gIM67Zc0Sr/N47EO83ybLMYOvfNdO1DCv8xwPcrz9J/VEhQ5g==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggerui/6.2.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "swashbuckle.aspnetcore.swaggerui.6.2.3.nupkg.sha512", + "swashbuckle.aspnetcore.swaggerui.nuspec" + ] + }, + "System.AppContext/4.3.0": { + "sha512": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", + "type": "package", + "path": "system.appcontext/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.AppContext.dll", + "lib/net463/System.AppContext.dll", + "lib/netcore50/System.AppContext.dll", + "lib/netstandard1.6/System.AppContext.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.AppContext.dll", + "ref/net463/System.AppContext.dll", + "ref/netstandard/_._", + "ref/netstandard1.3/System.AppContext.dll", + "ref/netstandard1.3/System.AppContext.xml", + "ref/netstandard1.3/de/System.AppContext.xml", + "ref/netstandard1.3/es/System.AppContext.xml", + "ref/netstandard1.3/fr/System.AppContext.xml", + "ref/netstandard1.3/it/System.AppContext.xml", + "ref/netstandard1.3/ja/System.AppContext.xml", + "ref/netstandard1.3/ko/System.AppContext.xml", + "ref/netstandard1.3/ru/System.AppContext.xml", + "ref/netstandard1.3/zh-hans/System.AppContext.xml", + "ref/netstandard1.3/zh-hant/System.AppContext.xml", + "ref/netstandard1.6/System.AppContext.dll", + "ref/netstandard1.6/System.AppContext.xml", + "ref/netstandard1.6/de/System.AppContext.xml", + "ref/netstandard1.6/es/System.AppContext.xml", + "ref/netstandard1.6/fr/System.AppContext.xml", + "ref/netstandard1.6/it/System.AppContext.xml", + "ref/netstandard1.6/ja/System.AppContext.xml", + "ref/netstandard1.6/ko/System.AppContext.xml", + "ref/netstandard1.6/ru/System.AppContext.xml", + "ref/netstandard1.6/zh-hans/System.AppContext.xml", + "ref/netstandard1.6/zh-hant/System.AppContext.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.AppContext.dll", + "system.appcontext.4.3.0.nupkg.sha512", + "system.appcontext.nuspec" + ] + }, + "System.Buffers/4.5.1": { + "sha512": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==", + "type": "package", + "path": "system.buffers/4.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Buffers.dll", + "lib/net461/System.Buffers.xml", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.1/System.Buffers.dll", + "lib/netstandard1.1/System.Buffers.xml", + "lib/netstandard2.0/System.Buffers.dll", + "lib/netstandard2.0/System.Buffers.xml", + "lib/uap10.0.16299/_._", + "ref/net45/System.Buffers.dll", + "ref/net45/System.Buffers.xml", + "ref/netcoreapp2.0/_._", + "ref/netstandard1.1/System.Buffers.dll", + "ref/netstandard1.1/System.Buffers.xml", + "ref/netstandard2.0/System.Buffers.dll", + "ref/netstandard2.0/System.Buffers.xml", + "ref/uap10.0.16299/_._", + "system.buffers.4.5.1.nupkg.sha512", + "system.buffers.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Collections/4.3.0": { + "sha512": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "type": "package", + "path": "system.collections/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Collections.dll", + "ref/netcore50/System.Collections.xml", + "ref/netcore50/de/System.Collections.xml", + "ref/netcore50/es/System.Collections.xml", + "ref/netcore50/fr/System.Collections.xml", + "ref/netcore50/it/System.Collections.xml", + "ref/netcore50/ja/System.Collections.xml", + "ref/netcore50/ko/System.Collections.xml", + "ref/netcore50/ru/System.Collections.xml", + "ref/netcore50/zh-hans/System.Collections.xml", + "ref/netcore50/zh-hant/System.Collections.xml", + "ref/netstandard1.0/System.Collections.dll", + "ref/netstandard1.0/System.Collections.xml", + "ref/netstandard1.0/de/System.Collections.xml", + "ref/netstandard1.0/es/System.Collections.xml", + "ref/netstandard1.0/fr/System.Collections.xml", + "ref/netstandard1.0/it/System.Collections.xml", + "ref/netstandard1.0/ja/System.Collections.xml", + "ref/netstandard1.0/ko/System.Collections.xml", + "ref/netstandard1.0/ru/System.Collections.xml", + "ref/netstandard1.0/zh-hans/System.Collections.xml", + "ref/netstandard1.0/zh-hant/System.Collections.xml", + "ref/netstandard1.3/System.Collections.dll", + "ref/netstandard1.3/System.Collections.xml", + "ref/netstandard1.3/de/System.Collections.xml", + "ref/netstandard1.3/es/System.Collections.xml", + "ref/netstandard1.3/fr/System.Collections.xml", + "ref/netstandard1.3/it/System.Collections.xml", + "ref/netstandard1.3/ja/System.Collections.xml", + "ref/netstandard1.3/ko/System.Collections.xml", + "ref/netstandard1.3/ru/System.Collections.xml", + "ref/netstandard1.3/zh-hans/System.Collections.xml", + "ref/netstandard1.3/zh-hant/System.Collections.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.collections.4.3.0.nupkg.sha512", + "system.collections.nuspec" + ] + }, + "System.Collections.Concurrent/4.3.0": { + "sha512": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "type": "package", + "path": "system.collections.concurrent/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Collections.Concurrent.dll", + "lib/netstandard1.3/System.Collections.Concurrent.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Collections.Concurrent.dll", + "ref/netcore50/System.Collections.Concurrent.xml", + "ref/netcore50/de/System.Collections.Concurrent.xml", + "ref/netcore50/es/System.Collections.Concurrent.xml", + "ref/netcore50/fr/System.Collections.Concurrent.xml", + "ref/netcore50/it/System.Collections.Concurrent.xml", + "ref/netcore50/ja/System.Collections.Concurrent.xml", + "ref/netcore50/ko/System.Collections.Concurrent.xml", + "ref/netcore50/ru/System.Collections.Concurrent.xml", + "ref/netcore50/zh-hans/System.Collections.Concurrent.xml", + "ref/netcore50/zh-hant/System.Collections.Concurrent.xml", + "ref/netstandard1.1/System.Collections.Concurrent.dll", + "ref/netstandard1.1/System.Collections.Concurrent.xml", + "ref/netstandard1.1/de/System.Collections.Concurrent.xml", + "ref/netstandard1.1/es/System.Collections.Concurrent.xml", + "ref/netstandard1.1/fr/System.Collections.Concurrent.xml", + "ref/netstandard1.1/it/System.Collections.Concurrent.xml", + "ref/netstandard1.1/ja/System.Collections.Concurrent.xml", + "ref/netstandard1.1/ko/System.Collections.Concurrent.xml", + "ref/netstandard1.1/ru/System.Collections.Concurrent.xml", + "ref/netstandard1.1/zh-hans/System.Collections.Concurrent.xml", + "ref/netstandard1.1/zh-hant/System.Collections.Concurrent.xml", + "ref/netstandard1.3/System.Collections.Concurrent.dll", + "ref/netstandard1.3/System.Collections.Concurrent.xml", + "ref/netstandard1.3/de/System.Collections.Concurrent.xml", + "ref/netstandard1.3/es/System.Collections.Concurrent.xml", + "ref/netstandard1.3/fr/System.Collections.Concurrent.xml", + "ref/netstandard1.3/it/System.Collections.Concurrent.xml", + "ref/netstandard1.3/ja/System.Collections.Concurrent.xml", + "ref/netstandard1.3/ko/System.Collections.Concurrent.xml", + "ref/netstandard1.3/ru/System.Collections.Concurrent.xml", + "ref/netstandard1.3/zh-hans/System.Collections.Concurrent.xml", + "ref/netstandard1.3/zh-hant/System.Collections.Concurrent.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.collections.concurrent.4.3.0.nupkg.sha512", + "system.collections.concurrent.nuspec" + ] + }, + "System.Collections.NonGeneric/4.3.0": { + "sha512": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "type": "package", + "path": "system.collections.nongeneric/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Collections.NonGeneric.dll", + "lib/netstandard1.3/System.Collections.NonGeneric.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Collections.NonGeneric.dll", + "ref/netstandard1.3/System.Collections.NonGeneric.dll", + "ref/netstandard1.3/System.Collections.NonGeneric.xml", + "ref/netstandard1.3/de/System.Collections.NonGeneric.xml", + "ref/netstandard1.3/es/System.Collections.NonGeneric.xml", + "ref/netstandard1.3/fr/System.Collections.NonGeneric.xml", + "ref/netstandard1.3/it/System.Collections.NonGeneric.xml", + "ref/netstandard1.3/ja/System.Collections.NonGeneric.xml", + "ref/netstandard1.3/ko/System.Collections.NonGeneric.xml", + "ref/netstandard1.3/ru/System.Collections.NonGeneric.xml", + "ref/netstandard1.3/zh-hans/System.Collections.NonGeneric.xml", + "ref/netstandard1.3/zh-hant/System.Collections.NonGeneric.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.collections.nongeneric.4.3.0.nupkg.sha512", + "system.collections.nongeneric.nuspec" + ] + }, + "System.Collections.Specialized/4.3.0": { + "sha512": "Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", + "type": "package", + "path": "system.collections.specialized/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Collections.Specialized.dll", + "lib/netstandard1.3/System.Collections.Specialized.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Collections.Specialized.dll", + "ref/netstandard1.3/System.Collections.Specialized.dll", + "ref/netstandard1.3/System.Collections.Specialized.xml", + "ref/netstandard1.3/de/System.Collections.Specialized.xml", + "ref/netstandard1.3/es/System.Collections.Specialized.xml", + "ref/netstandard1.3/fr/System.Collections.Specialized.xml", + "ref/netstandard1.3/it/System.Collections.Specialized.xml", + "ref/netstandard1.3/ja/System.Collections.Specialized.xml", + "ref/netstandard1.3/ko/System.Collections.Specialized.xml", + "ref/netstandard1.3/ru/System.Collections.Specialized.xml", + "ref/netstandard1.3/zh-hans/System.Collections.Specialized.xml", + "ref/netstandard1.3/zh-hant/System.Collections.Specialized.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.collections.specialized.4.3.0.nupkg.sha512", + "system.collections.specialized.nuspec" + ] + }, + "System.Configuration.ConfigurationManager/5.0.0": { + "sha512": "aM7cbfEfVNlEEOj3DsZP+2g9NRwbkyiAv2isQEzw7pnkDg9ekCU2m1cdJLM02Uq691OaCS91tooaxcEn8d0q5w==", + "type": "package", + "path": "system.configuration.configurationmanager/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Configuration.ConfigurationManager.dll", + "lib/net461/System.Configuration.ConfigurationManager.xml", + "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll", + "lib/netstandard2.0/System.Configuration.ConfigurationManager.xml", + "ref/net461/System.Configuration.ConfigurationManager.dll", + "ref/net461/System.Configuration.ConfigurationManager.xml", + "ref/netstandard2.0/System.Configuration.ConfigurationManager.dll", + "ref/netstandard2.0/System.Configuration.ConfigurationManager.xml", + "system.configuration.configurationmanager.5.0.0.nupkg.sha512", + "system.configuration.configurationmanager.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Console/4.3.0": { + "sha512": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", + "type": "package", + "path": "system.console/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Console.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Console.dll", + "ref/netstandard1.3/System.Console.dll", + "ref/netstandard1.3/System.Console.xml", + "ref/netstandard1.3/de/System.Console.xml", + "ref/netstandard1.3/es/System.Console.xml", + "ref/netstandard1.3/fr/System.Console.xml", + "ref/netstandard1.3/it/System.Console.xml", + "ref/netstandard1.3/ja/System.Console.xml", + "ref/netstandard1.3/ko/System.Console.xml", + "ref/netstandard1.3/ru/System.Console.xml", + "ref/netstandard1.3/zh-hans/System.Console.xml", + "ref/netstandard1.3/zh-hant/System.Console.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.console.4.3.0.nupkg.sha512", + "system.console.nuspec" + ] + }, + "System.Diagnostics.Debug/4.3.0": { + "sha512": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "type": "package", + "path": "system.diagnostics.debug/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Diagnostics.Debug.dll", + "ref/netcore50/System.Diagnostics.Debug.xml", + "ref/netcore50/de/System.Diagnostics.Debug.xml", + "ref/netcore50/es/System.Diagnostics.Debug.xml", + "ref/netcore50/fr/System.Diagnostics.Debug.xml", + "ref/netcore50/it/System.Diagnostics.Debug.xml", + "ref/netcore50/ja/System.Diagnostics.Debug.xml", + "ref/netcore50/ko/System.Diagnostics.Debug.xml", + "ref/netcore50/ru/System.Diagnostics.Debug.xml", + "ref/netcore50/zh-hans/System.Diagnostics.Debug.xml", + "ref/netcore50/zh-hant/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/System.Diagnostics.Debug.dll", + "ref/netstandard1.0/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/de/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/es/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/fr/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/it/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/ja/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/ko/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/ru/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/zh-hans/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/zh-hant/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/System.Diagnostics.Debug.dll", + "ref/netstandard1.3/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/de/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/es/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/fr/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/it/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/ja/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/ko/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/ru/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/zh-hans/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/zh-hant/System.Diagnostics.Debug.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.diagnostics.debug.4.3.0.nupkg.sha512", + "system.diagnostics.debug.nuspec" + ] + }, + "System.Diagnostics.DiagnosticSource/5.0.0": { + "sha512": "tCQTzPsGZh/A9LhhA6zrqCRV4hOHsK90/G7q3Khxmn6tnB1PuNU0cRaKANP2AWcF9bn0zsuOoZOSrHuJk6oNBA==", + "type": "package", + "path": "system.diagnostics.diagnosticsource/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net45/System.Diagnostics.DiagnosticSource.dll", + "lib/net45/System.Diagnostics.DiagnosticSource.xml", + "lib/net46/System.Diagnostics.DiagnosticSource.dll", + "lib/net46/System.Diagnostics.DiagnosticSource.xml", + "lib/net5.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net5.0/System.Diagnostics.DiagnosticSource.xml", + "lib/netstandard1.1/System.Diagnostics.DiagnosticSource.dll", + "lib/netstandard1.1/System.Diagnostics.DiagnosticSource.xml", + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll", + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.xml", + "lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.dll", + "lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.xml", + "system.diagnostics.diagnosticsource.5.0.0.nupkg.sha512", + "system.diagnostics.diagnosticsource.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Diagnostics.Tools/4.3.0": { + "sha512": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "type": "package", + "path": "system.diagnostics.tools/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Diagnostics.Tools.dll", + "ref/netcore50/System.Diagnostics.Tools.xml", + "ref/netcore50/de/System.Diagnostics.Tools.xml", + "ref/netcore50/es/System.Diagnostics.Tools.xml", + "ref/netcore50/fr/System.Diagnostics.Tools.xml", + "ref/netcore50/it/System.Diagnostics.Tools.xml", + "ref/netcore50/ja/System.Diagnostics.Tools.xml", + "ref/netcore50/ko/System.Diagnostics.Tools.xml", + "ref/netcore50/ru/System.Diagnostics.Tools.xml", + "ref/netcore50/zh-hans/System.Diagnostics.Tools.xml", + "ref/netcore50/zh-hant/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/System.Diagnostics.Tools.dll", + "ref/netstandard1.0/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/de/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/es/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/fr/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/it/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/ja/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/ko/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/ru/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/zh-hans/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/zh-hant/System.Diagnostics.Tools.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.diagnostics.tools.4.3.0.nupkg.sha512", + "system.diagnostics.tools.nuspec" + ] + }, + "System.Diagnostics.Tracing/4.3.0": { + "sha512": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "type": "package", + "path": "system.diagnostics.tracing/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Diagnostics.Tracing.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Diagnostics.Tracing.dll", + "ref/netcore50/System.Diagnostics.Tracing.dll", + "ref/netcore50/System.Diagnostics.Tracing.xml", + "ref/netcore50/de/System.Diagnostics.Tracing.xml", + "ref/netcore50/es/System.Diagnostics.Tracing.xml", + "ref/netcore50/fr/System.Diagnostics.Tracing.xml", + "ref/netcore50/it/System.Diagnostics.Tracing.xml", + "ref/netcore50/ja/System.Diagnostics.Tracing.xml", + "ref/netcore50/ko/System.Diagnostics.Tracing.xml", + "ref/netcore50/ru/System.Diagnostics.Tracing.xml", + "ref/netcore50/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netcore50/zh-hant/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/System.Diagnostics.Tracing.dll", + "ref/netstandard1.1/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/de/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/es/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/fr/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/it/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/ja/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/ko/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/ru/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/zh-hant/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/System.Diagnostics.Tracing.dll", + "ref/netstandard1.2/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/de/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/es/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/fr/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/it/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/ja/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/ko/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/ru/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/zh-hant/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/System.Diagnostics.Tracing.dll", + "ref/netstandard1.3/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/de/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/es/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/fr/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/it/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/ja/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/ko/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/ru/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/zh-hant/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/System.Diagnostics.Tracing.dll", + "ref/netstandard1.5/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/de/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/es/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/fr/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/it/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/ja/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/ko/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/ru/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/zh-hant/System.Diagnostics.Tracing.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.diagnostics.tracing.4.3.0.nupkg.sha512", + "system.diagnostics.tracing.nuspec" + ] + }, + "System.Drawing.Common/5.0.0": { + "sha512": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", + "type": "package", + "path": "system.drawing.common/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net461/System.Drawing.Common.dll", + "lib/netcoreapp3.0/System.Drawing.Common.dll", + "lib/netcoreapp3.0/System.Drawing.Common.xml", + "lib/netstandard2.0/System.Drawing.Common.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net461/System.Drawing.Common.dll", + "ref/netcoreapp3.0/System.Drawing.Common.dll", + "ref/netcoreapp3.0/System.Drawing.Common.xml", + "ref/netstandard2.0/System.Drawing.Common.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netcoreapp2.0/System.Drawing.Common.dll", + "runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll", + "runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.xml", + "runtimes/win/lib/netcoreapp2.0/System.Drawing.Common.dll", + "runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll", + "runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.xml", + "system.drawing.common.5.0.0.nupkg.sha512", + "system.drawing.common.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Formats.Asn1/5.0.0": { + "sha512": "MTvUIktmemNB+El0Fgw9egyqT9AYSIk6DTJeoDSpc3GIHxHCMo8COqkWT1mptX5tZ1SlQ6HJZ0OsSvMth1c12w==", + "type": "package", + "path": "system.formats.asn1/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Formats.Asn1.dll", + "lib/net461/System.Formats.Asn1.xml", + "lib/netstandard2.0/System.Formats.Asn1.dll", + "lib/netstandard2.0/System.Formats.Asn1.xml", + "system.formats.asn1.5.0.0.nupkg.sha512", + "system.formats.asn1.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Globalization/4.3.0": { + "sha512": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "type": "package", + "path": "system.globalization/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Globalization.dll", + "ref/netcore50/System.Globalization.xml", + "ref/netcore50/de/System.Globalization.xml", + "ref/netcore50/es/System.Globalization.xml", + "ref/netcore50/fr/System.Globalization.xml", + "ref/netcore50/it/System.Globalization.xml", + "ref/netcore50/ja/System.Globalization.xml", + "ref/netcore50/ko/System.Globalization.xml", + "ref/netcore50/ru/System.Globalization.xml", + "ref/netcore50/zh-hans/System.Globalization.xml", + "ref/netcore50/zh-hant/System.Globalization.xml", + "ref/netstandard1.0/System.Globalization.dll", + "ref/netstandard1.0/System.Globalization.xml", + "ref/netstandard1.0/de/System.Globalization.xml", + "ref/netstandard1.0/es/System.Globalization.xml", + "ref/netstandard1.0/fr/System.Globalization.xml", + "ref/netstandard1.0/it/System.Globalization.xml", + "ref/netstandard1.0/ja/System.Globalization.xml", + "ref/netstandard1.0/ko/System.Globalization.xml", + "ref/netstandard1.0/ru/System.Globalization.xml", + "ref/netstandard1.0/zh-hans/System.Globalization.xml", + "ref/netstandard1.0/zh-hant/System.Globalization.xml", + "ref/netstandard1.3/System.Globalization.dll", + "ref/netstandard1.3/System.Globalization.xml", + "ref/netstandard1.3/de/System.Globalization.xml", + "ref/netstandard1.3/es/System.Globalization.xml", + "ref/netstandard1.3/fr/System.Globalization.xml", + "ref/netstandard1.3/it/System.Globalization.xml", + "ref/netstandard1.3/ja/System.Globalization.xml", + "ref/netstandard1.3/ko/System.Globalization.xml", + "ref/netstandard1.3/ru/System.Globalization.xml", + "ref/netstandard1.3/zh-hans/System.Globalization.xml", + "ref/netstandard1.3/zh-hant/System.Globalization.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.globalization.4.3.0.nupkg.sha512", + "system.globalization.nuspec" + ] + }, + "System.Globalization.Calendars/4.3.0": { + "sha512": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "type": "package", + "path": "system.globalization.calendars/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Globalization.Calendars.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Globalization.Calendars.dll", + "ref/netstandard1.3/System.Globalization.Calendars.dll", + "ref/netstandard1.3/System.Globalization.Calendars.xml", + "ref/netstandard1.3/de/System.Globalization.Calendars.xml", + "ref/netstandard1.3/es/System.Globalization.Calendars.xml", + "ref/netstandard1.3/fr/System.Globalization.Calendars.xml", + "ref/netstandard1.3/it/System.Globalization.Calendars.xml", + "ref/netstandard1.3/ja/System.Globalization.Calendars.xml", + "ref/netstandard1.3/ko/System.Globalization.Calendars.xml", + "ref/netstandard1.3/ru/System.Globalization.Calendars.xml", + "ref/netstandard1.3/zh-hans/System.Globalization.Calendars.xml", + "ref/netstandard1.3/zh-hant/System.Globalization.Calendars.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.globalization.calendars.4.3.0.nupkg.sha512", + "system.globalization.calendars.nuspec" + ] + }, + "System.Globalization.Extensions/4.3.0": { + "sha512": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "type": "package", + "path": "system.globalization.extensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Globalization.Extensions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Globalization.Extensions.dll", + "ref/netstandard1.3/System.Globalization.Extensions.dll", + "ref/netstandard1.3/System.Globalization.Extensions.xml", + "ref/netstandard1.3/de/System.Globalization.Extensions.xml", + "ref/netstandard1.3/es/System.Globalization.Extensions.xml", + "ref/netstandard1.3/fr/System.Globalization.Extensions.xml", + "ref/netstandard1.3/it/System.Globalization.Extensions.xml", + "ref/netstandard1.3/ja/System.Globalization.Extensions.xml", + "ref/netstandard1.3/ko/System.Globalization.Extensions.xml", + "ref/netstandard1.3/ru/System.Globalization.Extensions.xml", + "ref/netstandard1.3/zh-hans/System.Globalization.Extensions.xml", + "ref/netstandard1.3/zh-hant/System.Globalization.Extensions.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.3/System.Globalization.Extensions.dll", + "runtimes/win/lib/net46/System.Globalization.Extensions.dll", + "runtimes/win/lib/netstandard1.3/System.Globalization.Extensions.dll", + "system.globalization.extensions.4.3.0.nupkg.sha512", + "system.globalization.extensions.nuspec" + ] + }, + "System.IdentityModel.Tokens.Jwt/6.19.0": { + "sha512": "iQwoziWm2ilFGlBnImQmB5RFwAoIEIp2QbQi2Wm0PJLhQfo80VhFzsPEiuhCkDvVkN1/D5Y++/GjBck27qP30w==", + "type": "package", + "path": "system.identitymodel.tokens.jwt/6.19.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net45/System.IdentityModel.Tokens.Jwt.dll", + "lib/net45/System.IdentityModel.Tokens.Jwt.xml", + "lib/net461/System.IdentityModel.Tokens.Jwt.dll", + "lib/net461/System.IdentityModel.Tokens.Jwt.xml", + "lib/net472/System.IdentityModel.Tokens.Jwt.dll", + "lib/net472/System.IdentityModel.Tokens.Jwt.xml", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml", + "system.identitymodel.tokens.jwt.6.19.0.nupkg.sha512", + "system.identitymodel.tokens.jwt.nuspec" + ] + }, + "System.IO/4.3.0": { + "sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "type": "package", + "path": "system.io/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.IO.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.IO.dll", + "ref/netcore50/System.IO.dll", + "ref/netcore50/System.IO.xml", + "ref/netcore50/de/System.IO.xml", + "ref/netcore50/es/System.IO.xml", + "ref/netcore50/fr/System.IO.xml", + "ref/netcore50/it/System.IO.xml", + "ref/netcore50/ja/System.IO.xml", + "ref/netcore50/ko/System.IO.xml", + "ref/netcore50/ru/System.IO.xml", + "ref/netcore50/zh-hans/System.IO.xml", + "ref/netcore50/zh-hant/System.IO.xml", + "ref/netstandard1.0/System.IO.dll", + "ref/netstandard1.0/System.IO.xml", + "ref/netstandard1.0/de/System.IO.xml", + "ref/netstandard1.0/es/System.IO.xml", + "ref/netstandard1.0/fr/System.IO.xml", + "ref/netstandard1.0/it/System.IO.xml", + "ref/netstandard1.0/ja/System.IO.xml", + "ref/netstandard1.0/ko/System.IO.xml", + "ref/netstandard1.0/ru/System.IO.xml", + "ref/netstandard1.0/zh-hans/System.IO.xml", + "ref/netstandard1.0/zh-hant/System.IO.xml", + "ref/netstandard1.3/System.IO.dll", + "ref/netstandard1.3/System.IO.xml", + "ref/netstandard1.3/de/System.IO.xml", + "ref/netstandard1.3/es/System.IO.xml", + "ref/netstandard1.3/fr/System.IO.xml", + "ref/netstandard1.3/it/System.IO.xml", + "ref/netstandard1.3/ja/System.IO.xml", + "ref/netstandard1.3/ko/System.IO.xml", + "ref/netstandard1.3/ru/System.IO.xml", + "ref/netstandard1.3/zh-hans/System.IO.xml", + "ref/netstandard1.3/zh-hant/System.IO.xml", + "ref/netstandard1.5/System.IO.dll", + "ref/netstandard1.5/System.IO.xml", + "ref/netstandard1.5/de/System.IO.xml", + "ref/netstandard1.5/es/System.IO.xml", + "ref/netstandard1.5/fr/System.IO.xml", + "ref/netstandard1.5/it/System.IO.xml", + "ref/netstandard1.5/ja/System.IO.xml", + "ref/netstandard1.5/ko/System.IO.xml", + "ref/netstandard1.5/ru/System.IO.xml", + "ref/netstandard1.5/zh-hans/System.IO.xml", + "ref/netstandard1.5/zh-hant/System.IO.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.io.4.3.0.nupkg.sha512", + "system.io.nuspec" + ] + }, + "System.IO.Compression/4.3.0": { + "sha512": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "type": "package", + "path": "system.io.compression/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net46/System.IO.Compression.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net46/System.IO.Compression.dll", + "ref/netcore50/System.IO.Compression.dll", + "ref/netcore50/System.IO.Compression.xml", + "ref/netcore50/de/System.IO.Compression.xml", + "ref/netcore50/es/System.IO.Compression.xml", + "ref/netcore50/fr/System.IO.Compression.xml", + "ref/netcore50/it/System.IO.Compression.xml", + "ref/netcore50/ja/System.IO.Compression.xml", + "ref/netcore50/ko/System.IO.Compression.xml", + "ref/netcore50/ru/System.IO.Compression.xml", + "ref/netcore50/zh-hans/System.IO.Compression.xml", + "ref/netcore50/zh-hant/System.IO.Compression.xml", + "ref/netstandard1.1/System.IO.Compression.dll", + "ref/netstandard1.1/System.IO.Compression.xml", + "ref/netstandard1.1/de/System.IO.Compression.xml", + "ref/netstandard1.1/es/System.IO.Compression.xml", + "ref/netstandard1.1/fr/System.IO.Compression.xml", + "ref/netstandard1.1/it/System.IO.Compression.xml", + "ref/netstandard1.1/ja/System.IO.Compression.xml", + "ref/netstandard1.1/ko/System.IO.Compression.xml", + "ref/netstandard1.1/ru/System.IO.Compression.xml", + "ref/netstandard1.1/zh-hans/System.IO.Compression.xml", + "ref/netstandard1.1/zh-hant/System.IO.Compression.xml", + "ref/netstandard1.3/System.IO.Compression.dll", + "ref/netstandard1.3/System.IO.Compression.xml", + "ref/netstandard1.3/de/System.IO.Compression.xml", + "ref/netstandard1.3/es/System.IO.Compression.xml", + "ref/netstandard1.3/fr/System.IO.Compression.xml", + "ref/netstandard1.3/it/System.IO.Compression.xml", + "ref/netstandard1.3/ja/System.IO.Compression.xml", + "ref/netstandard1.3/ko/System.IO.Compression.xml", + "ref/netstandard1.3/ru/System.IO.Compression.xml", + "ref/netstandard1.3/zh-hans/System.IO.Compression.xml", + "ref/netstandard1.3/zh-hant/System.IO.Compression.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll", + "runtimes/win/lib/net46/System.IO.Compression.dll", + "runtimes/win/lib/netstandard1.3/System.IO.Compression.dll", + "system.io.compression.4.3.0.nupkg.sha512", + "system.io.compression.nuspec" + ] + }, + "System.IO.Compression.ZipFile/4.3.0": { + "sha512": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", + "type": "package", + "path": "system.io.compression.zipfile/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.IO.Compression.ZipFile.dll", + "lib/netstandard1.3/System.IO.Compression.ZipFile.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.IO.Compression.ZipFile.dll", + "ref/netstandard1.3/System.IO.Compression.ZipFile.dll", + "ref/netstandard1.3/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/de/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/es/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/fr/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/it/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/ja/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/ko/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/ru/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/zh-hans/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/zh-hant/System.IO.Compression.ZipFile.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.io.compression.zipfile.4.3.0.nupkg.sha512", + "system.io.compression.zipfile.nuspec" + ] + }, + "System.IO.FileSystem/4.3.0": { + "sha512": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "type": "package", + "path": "system.io.filesystem/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.IO.FileSystem.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.IO.FileSystem.dll", + "ref/netstandard1.3/System.IO.FileSystem.dll", + "ref/netstandard1.3/System.IO.FileSystem.xml", + "ref/netstandard1.3/de/System.IO.FileSystem.xml", + "ref/netstandard1.3/es/System.IO.FileSystem.xml", + "ref/netstandard1.3/fr/System.IO.FileSystem.xml", + "ref/netstandard1.3/it/System.IO.FileSystem.xml", + "ref/netstandard1.3/ja/System.IO.FileSystem.xml", + "ref/netstandard1.3/ko/System.IO.FileSystem.xml", + "ref/netstandard1.3/ru/System.IO.FileSystem.xml", + "ref/netstandard1.3/zh-hans/System.IO.FileSystem.xml", + "ref/netstandard1.3/zh-hant/System.IO.FileSystem.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.io.filesystem.4.3.0.nupkg.sha512", + "system.io.filesystem.nuspec" + ] + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "sha512": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "type": "package", + "path": "system.io.filesystem.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.IO.FileSystem.Primitives.dll", + "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.IO.FileSystem.Primitives.dll", + "ref/netstandard1.3/System.IO.FileSystem.Primitives.dll", + "ref/netstandard1.3/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/de/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/es/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/fr/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/it/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/ja/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/ko/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/ru/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/zh-hans/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/zh-hant/System.IO.FileSystem.Primitives.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.io.filesystem.primitives.4.3.0.nupkg.sha512", + "system.io.filesystem.primitives.nuspec" + ] + }, + "System.IO.Packaging/4.7.0": { + "sha512": "9VV4KAbgRQZ79iEoG40KIeZy38O30oWwewScAST879+oki8g/Wa2HXZQgrhDDxQM4GkP1PnRJll05NMiVPbYAw==", + "type": "package", + "path": "system.io.packaging/4.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/System.IO.Packaging.dll", + "lib/net46/System.IO.Packaging.xml", + "lib/netstandard1.3/System.IO.Packaging.dll", + "lib/netstandard1.3/System.IO.Packaging.xml", + "lib/netstandard2.0/System.IO.Packaging.dll", + "lib/netstandard2.0/System.IO.Packaging.xml", + "ref/net46/System.IO.Packaging.dll", + "ref/net46/System.IO.Packaging.xml", + "ref/netstandard1.3/System.IO.Packaging.dll", + "ref/netstandard1.3/System.IO.Packaging.xml", + "ref/netstandard2.0/System.IO.Packaging.dll", + "ref/netstandard2.0/System.IO.Packaging.xml", + "system.io.packaging.4.7.0.nupkg.sha512", + "system.io.packaging.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Linq/4.3.0": { + "sha512": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "type": "package", + "path": "system.linq/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net463/System.Linq.dll", + "lib/netcore50/System.Linq.dll", + "lib/netstandard1.6/System.Linq.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net463/System.Linq.dll", + "ref/netcore50/System.Linq.dll", + "ref/netcore50/System.Linq.xml", + "ref/netcore50/de/System.Linq.xml", + "ref/netcore50/es/System.Linq.xml", + "ref/netcore50/fr/System.Linq.xml", + "ref/netcore50/it/System.Linq.xml", + "ref/netcore50/ja/System.Linq.xml", + "ref/netcore50/ko/System.Linq.xml", + "ref/netcore50/ru/System.Linq.xml", + "ref/netcore50/zh-hans/System.Linq.xml", + "ref/netcore50/zh-hant/System.Linq.xml", + "ref/netstandard1.0/System.Linq.dll", + "ref/netstandard1.0/System.Linq.xml", + "ref/netstandard1.0/de/System.Linq.xml", + "ref/netstandard1.0/es/System.Linq.xml", + "ref/netstandard1.0/fr/System.Linq.xml", + "ref/netstandard1.0/it/System.Linq.xml", + "ref/netstandard1.0/ja/System.Linq.xml", + "ref/netstandard1.0/ko/System.Linq.xml", + "ref/netstandard1.0/ru/System.Linq.xml", + "ref/netstandard1.0/zh-hans/System.Linq.xml", + "ref/netstandard1.0/zh-hant/System.Linq.xml", + "ref/netstandard1.6/System.Linq.dll", + "ref/netstandard1.6/System.Linq.xml", + "ref/netstandard1.6/de/System.Linq.xml", + "ref/netstandard1.6/es/System.Linq.xml", + "ref/netstandard1.6/fr/System.Linq.xml", + "ref/netstandard1.6/it/System.Linq.xml", + "ref/netstandard1.6/ja/System.Linq.xml", + "ref/netstandard1.6/ko/System.Linq.xml", + "ref/netstandard1.6/ru/System.Linq.xml", + "ref/netstandard1.6/zh-hans/System.Linq.xml", + "ref/netstandard1.6/zh-hant/System.Linq.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.linq.4.3.0.nupkg.sha512", + "system.linq.nuspec" + ] + }, + "System.Linq.Expressions/4.3.0": { + "sha512": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "type": "package", + "path": "system.linq.expressions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net463/System.Linq.Expressions.dll", + "lib/netcore50/System.Linq.Expressions.dll", + "lib/netstandard1.6/System.Linq.Expressions.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net463/System.Linq.Expressions.dll", + "ref/netcore50/System.Linq.Expressions.dll", + "ref/netcore50/System.Linq.Expressions.xml", + "ref/netcore50/de/System.Linq.Expressions.xml", + "ref/netcore50/es/System.Linq.Expressions.xml", + "ref/netcore50/fr/System.Linq.Expressions.xml", + "ref/netcore50/it/System.Linq.Expressions.xml", + "ref/netcore50/ja/System.Linq.Expressions.xml", + "ref/netcore50/ko/System.Linq.Expressions.xml", + "ref/netcore50/ru/System.Linq.Expressions.xml", + "ref/netcore50/zh-hans/System.Linq.Expressions.xml", + "ref/netcore50/zh-hant/System.Linq.Expressions.xml", + "ref/netstandard1.0/System.Linq.Expressions.dll", + "ref/netstandard1.0/System.Linq.Expressions.xml", + "ref/netstandard1.0/de/System.Linq.Expressions.xml", + "ref/netstandard1.0/es/System.Linq.Expressions.xml", + "ref/netstandard1.0/fr/System.Linq.Expressions.xml", + "ref/netstandard1.0/it/System.Linq.Expressions.xml", + "ref/netstandard1.0/ja/System.Linq.Expressions.xml", + "ref/netstandard1.0/ko/System.Linq.Expressions.xml", + "ref/netstandard1.0/ru/System.Linq.Expressions.xml", + "ref/netstandard1.0/zh-hans/System.Linq.Expressions.xml", + "ref/netstandard1.0/zh-hant/System.Linq.Expressions.xml", + "ref/netstandard1.3/System.Linq.Expressions.dll", + "ref/netstandard1.3/System.Linq.Expressions.xml", + "ref/netstandard1.3/de/System.Linq.Expressions.xml", + "ref/netstandard1.3/es/System.Linq.Expressions.xml", + "ref/netstandard1.3/fr/System.Linq.Expressions.xml", + "ref/netstandard1.3/it/System.Linq.Expressions.xml", + "ref/netstandard1.3/ja/System.Linq.Expressions.xml", + "ref/netstandard1.3/ko/System.Linq.Expressions.xml", + "ref/netstandard1.3/ru/System.Linq.Expressions.xml", + "ref/netstandard1.3/zh-hans/System.Linq.Expressions.xml", + "ref/netstandard1.3/zh-hant/System.Linq.Expressions.xml", + "ref/netstandard1.6/System.Linq.Expressions.dll", + "ref/netstandard1.6/System.Linq.Expressions.xml", + "ref/netstandard1.6/de/System.Linq.Expressions.xml", + "ref/netstandard1.6/es/System.Linq.Expressions.xml", + "ref/netstandard1.6/fr/System.Linq.Expressions.xml", + "ref/netstandard1.6/it/System.Linq.Expressions.xml", + "ref/netstandard1.6/ja/System.Linq.Expressions.xml", + "ref/netstandard1.6/ko/System.Linq.Expressions.xml", + "ref/netstandard1.6/ru/System.Linq.Expressions.xml", + "ref/netstandard1.6/zh-hans/System.Linq.Expressions.xml", + "ref/netstandard1.6/zh-hant/System.Linq.Expressions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Linq.Expressions.dll", + "system.linq.expressions.4.3.0.nupkg.sha512", + "system.linq.expressions.nuspec" + ] + }, + "System.Memory/4.5.4": { + "sha512": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", + "type": "package", + "path": "system.memory/4.5.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Memory.dll", + "lib/net461/System.Memory.xml", + "lib/netcoreapp2.1/_._", + "lib/netstandard1.1/System.Memory.dll", + "lib/netstandard1.1/System.Memory.xml", + "lib/netstandard2.0/System.Memory.dll", + "lib/netstandard2.0/System.Memory.xml", + "ref/netcoreapp2.1/_._", + "system.memory.4.5.4.nupkg.sha512", + "system.memory.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Net.Http/4.3.0": { + "sha512": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", + "type": "package", + "path": "system.net.http/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/Xamarinmac20/_._", + "lib/monoandroid10/_._", + "lib/monotouch10/_._", + "lib/net45/_._", + "lib/net46/System.Net.Http.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/Xamarinmac20/_._", + "ref/monoandroid10/_._", + "ref/monotouch10/_._", + "ref/net45/_._", + "ref/net46/System.Net.Http.dll", + "ref/net46/System.Net.Http.xml", + "ref/net46/de/System.Net.Http.xml", + "ref/net46/es/System.Net.Http.xml", + "ref/net46/fr/System.Net.Http.xml", + "ref/net46/it/System.Net.Http.xml", + "ref/net46/ja/System.Net.Http.xml", + "ref/net46/ko/System.Net.Http.xml", + "ref/net46/ru/System.Net.Http.xml", + "ref/net46/zh-hans/System.Net.Http.xml", + "ref/net46/zh-hant/System.Net.Http.xml", + "ref/netcore50/System.Net.Http.dll", + "ref/netcore50/System.Net.Http.xml", + "ref/netcore50/de/System.Net.Http.xml", + "ref/netcore50/es/System.Net.Http.xml", + "ref/netcore50/fr/System.Net.Http.xml", + "ref/netcore50/it/System.Net.Http.xml", + "ref/netcore50/ja/System.Net.Http.xml", + "ref/netcore50/ko/System.Net.Http.xml", + "ref/netcore50/ru/System.Net.Http.xml", + "ref/netcore50/zh-hans/System.Net.Http.xml", + "ref/netcore50/zh-hant/System.Net.Http.xml", + "ref/netstandard1.1/System.Net.Http.dll", + "ref/netstandard1.1/System.Net.Http.xml", + "ref/netstandard1.1/de/System.Net.Http.xml", + "ref/netstandard1.1/es/System.Net.Http.xml", + "ref/netstandard1.1/fr/System.Net.Http.xml", + "ref/netstandard1.1/it/System.Net.Http.xml", + "ref/netstandard1.1/ja/System.Net.Http.xml", + "ref/netstandard1.1/ko/System.Net.Http.xml", + "ref/netstandard1.1/ru/System.Net.Http.xml", + "ref/netstandard1.1/zh-hans/System.Net.Http.xml", + "ref/netstandard1.1/zh-hant/System.Net.Http.xml", + "ref/netstandard1.3/System.Net.Http.dll", + "ref/netstandard1.3/System.Net.Http.xml", + "ref/netstandard1.3/de/System.Net.Http.xml", + "ref/netstandard1.3/es/System.Net.Http.xml", + "ref/netstandard1.3/fr/System.Net.Http.xml", + "ref/netstandard1.3/it/System.Net.Http.xml", + "ref/netstandard1.3/ja/System.Net.Http.xml", + "ref/netstandard1.3/ko/System.Net.Http.xml", + "ref/netstandard1.3/ru/System.Net.Http.xml", + "ref/netstandard1.3/zh-hans/System.Net.Http.xml", + "ref/netstandard1.3/zh-hant/System.Net.Http.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll", + "runtimes/win/lib/net46/System.Net.Http.dll", + "runtimes/win/lib/netcore50/System.Net.Http.dll", + "runtimes/win/lib/netstandard1.3/System.Net.Http.dll", + "system.net.http.4.3.0.nupkg.sha512", + "system.net.http.nuspec" + ] + }, + "System.Net.Primitives/4.3.0": { + "sha512": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", + "type": "package", + "path": "system.net.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Net.Primitives.dll", + "ref/netcore50/System.Net.Primitives.xml", + "ref/netcore50/de/System.Net.Primitives.xml", + "ref/netcore50/es/System.Net.Primitives.xml", + "ref/netcore50/fr/System.Net.Primitives.xml", + "ref/netcore50/it/System.Net.Primitives.xml", + "ref/netcore50/ja/System.Net.Primitives.xml", + "ref/netcore50/ko/System.Net.Primitives.xml", + "ref/netcore50/ru/System.Net.Primitives.xml", + "ref/netcore50/zh-hans/System.Net.Primitives.xml", + "ref/netcore50/zh-hant/System.Net.Primitives.xml", + "ref/netstandard1.0/System.Net.Primitives.dll", + "ref/netstandard1.0/System.Net.Primitives.xml", + "ref/netstandard1.0/de/System.Net.Primitives.xml", + "ref/netstandard1.0/es/System.Net.Primitives.xml", + "ref/netstandard1.0/fr/System.Net.Primitives.xml", + "ref/netstandard1.0/it/System.Net.Primitives.xml", + "ref/netstandard1.0/ja/System.Net.Primitives.xml", + "ref/netstandard1.0/ko/System.Net.Primitives.xml", + "ref/netstandard1.0/ru/System.Net.Primitives.xml", + "ref/netstandard1.0/zh-hans/System.Net.Primitives.xml", + "ref/netstandard1.0/zh-hant/System.Net.Primitives.xml", + "ref/netstandard1.1/System.Net.Primitives.dll", + "ref/netstandard1.1/System.Net.Primitives.xml", + "ref/netstandard1.1/de/System.Net.Primitives.xml", + "ref/netstandard1.1/es/System.Net.Primitives.xml", + "ref/netstandard1.1/fr/System.Net.Primitives.xml", + "ref/netstandard1.1/it/System.Net.Primitives.xml", + "ref/netstandard1.1/ja/System.Net.Primitives.xml", + "ref/netstandard1.1/ko/System.Net.Primitives.xml", + "ref/netstandard1.1/ru/System.Net.Primitives.xml", + "ref/netstandard1.1/zh-hans/System.Net.Primitives.xml", + "ref/netstandard1.1/zh-hant/System.Net.Primitives.xml", + "ref/netstandard1.3/System.Net.Primitives.dll", + "ref/netstandard1.3/System.Net.Primitives.xml", + "ref/netstandard1.3/de/System.Net.Primitives.xml", + "ref/netstandard1.3/es/System.Net.Primitives.xml", + "ref/netstandard1.3/fr/System.Net.Primitives.xml", + "ref/netstandard1.3/it/System.Net.Primitives.xml", + "ref/netstandard1.3/ja/System.Net.Primitives.xml", + "ref/netstandard1.3/ko/System.Net.Primitives.xml", + "ref/netstandard1.3/ru/System.Net.Primitives.xml", + "ref/netstandard1.3/zh-hans/System.Net.Primitives.xml", + "ref/netstandard1.3/zh-hant/System.Net.Primitives.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.net.primitives.4.3.0.nupkg.sha512", + "system.net.primitives.nuspec" + ] + }, + "System.Net.Sockets/4.3.0": { + "sha512": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", + "type": "package", + "path": "system.net.sockets/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Net.Sockets.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Net.Sockets.dll", + "ref/netstandard1.3/System.Net.Sockets.dll", + "ref/netstandard1.3/System.Net.Sockets.xml", + "ref/netstandard1.3/de/System.Net.Sockets.xml", + "ref/netstandard1.3/es/System.Net.Sockets.xml", + "ref/netstandard1.3/fr/System.Net.Sockets.xml", + "ref/netstandard1.3/it/System.Net.Sockets.xml", + "ref/netstandard1.3/ja/System.Net.Sockets.xml", + "ref/netstandard1.3/ko/System.Net.Sockets.xml", + "ref/netstandard1.3/ru/System.Net.Sockets.xml", + "ref/netstandard1.3/zh-hans/System.Net.Sockets.xml", + "ref/netstandard1.3/zh-hant/System.Net.Sockets.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.net.sockets.4.3.0.nupkg.sha512", + "system.net.sockets.nuspec" + ] + }, + "System.Numerics.Vectors/4.5.0": { + "sha512": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==", + "type": "package", + "path": "system.numerics.vectors/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Numerics.Vectors.dll", + "lib/net46/System.Numerics.Vectors.xml", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.0/System.Numerics.Vectors.dll", + "lib/netstandard1.0/System.Numerics.Vectors.xml", + "lib/netstandard2.0/System.Numerics.Vectors.dll", + "lib/netstandard2.0/System.Numerics.Vectors.xml", + "lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll", + "lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml", + "lib/uap10.0.16299/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/System.Numerics.Vectors.dll", + "ref/net45/System.Numerics.Vectors.xml", + "ref/net46/System.Numerics.Vectors.dll", + "ref/net46/System.Numerics.Vectors.xml", + "ref/netcoreapp2.0/_._", + "ref/netstandard1.0/System.Numerics.Vectors.dll", + "ref/netstandard1.0/System.Numerics.Vectors.xml", + "ref/netstandard2.0/System.Numerics.Vectors.dll", + "ref/netstandard2.0/System.Numerics.Vectors.xml", + "ref/uap10.0.16299/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.numerics.vectors.4.5.0.nupkg.sha512", + "system.numerics.vectors.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.ObjectModel/4.3.0": { + "sha512": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "type": "package", + "path": "system.objectmodel/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.ObjectModel.dll", + "lib/netstandard1.3/System.ObjectModel.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.ObjectModel.dll", + "ref/netcore50/System.ObjectModel.xml", + "ref/netcore50/de/System.ObjectModel.xml", + "ref/netcore50/es/System.ObjectModel.xml", + "ref/netcore50/fr/System.ObjectModel.xml", + "ref/netcore50/it/System.ObjectModel.xml", + "ref/netcore50/ja/System.ObjectModel.xml", + "ref/netcore50/ko/System.ObjectModel.xml", + "ref/netcore50/ru/System.ObjectModel.xml", + "ref/netcore50/zh-hans/System.ObjectModel.xml", + "ref/netcore50/zh-hant/System.ObjectModel.xml", + "ref/netstandard1.0/System.ObjectModel.dll", + "ref/netstandard1.0/System.ObjectModel.xml", + "ref/netstandard1.0/de/System.ObjectModel.xml", + "ref/netstandard1.0/es/System.ObjectModel.xml", + "ref/netstandard1.0/fr/System.ObjectModel.xml", + "ref/netstandard1.0/it/System.ObjectModel.xml", + "ref/netstandard1.0/ja/System.ObjectModel.xml", + "ref/netstandard1.0/ko/System.ObjectModel.xml", + "ref/netstandard1.0/ru/System.ObjectModel.xml", + "ref/netstandard1.0/zh-hans/System.ObjectModel.xml", + "ref/netstandard1.0/zh-hant/System.ObjectModel.xml", + "ref/netstandard1.3/System.ObjectModel.dll", + "ref/netstandard1.3/System.ObjectModel.xml", + "ref/netstandard1.3/de/System.ObjectModel.xml", + "ref/netstandard1.3/es/System.ObjectModel.xml", + "ref/netstandard1.3/fr/System.ObjectModel.xml", + "ref/netstandard1.3/it/System.ObjectModel.xml", + "ref/netstandard1.3/ja/System.ObjectModel.xml", + "ref/netstandard1.3/ko/System.ObjectModel.xml", + "ref/netstandard1.3/ru/System.ObjectModel.xml", + "ref/netstandard1.3/zh-hans/System.ObjectModel.xml", + "ref/netstandard1.3/zh-hant/System.ObjectModel.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.objectmodel.4.3.0.nupkg.sha512", + "system.objectmodel.nuspec" + ] + }, + "System.Reflection/4.3.0": { + "sha512": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "type": "package", + "path": "system.reflection/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Reflection.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Reflection.dll", + "ref/netcore50/System.Reflection.dll", + "ref/netcore50/System.Reflection.xml", + "ref/netcore50/de/System.Reflection.xml", + "ref/netcore50/es/System.Reflection.xml", + "ref/netcore50/fr/System.Reflection.xml", + "ref/netcore50/it/System.Reflection.xml", + "ref/netcore50/ja/System.Reflection.xml", + "ref/netcore50/ko/System.Reflection.xml", + "ref/netcore50/ru/System.Reflection.xml", + "ref/netcore50/zh-hans/System.Reflection.xml", + "ref/netcore50/zh-hant/System.Reflection.xml", + "ref/netstandard1.0/System.Reflection.dll", + "ref/netstandard1.0/System.Reflection.xml", + "ref/netstandard1.0/de/System.Reflection.xml", + "ref/netstandard1.0/es/System.Reflection.xml", + "ref/netstandard1.0/fr/System.Reflection.xml", + "ref/netstandard1.0/it/System.Reflection.xml", + "ref/netstandard1.0/ja/System.Reflection.xml", + "ref/netstandard1.0/ko/System.Reflection.xml", + "ref/netstandard1.0/ru/System.Reflection.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.xml", + "ref/netstandard1.3/System.Reflection.dll", + "ref/netstandard1.3/System.Reflection.xml", + "ref/netstandard1.3/de/System.Reflection.xml", + "ref/netstandard1.3/es/System.Reflection.xml", + "ref/netstandard1.3/fr/System.Reflection.xml", + "ref/netstandard1.3/it/System.Reflection.xml", + "ref/netstandard1.3/ja/System.Reflection.xml", + "ref/netstandard1.3/ko/System.Reflection.xml", + "ref/netstandard1.3/ru/System.Reflection.xml", + "ref/netstandard1.3/zh-hans/System.Reflection.xml", + "ref/netstandard1.3/zh-hant/System.Reflection.xml", + "ref/netstandard1.5/System.Reflection.dll", + "ref/netstandard1.5/System.Reflection.xml", + "ref/netstandard1.5/de/System.Reflection.xml", + "ref/netstandard1.5/es/System.Reflection.xml", + "ref/netstandard1.5/fr/System.Reflection.xml", + "ref/netstandard1.5/it/System.Reflection.xml", + "ref/netstandard1.5/ja/System.Reflection.xml", + "ref/netstandard1.5/ko/System.Reflection.xml", + "ref/netstandard1.5/ru/System.Reflection.xml", + "ref/netstandard1.5/zh-hans/System.Reflection.xml", + "ref/netstandard1.5/zh-hant/System.Reflection.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.reflection.4.3.0.nupkg.sha512", + "system.reflection.nuspec" + ] + }, + "System.Reflection.Emit/4.3.0": { + "sha512": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "type": "package", + "path": "system.reflection.emit/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/monotouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.dll", + "lib/netstandard1.3/System.Reflection.Emit.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/net45/_._", + "ref/netstandard1.1/System.Reflection.Emit.dll", + "ref/netstandard1.1/System.Reflection.Emit.xml", + "ref/netstandard1.1/de/System.Reflection.Emit.xml", + "ref/netstandard1.1/es/System.Reflection.Emit.xml", + "ref/netstandard1.1/fr/System.Reflection.Emit.xml", + "ref/netstandard1.1/it/System.Reflection.Emit.xml", + "ref/netstandard1.1/ja/System.Reflection.Emit.xml", + "ref/netstandard1.1/ko/System.Reflection.Emit.xml", + "ref/netstandard1.1/ru/System.Reflection.Emit.xml", + "ref/netstandard1.1/zh-hans/System.Reflection.Emit.xml", + "ref/netstandard1.1/zh-hant/System.Reflection.Emit.xml", + "ref/xamarinmac20/_._", + "system.reflection.emit.4.3.0.nupkg.sha512", + "system.reflection.emit.nuspec" + ] + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "sha512": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "type": "package", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.ILGeneration.dll", + "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll", + "lib/portable-net45+wp8/_._", + "lib/wp80/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll", + "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/de/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/es/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/fr/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/it/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/ja/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/ko/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/ru/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.Emit.ILGeneration.xml", + "ref/portable-net45+wp8/_._", + "ref/wp80/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/_._", + "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512", + "system.reflection.emit.ilgeneration.nuspec" + ] + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "sha512": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "type": "package", + "path": "system.reflection.emit.lightweight/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.Lightweight.dll", + "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll", + "lib/portable-net45+wp8/_._", + "lib/wp80/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll", + "ref/netstandard1.0/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/de/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/es/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/fr/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/it/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/ja/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/ko/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/ru/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.Emit.Lightweight.xml", + "ref/portable-net45+wp8/_._", + "ref/wp80/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/_._", + "system.reflection.emit.lightweight.4.3.0.nupkg.sha512", + "system.reflection.emit.lightweight.nuspec" + ] + }, + "System.Reflection.Extensions/4.3.0": { + "sha512": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "type": "package", + "path": "system.reflection.extensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Reflection.Extensions.dll", + "ref/netcore50/System.Reflection.Extensions.xml", + "ref/netcore50/de/System.Reflection.Extensions.xml", + "ref/netcore50/es/System.Reflection.Extensions.xml", + "ref/netcore50/fr/System.Reflection.Extensions.xml", + "ref/netcore50/it/System.Reflection.Extensions.xml", + "ref/netcore50/ja/System.Reflection.Extensions.xml", + "ref/netcore50/ko/System.Reflection.Extensions.xml", + "ref/netcore50/ru/System.Reflection.Extensions.xml", + "ref/netcore50/zh-hans/System.Reflection.Extensions.xml", + "ref/netcore50/zh-hant/System.Reflection.Extensions.xml", + "ref/netstandard1.0/System.Reflection.Extensions.dll", + "ref/netstandard1.0/System.Reflection.Extensions.xml", + "ref/netstandard1.0/de/System.Reflection.Extensions.xml", + "ref/netstandard1.0/es/System.Reflection.Extensions.xml", + "ref/netstandard1.0/fr/System.Reflection.Extensions.xml", + "ref/netstandard1.0/it/System.Reflection.Extensions.xml", + "ref/netstandard1.0/ja/System.Reflection.Extensions.xml", + "ref/netstandard1.0/ko/System.Reflection.Extensions.xml", + "ref/netstandard1.0/ru/System.Reflection.Extensions.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.Extensions.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.Extensions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.reflection.extensions.4.3.0.nupkg.sha512", + "system.reflection.extensions.nuspec" + ] + }, + "System.Reflection.Primitives/4.3.0": { + "sha512": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "type": "package", + "path": "system.reflection.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Reflection.Primitives.dll", + "ref/netcore50/System.Reflection.Primitives.xml", + "ref/netcore50/de/System.Reflection.Primitives.xml", + "ref/netcore50/es/System.Reflection.Primitives.xml", + "ref/netcore50/fr/System.Reflection.Primitives.xml", + "ref/netcore50/it/System.Reflection.Primitives.xml", + "ref/netcore50/ja/System.Reflection.Primitives.xml", + "ref/netcore50/ko/System.Reflection.Primitives.xml", + "ref/netcore50/ru/System.Reflection.Primitives.xml", + "ref/netcore50/zh-hans/System.Reflection.Primitives.xml", + "ref/netcore50/zh-hant/System.Reflection.Primitives.xml", + "ref/netstandard1.0/System.Reflection.Primitives.dll", + "ref/netstandard1.0/System.Reflection.Primitives.xml", + "ref/netstandard1.0/de/System.Reflection.Primitives.xml", + "ref/netstandard1.0/es/System.Reflection.Primitives.xml", + "ref/netstandard1.0/fr/System.Reflection.Primitives.xml", + "ref/netstandard1.0/it/System.Reflection.Primitives.xml", + "ref/netstandard1.0/ja/System.Reflection.Primitives.xml", + "ref/netstandard1.0/ko/System.Reflection.Primitives.xml", + "ref/netstandard1.0/ru/System.Reflection.Primitives.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.Primitives.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.Primitives.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.reflection.primitives.4.3.0.nupkg.sha512", + "system.reflection.primitives.nuspec" + ] + }, + "System.Reflection.TypeExtensions/4.3.0": { + "sha512": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "type": "package", + "path": "system.reflection.typeextensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Reflection.TypeExtensions.dll", + "lib/net462/System.Reflection.TypeExtensions.dll", + "lib/netcore50/System.Reflection.TypeExtensions.dll", + "lib/netstandard1.5/System.Reflection.TypeExtensions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Reflection.TypeExtensions.dll", + "ref/net462/System.Reflection.TypeExtensions.dll", + "ref/netstandard1.3/System.Reflection.TypeExtensions.dll", + "ref/netstandard1.3/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/de/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/es/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/fr/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/it/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/ja/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/ko/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/ru/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/zh-hans/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/zh-hant/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/System.Reflection.TypeExtensions.dll", + "ref/netstandard1.5/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/de/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/es/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/fr/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/it/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/ja/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/ko/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/ru/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/zh-hans/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/zh-hant/System.Reflection.TypeExtensions.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Reflection.TypeExtensions.dll", + "system.reflection.typeextensions.4.3.0.nupkg.sha512", + "system.reflection.typeextensions.nuspec" + ] + }, + "System.Resources.ResourceManager/4.3.0": { + "sha512": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "type": "package", + "path": "system.resources.resourcemanager/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Resources.ResourceManager.dll", + "ref/netcore50/System.Resources.ResourceManager.xml", + "ref/netcore50/de/System.Resources.ResourceManager.xml", + "ref/netcore50/es/System.Resources.ResourceManager.xml", + "ref/netcore50/fr/System.Resources.ResourceManager.xml", + "ref/netcore50/it/System.Resources.ResourceManager.xml", + "ref/netcore50/ja/System.Resources.ResourceManager.xml", + "ref/netcore50/ko/System.Resources.ResourceManager.xml", + "ref/netcore50/ru/System.Resources.ResourceManager.xml", + "ref/netcore50/zh-hans/System.Resources.ResourceManager.xml", + "ref/netcore50/zh-hant/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/System.Resources.ResourceManager.dll", + "ref/netstandard1.0/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/de/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/es/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/fr/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/it/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/ja/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/ko/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/ru/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/zh-hans/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/zh-hant/System.Resources.ResourceManager.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.resources.resourcemanager.4.3.0.nupkg.sha512", + "system.resources.resourcemanager.nuspec" + ] + }, + "System.Runtime/4.3.0": { + "sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "type": "package", + "path": "system.runtime/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Runtime.dll", + "lib/portable-net45+win8+wp80+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Runtime.dll", + "ref/netcore50/System.Runtime.dll", + "ref/netcore50/System.Runtime.xml", + "ref/netcore50/de/System.Runtime.xml", + "ref/netcore50/es/System.Runtime.xml", + "ref/netcore50/fr/System.Runtime.xml", + "ref/netcore50/it/System.Runtime.xml", + "ref/netcore50/ja/System.Runtime.xml", + "ref/netcore50/ko/System.Runtime.xml", + "ref/netcore50/ru/System.Runtime.xml", + "ref/netcore50/zh-hans/System.Runtime.xml", + "ref/netcore50/zh-hant/System.Runtime.xml", + "ref/netstandard1.0/System.Runtime.dll", + "ref/netstandard1.0/System.Runtime.xml", + "ref/netstandard1.0/de/System.Runtime.xml", + "ref/netstandard1.0/es/System.Runtime.xml", + "ref/netstandard1.0/fr/System.Runtime.xml", + "ref/netstandard1.0/it/System.Runtime.xml", + "ref/netstandard1.0/ja/System.Runtime.xml", + "ref/netstandard1.0/ko/System.Runtime.xml", + "ref/netstandard1.0/ru/System.Runtime.xml", + "ref/netstandard1.0/zh-hans/System.Runtime.xml", + "ref/netstandard1.0/zh-hant/System.Runtime.xml", + "ref/netstandard1.2/System.Runtime.dll", + "ref/netstandard1.2/System.Runtime.xml", + "ref/netstandard1.2/de/System.Runtime.xml", + "ref/netstandard1.2/es/System.Runtime.xml", + "ref/netstandard1.2/fr/System.Runtime.xml", + "ref/netstandard1.2/it/System.Runtime.xml", + "ref/netstandard1.2/ja/System.Runtime.xml", + "ref/netstandard1.2/ko/System.Runtime.xml", + "ref/netstandard1.2/ru/System.Runtime.xml", + "ref/netstandard1.2/zh-hans/System.Runtime.xml", + "ref/netstandard1.2/zh-hant/System.Runtime.xml", + "ref/netstandard1.3/System.Runtime.dll", + "ref/netstandard1.3/System.Runtime.xml", + "ref/netstandard1.3/de/System.Runtime.xml", + "ref/netstandard1.3/es/System.Runtime.xml", + "ref/netstandard1.3/fr/System.Runtime.xml", + "ref/netstandard1.3/it/System.Runtime.xml", + "ref/netstandard1.3/ja/System.Runtime.xml", + "ref/netstandard1.3/ko/System.Runtime.xml", + "ref/netstandard1.3/ru/System.Runtime.xml", + "ref/netstandard1.3/zh-hans/System.Runtime.xml", + "ref/netstandard1.3/zh-hant/System.Runtime.xml", + "ref/netstandard1.5/System.Runtime.dll", + "ref/netstandard1.5/System.Runtime.xml", + "ref/netstandard1.5/de/System.Runtime.xml", + "ref/netstandard1.5/es/System.Runtime.xml", + "ref/netstandard1.5/fr/System.Runtime.xml", + "ref/netstandard1.5/it/System.Runtime.xml", + "ref/netstandard1.5/ja/System.Runtime.xml", + "ref/netstandard1.5/ko/System.Runtime.xml", + "ref/netstandard1.5/ru/System.Runtime.xml", + "ref/netstandard1.5/zh-hans/System.Runtime.xml", + "ref/netstandard1.5/zh-hant/System.Runtime.xml", + "ref/portable-net45+win8+wp80+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.4.3.0.nupkg.sha512", + "system.runtime.nuspec" + ] + }, + "System.Runtime.Caching/5.0.0": { + "sha512": "30D6MkO8WF9jVGWZIP0hmCN8l9BTY4LCsAzLIe4xFSXzs+AjDotR7DpSmj27pFskDURzUvqYYY0ikModgBTxWw==", + "type": "package", + "path": "system.runtime.caching/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netstandard2.0/System.Runtime.Caching.dll", + "lib/netstandard2.0/System.Runtime.Caching.xml", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netstandard2.0/System.Runtime.Caching.dll", + "ref/netstandard2.0/System.Runtime.Caching.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/win/lib/net45/_._", + "runtimes/win/lib/netstandard2.0/System.Runtime.Caching.dll", + "runtimes/win/lib/netstandard2.0/System.Runtime.Caching.xml", + "system.runtime.caching.5.0.0.nupkg.sha512", + "system.runtime.caching.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Runtime.Extensions/4.3.0": { + "sha512": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "type": "package", + "path": "system.runtime.extensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Runtime.Extensions.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Runtime.Extensions.dll", + "ref/netcore50/System.Runtime.Extensions.dll", + "ref/netcore50/System.Runtime.Extensions.xml", + "ref/netcore50/de/System.Runtime.Extensions.xml", + "ref/netcore50/es/System.Runtime.Extensions.xml", + "ref/netcore50/fr/System.Runtime.Extensions.xml", + "ref/netcore50/it/System.Runtime.Extensions.xml", + "ref/netcore50/ja/System.Runtime.Extensions.xml", + "ref/netcore50/ko/System.Runtime.Extensions.xml", + "ref/netcore50/ru/System.Runtime.Extensions.xml", + "ref/netcore50/zh-hans/System.Runtime.Extensions.xml", + "ref/netcore50/zh-hant/System.Runtime.Extensions.xml", + "ref/netstandard1.0/System.Runtime.Extensions.dll", + "ref/netstandard1.0/System.Runtime.Extensions.xml", + "ref/netstandard1.0/de/System.Runtime.Extensions.xml", + "ref/netstandard1.0/es/System.Runtime.Extensions.xml", + "ref/netstandard1.0/fr/System.Runtime.Extensions.xml", + "ref/netstandard1.0/it/System.Runtime.Extensions.xml", + "ref/netstandard1.0/ja/System.Runtime.Extensions.xml", + "ref/netstandard1.0/ko/System.Runtime.Extensions.xml", + "ref/netstandard1.0/ru/System.Runtime.Extensions.xml", + "ref/netstandard1.0/zh-hans/System.Runtime.Extensions.xml", + "ref/netstandard1.0/zh-hant/System.Runtime.Extensions.xml", + "ref/netstandard1.3/System.Runtime.Extensions.dll", + "ref/netstandard1.3/System.Runtime.Extensions.xml", + "ref/netstandard1.3/de/System.Runtime.Extensions.xml", + "ref/netstandard1.3/es/System.Runtime.Extensions.xml", + "ref/netstandard1.3/fr/System.Runtime.Extensions.xml", + "ref/netstandard1.3/it/System.Runtime.Extensions.xml", + "ref/netstandard1.3/ja/System.Runtime.Extensions.xml", + "ref/netstandard1.3/ko/System.Runtime.Extensions.xml", + "ref/netstandard1.3/ru/System.Runtime.Extensions.xml", + "ref/netstandard1.3/zh-hans/System.Runtime.Extensions.xml", + "ref/netstandard1.3/zh-hant/System.Runtime.Extensions.xml", + "ref/netstandard1.5/System.Runtime.Extensions.dll", + "ref/netstandard1.5/System.Runtime.Extensions.xml", + "ref/netstandard1.5/de/System.Runtime.Extensions.xml", + "ref/netstandard1.5/es/System.Runtime.Extensions.xml", + "ref/netstandard1.5/fr/System.Runtime.Extensions.xml", + "ref/netstandard1.5/it/System.Runtime.Extensions.xml", + "ref/netstandard1.5/ja/System.Runtime.Extensions.xml", + "ref/netstandard1.5/ko/System.Runtime.Extensions.xml", + "ref/netstandard1.5/ru/System.Runtime.Extensions.xml", + "ref/netstandard1.5/zh-hans/System.Runtime.Extensions.xml", + "ref/netstandard1.5/zh-hant/System.Runtime.Extensions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.extensions.4.3.0.nupkg.sha512", + "system.runtime.extensions.nuspec" + ] + }, + "System.Runtime.Handles/4.3.0": { + "sha512": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "type": "package", + "path": "system.runtime.handles/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/_._", + "ref/netstandard1.3/System.Runtime.Handles.dll", + "ref/netstandard1.3/System.Runtime.Handles.xml", + "ref/netstandard1.3/de/System.Runtime.Handles.xml", + "ref/netstandard1.3/es/System.Runtime.Handles.xml", + "ref/netstandard1.3/fr/System.Runtime.Handles.xml", + "ref/netstandard1.3/it/System.Runtime.Handles.xml", + "ref/netstandard1.3/ja/System.Runtime.Handles.xml", + "ref/netstandard1.3/ko/System.Runtime.Handles.xml", + "ref/netstandard1.3/ru/System.Runtime.Handles.xml", + "ref/netstandard1.3/zh-hans/System.Runtime.Handles.xml", + "ref/netstandard1.3/zh-hant/System.Runtime.Handles.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.handles.4.3.0.nupkg.sha512", + "system.runtime.handles.nuspec" + ] + }, + "System.Runtime.InteropServices/4.3.0": { + "sha512": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "type": "package", + "path": "system.runtime.interopservices/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Runtime.InteropServices.dll", + "lib/net463/System.Runtime.InteropServices.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Runtime.InteropServices.dll", + "ref/net463/System.Runtime.InteropServices.dll", + "ref/netcore50/System.Runtime.InteropServices.dll", + "ref/netcore50/System.Runtime.InteropServices.xml", + "ref/netcore50/de/System.Runtime.InteropServices.xml", + "ref/netcore50/es/System.Runtime.InteropServices.xml", + "ref/netcore50/fr/System.Runtime.InteropServices.xml", + "ref/netcore50/it/System.Runtime.InteropServices.xml", + "ref/netcore50/ja/System.Runtime.InteropServices.xml", + "ref/netcore50/ko/System.Runtime.InteropServices.xml", + "ref/netcore50/ru/System.Runtime.InteropServices.xml", + "ref/netcore50/zh-hans/System.Runtime.InteropServices.xml", + "ref/netcore50/zh-hant/System.Runtime.InteropServices.xml", + "ref/netcoreapp1.1/System.Runtime.InteropServices.dll", + "ref/netstandard1.1/System.Runtime.InteropServices.dll", + "ref/netstandard1.1/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/de/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/es/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/fr/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/it/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/ja/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/ko/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/ru/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/zh-hans/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/zh-hant/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/System.Runtime.InteropServices.dll", + "ref/netstandard1.2/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/de/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/es/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/fr/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/it/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/ja/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/ko/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/ru/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/zh-hans/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/zh-hant/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/System.Runtime.InteropServices.dll", + "ref/netstandard1.3/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/de/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/es/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/fr/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/it/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/ja/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/ko/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/ru/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/zh-hans/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/zh-hant/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/System.Runtime.InteropServices.dll", + "ref/netstandard1.5/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/de/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/es/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/fr/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/it/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/ja/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/ko/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/ru/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/zh-hans/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/zh-hant/System.Runtime.InteropServices.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.interopservices.4.3.0.nupkg.sha512", + "system.runtime.interopservices.nuspec" + ] + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "sha512": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", + "type": "package", + "path": "system.runtime.interopservices.runtimeinformation/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll", + "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", + "lib/win8/System.Runtime.InteropServices.RuntimeInformation.dll", + "lib/wpa81/System.Runtime.InteropServices.RuntimeInformation.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll", + "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", + "runtimes/win/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll", + "runtimes/win/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll", + "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", + "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512", + "system.runtime.interopservices.runtimeinformation.nuspec" + ] + }, + "System.Runtime.Numerics/4.3.0": { + "sha512": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "type": "package", + "path": "system.runtime.numerics/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Runtime.Numerics.dll", + "lib/netstandard1.3/System.Runtime.Numerics.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Runtime.Numerics.dll", + "ref/netcore50/System.Runtime.Numerics.xml", + "ref/netcore50/de/System.Runtime.Numerics.xml", + "ref/netcore50/es/System.Runtime.Numerics.xml", + "ref/netcore50/fr/System.Runtime.Numerics.xml", + "ref/netcore50/it/System.Runtime.Numerics.xml", + "ref/netcore50/ja/System.Runtime.Numerics.xml", + "ref/netcore50/ko/System.Runtime.Numerics.xml", + "ref/netcore50/ru/System.Runtime.Numerics.xml", + "ref/netcore50/zh-hans/System.Runtime.Numerics.xml", + "ref/netcore50/zh-hant/System.Runtime.Numerics.xml", + "ref/netstandard1.1/System.Runtime.Numerics.dll", + "ref/netstandard1.1/System.Runtime.Numerics.xml", + "ref/netstandard1.1/de/System.Runtime.Numerics.xml", + "ref/netstandard1.1/es/System.Runtime.Numerics.xml", + "ref/netstandard1.1/fr/System.Runtime.Numerics.xml", + "ref/netstandard1.1/it/System.Runtime.Numerics.xml", + "ref/netstandard1.1/ja/System.Runtime.Numerics.xml", + "ref/netstandard1.1/ko/System.Runtime.Numerics.xml", + "ref/netstandard1.1/ru/System.Runtime.Numerics.xml", + "ref/netstandard1.1/zh-hans/System.Runtime.Numerics.xml", + "ref/netstandard1.1/zh-hant/System.Runtime.Numerics.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.numerics.4.3.0.nupkg.sha512", + "system.runtime.numerics.nuspec" + ] + }, + "System.Security.AccessControl/5.0.0": { + "sha512": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "type": "package", + "path": "system.security.accesscontrol/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/System.Security.AccessControl.dll", + "lib/net461/System.Security.AccessControl.dll", + "lib/net461/System.Security.AccessControl.xml", + "lib/netstandard1.3/System.Security.AccessControl.dll", + "lib/netstandard2.0/System.Security.AccessControl.dll", + "lib/netstandard2.0/System.Security.AccessControl.xml", + "lib/uap10.0.16299/_._", + "ref/net46/System.Security.AccessControl.dll", + "ref/net461/System.Security.AccessControl.dll", + "ref/net461/System.Security.AccessControl.xml", + "ref/netstandard1.3/System.Security.AccessControl.dll", + "ref/netstandard1.3/System.Security.AccessControl.xml", + "ref/netstandard1.3/de/System.Security.AccessControl.xml", + "ref/netstandard1.3/es/System.Security.AccessControl.xml", + "ref/netstandard1.3/fr/System.Security.AccessControl.xml", + "ref/netstandard1.3/it/System.Security.AccessControl.xml", + "ref/netstandard1.3/ja/System.Security.AccessControl.xml", + "ref/netstandard1.3/ko/System.Security.AccessControl.xml", + "ref/netstandard1.3/ru/System.Security.AccessControl.xml", + "ref/netstandard1.3/zh-hans/System.Security.AccessControl.xml", + "ref/netstandard1.3/zh-hant/System.Security.AccessControl.xml", + "ref/netstandard2.0/System.Security.AccessControl.dll", + "ref/netstandard2.0/System.Security.AccessControl.xml", + "ref/uap10.0.16299/_._", + "runtimes/win/lib/net46/System.Security.AccessControl.dll", + "runtimes/win/lib/net461/System.Security.AccessControl.dll", + "runtimes/win/lib/net461/System.Security.AccessControl.xml", + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll", + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.xml", + "runtimes/win/lib/netstandard1.3/System.Security.AccessControl.dll", + "runtimes/win/lib/uap10.0.16299/_._", + "system.security.accesscontrol.5.0.0.nupkg.sha512", + "system.security.accesscontrol.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "sha512": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "type": "package", + "path": "system.security.cryptography.algorithms/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Algorithms.dll", + "lib/net461/System.Security.Cryptography.Algorithms.dll", + "lib/net463/System.Security.Cryptography.Algorithms.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Algorithms.dll", + "ref/net461/System.Security.Cryptography.Algorithms.dll", + "ref/net463/System.Security.Cryptography.Algorithms.dll", + "ref/netstandard1.3/System.Security.Cryptography.Algorithms.dll", + "ref/netstandard1.4/System.Security.Cryptography.Algorithms.dll", + "ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/osx/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/net46/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/net463/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/netcore50/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", + "system.security.cryptography.algorithms.4.3.0.nupkg.sha512", + "system.security.cryptography.algorithms.nuspec" + ] + }, + "System.Security.Cryptography.Cng/5.0.0": { + "sha512": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==", + "type": "package", + "path": "system.security.cryptography.cng/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Cng.dll", + "lib/net461/System.Security.Cryptography.Cng.dll", + "lib/net461/System.Security.Cryptography.Cng.xml", + "lib/net462/System.Security.Cryptography.Cng.dll", + "lib/net462/System.Security.Cryptography.Cng.xml", + "lib/net47/System.Security.Cryptography.Cng.dll", + "lib/net47/System.Security.Cryptography.Cng.xml", + "lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll", + "lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll", + "lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml", + "lib/netstandard1.3/System.Security.Cryptography.Cng.dll", + "lib/netstandard1.4/System.Security.Cryptography.Cng.dll", + "lib/netstandard1.6/System.Security.Cryptography.Cng.dll", + "lib/netstandard2.0/System.Security.Cryptography.Cng.dll", + "lib/netstandard2.0/System.Security.Cryptography.Cng.xml", + "lib/netstandard2.1/System.Security.Cryptography.Cng.dll", + "lib/netstandard2.1/System.Security.Cryptography.Cng.xml", + "lib/uap10.0.16299/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Cng.dll", + "ref/net461/System.Security.Cryptography.Cng.dll", + "ref/net461/System.Security.Cryptography.Cng.xml", + "ref/net462/System.Security.Cryptography.Cng.dll", + "ref/net462/System.Security.Cryptography.Cng.xml", + "ref/net47/System.Security.Cryptography.Cng.dll", + "ref/net47/System.Security.Cryptography.Cng.xml", + "ref/netcoreapp2.0/System.Security.Cryptography.Cng.dll", + "ref/netcoreapp2.0/System.Security.Cryptography.Cng.xml", + "ref/netcoreapp2.1/System.Security.Cryptography.Cng.dll", + "ref/netcoreapp2.1/System.Security.Cryptography.Cng.xml", + "ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll", + "ref/netcoreapp3.0/System.Security.Cryptography.Cng.xml", + "ref/netstandard1.3/System.Security.Cryptography.Cng.dll", + "ref/netstandard1.4/System.Security.Cryptography.Cng.dll", + "ref/netstandard1.6/System.Security.Cryptography.Cng.dll", + "ref/netstandard2.0/System.Security.Cryptography.Cng.dll", + "ref/netstandard2.0/System.Security.Cryptography.Cng.xml", + "ref/netstandard2.1/System.Security.Cryptography.Cng.dll", + "ref/netstandard2.1/System.Security.Cryptography.Cng.xml", + "ref/uap10.0.16299/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/win/lib/net46/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.Cng.xml", + "runtimes/win/lib/net462/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net462/System.Security.Cryptography.Cng.xml", + "runtimes/win/lib/net47/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net47/System.Security.Cryptography.Cng.xml", + "runtimes/win/lib/netcoreapp2.0/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml", + "runtimes/win/lib/netstandard1.4/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/uap10.0.16299/_._", + "system.security.cryptography.cng.5.0.0.nupkg.sha512", + "system.security.cryptography.cng.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Security.Cryptography.Csp/4.3.0": { + "sha512": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "type": "package", + "path": "system.security.cryptography.csp/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Csp.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Csp.dll", + "ref/netstandard1.3/System.Security.Cryptography.Csp.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Csp.dll", + "runtimes/win/lib/net46/System.Security.Cryptography.Csp.dll", + "runtimes/win/lib/netcore50/_._", + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Csp.dll", + "system.security.cryptography.csp.4.3.0.nupkg.sha512", + "system.security.cryptography.csp.nuspec" + ] + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "sha512": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "type": "package", + "path": "system.security.cryptography.encoding/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Encoding.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Encoding.dll", + "ref/netstandard1.3/System.Security.Cryptography.Encoding.dll", + "ref/netstandard1.3/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/de/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/es/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/fr/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/it/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/ja/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/ko/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/ru/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/zh-hans/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/zh-hant/System.Security.Cryptography.Encoding.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll", + "runtimes/win/lib/net46/System.Security.Cryptography.Encoding.dll", + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll", + "system.security.cryptography.encoding.4.3.0.nupkg.sha512", + "system.security.cryptography.encoding.nuspec" + ] + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "type": "package", + "path": "system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll", + "ref/netstandard1.6/System.Security.Cryptography.OpenSsl.dll", + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll", + "system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "system.security.cryptography.openssl.nuspec" + ] + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "sha512": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "type": "package", + "path": "system.security.cryptography.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Primitives.dll", + "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Primitives.dll", + "ref/netstandard1.3/System.Security.Cryptography.Primitives.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.security.cryptography.primitives.4.3.0.nupkg.sha512", + "system.security.cryptography.primitives.nuspec" + ] + }, + "System.Security.Cryptography.ProtectedData/5.0.0": { + "sha512": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==", + "type": "package", + "path": "system.security.cryptography.protecteddata/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.ProtectedData.dll", + "lib/net461/System.Security.Cryptography.ProtectedData.dll", + "lib/net461/System.Security.Cryptography.ProtectedData.xml", + "lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll", + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll", + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.xml", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.ProtectedData.dll", + "ref/net461/System.Security.Cryptography.ProtectedData.dll", + "ref/net461/System.Security.Cryptography.ProtectedData.xml", + "ref/netstandard1.3/System.Security.Cryptography.ProtectedData.dll", + "ref/netstandard2.0/System.Security.Cryptography.ProtectedData.dll", + "ref/netstandard2.0/System.Security.Cryptography.ProtectedData.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/win/lib/net46/System.Security.Cryptography.ProtectedData.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.ProtectedData.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.ProtectedData.xml", + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll", + "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll", + "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.xml", + "system.security.cryptography.protecteddata.5.0.0.nupkg.sha512", + "system.security.cryptography.protecteddata.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "sha512": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "type": "package", + "path": "system.security.cryptography.x509certificates/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.X509Certificates.dll", + "lib/net461/System.Security.Cryptography.X509Certificates.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.X509Certificates.dll", + "ref/net461/System.Security.Cryptography.X509Certificates.dll", + "ref/netstandard1.3/System.Security.Cryptography.X509Certificates.dll", + "ref/netstandard1.3/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/de/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/es/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/fr/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/it/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/ja/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/ko/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/ru/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/zh-hans/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/zh-hant/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.dll", + "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/de/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/es/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/fr/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/it/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/ja/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/ko/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/ru/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/zh-hans/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/zh-hant/System.Security.Cryptography.X509Certificates.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll", + "runtimes/win/lib/net46/System.Security.Cryptography.X509Certificates.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.X509Certificates.dll", + "runtimes/win/lib/netcore50/System.Security.Cryptography.X509Certificates.dll", + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll", + "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512", + "system.security.cryptography.x509certificates.nuspec" + ] + }, + "System.Security.Permissions/5.0.0": { + "sha512": "uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==", + "type": "package", + "path": "system.security.permissions/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Security.Permissions.dll", + "lib/net461/System.Security.Permissions.xml", + "lib/net5.0/System.Security.Permissions.dll", + "lib/net5.0/System.Security.Permissions.xml", + "lib/netcoreapp3.0/System.Security.Permissions.dll", + "lib/netcoreapp3.0/System.Security.Permissions.xml", + "lib/netstandard2.0/System.Security.Permissions.dll", + "lib/netstandard2.0/System.Security.Permissions.xml", + "ref/net461/System.Security.Permissions.dll", + "ref/net461/System.Security.Permissions.xml", + "ref/net5.0/System.Security.Permissions.dll", + "ref/net5.0/System.Security.Permissions.xml", + "ref/netcoreapp3.0/System.Security.Permissions.dll", + "ref/netcoreapp3.0/System.Security.Permissions.xml", + "ref/netstandard2.0/System.Security.Permissions.dll", + "ref/netstandard2.0/System.Security.Permissions.xml", + "system.security.permissions.5.0.0.nupkg.sha512", + "system.security.permissions.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Security.Principal.Windows/5.0.0": { + "sha512": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==", + "type": "package", + "path": "system.security.principal.windows/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/System.Security.Principal.Windows.dll", + "lib/net461/System.Security.Principal.Windows.dll", + "lib/net461/System.Security.Principal.Windows.xml", + "lib/netstandard1.3/System.Security.Principal.Windows.dll", + "lib/netstandard2.0/System.Security.Principal.Windows.dll", + "lib/netstandard2.0/System.Security.Principal.Windows.xml", + "lib/uap10.0.16299/_._", + "ref/net46/System.Security.Principal.Windows.dll", + "ref/net461/System.Security.Principal.Windows.dll", + "ref/net461/System.Security.Principal.Windows.xml", + "ref/netcoreapp3.0/System.Security.Principal.Windows.dll", + "ref/netcoreapp3.0/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/System.Security.Principal.Windows.dll", + "ref/netstandard1.3/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/de/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/es/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/fr/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/it/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/ja/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/ko/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/ru/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/zh-hans/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/zh-hant/System.Security.Principal.Windows.xml", + "ref/netstandard2.0/System.Security.Principal.Windows.dll", + "ref/netstandard2.0/System.Security.Principal.Windows.xml", + "ref/uap10.0.16299/_._", + "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.dll", + "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.xml", + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll", + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.xml", + "runtimes/win/lib/net46/System.Security.Principal.Windows.dll", + "runtimes/win/lib/net461/System.Security.Principal.Windows.dll", + "runtimes/win/lib/net461/System.Security.Principal.Windows.xml", + "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.dll", + "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.xml", + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll", + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.xml", + "runtimes/win/lib/netstandard1.3/System.Security.Principal.Windows.dll", + "runtimes/win/lib/uap10.0.16299/_._", + "system.security.principal.windows.5.0.0.nupkg.sha512", + "system.security.principal.windows.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Text.Encoding/4.3.0": { + "sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "type": "package", + "path": "system.text.encoding/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Text.Encoding.dll", + "ref/netcore50/System.Text.Encoding.xml", + "ref/netcore50/de/System.Text.Encoding.xml", + "ref/netcore50/es/System.Text.Encoding.xml", + "ref/netcore50/fr/System.Text.Encoding.xml", + "ref/netcore50/it/System.Text.Encoding.xml", + "ref/netcore50/ja/System.Text.Encoding.xml", + "ref/netcore50/ko/System.Text.Encoding.xml", + "ref/netcore50/ru/System.Text.Encoding.xml", + "ref/netcore50/zh-hans/System.Text.Encoding.xml", + "ref/netcore50/zh-hant/System.Text.Encoding.xml", + "ref/netstandard1.0/System.Text.Encoding.dll", + "ref/netstandard1.0/System.Text.Encoding.xml", + "ref/netstandard1.0/de/System.Text.Encoding.xml", + "ref/netstandard1.0/es/System.Text.Encoding.xml", + "ref/netstandard1.0/fr/System.Text.Encoding.xml", + "ref/netstandard1.0/it/System.Text.Encoding.xml", + "ref/netstandard1.0/ja/System.Text.Encoding.xml", + "ref/netstandard1.0/ko/System.Text.Encoding.xml", + "ref/netstandard1.0/ru/System.Text.Encoding.xml", + "ref/netstandard1.0/zh-hans/System.Text.Encoding.xml", + "ref/netstandard1.0/zh-hant/System.Text.Encoding.xml", + "ref/netstandard1.3/System.Text.Encoding.dll", + "ref/netstandard1.3/System.Text.Encoding.xml", + "ref/netstandard1.3/de/System.Text.Encoding.xml", + "ref/netstandard1.3/es/System.Text.Encoding.xml", + "ref/netstandard1.3/fr/System.Text.Encoding.xml", + "ref/netstandard1.3/it/System.Text.Encoding.xml", + "ref/netstandard1.3/ja/System.Text.Encoding.xml", + "ref/netstandard1.3/ko/System.Text.Encoding.xml", + "ref/netstandard1.3/ru/System.Text.Encoding.xml", + "ref/netstandard1.3/zh-hans/System.Text.Encoding.xml", + "ref/netstandard1.3/zh-hant/System.Text.Encoding.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.text.encoding.4.3.0.nupkg.sha512", + "system.text.encoding.nuspec" + ] + }, + "System.Text.Encoding.CodePages/5.0.0": { + "sha512": "NyscU59xX6Uo91qvhOs2Ccho3AR2TnZPomo1Z0K6YpyztBPM/A5VbkzOO19sy3A3i1TtEnTxA7bCe3Us+r5MWg==", + "type": "package", + "path": "system.text.encoding.codepages/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Text.Encoding.CodePages.dll", + "lib/net461/System.Text.Encoding.CodePages.dll", + "lib/net461/System.Text.Encoding.CodePages.xml", + "lib/netstandard1.3/System.Text.Encoding.CodePages.dll", + "lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/net461/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netcoreapp2.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netcoreapp2.0/System.Text.Encoding.CodePages.xml", + "runtimes/win/lib/netstandard1.3/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.dll", + "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.xml", + "system.text.encoding.codepages.5.0.0.nupkg.sha512", + "system.text.encoding.codepages.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Text.Encoding.Extensions/4.3.0": { + "sha512": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "type": "package", + "path": "system.text.encoding.extensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Text.Encoding.Extensions.dll", + "ref/netcore50/System.Text.Encoding.Extensions.xml", + "ref/netcore50/de/System.Text.Encoding.Extensions.xml", + "ref/netcore50/es/System.Text.Encoding.Extensions.xml", + "ref/netcore50/fr/System.Text.Encoding.Extensions.xml", + "ref/netcore50/it/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ja/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ko/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ru/System.Text.Encoding.Extensions.xml", + "ref/netcore50/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/netcore50/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/System.Text.Encoding.Extensions.dll", + "ref/netstandard1.0/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/de/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/es/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/fr/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/it/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/ja/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/ko/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/ru/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/System.Text.Encoding.Extensions.dll", + "ref/netstandard1.3/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/de/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/es/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/fr/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/it/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/ja/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/ko/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/ru/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.text.encoding.extensions.4.3.0.nupkg.sha512", + "system.text.encoding.extensions.nuspec" + ] + }, + "System.Text.Encodings.Web/4.7.2": { + "sha512": "iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==", + "type": "package", + "path": "system.text.encodings.web/4.7.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Text.Encodings.Web.dll", + "lib/net461/System.Text.Encodings.Web.xml", + "lib/netstandard1.0/System.Text.Encodings.Web.dll", + "lib/netstandard1.0/System.Text.Encodings.Web.xml", + "lib/netstandard2.0/System.Text.Encodings.Web.dll", + "lib/netstandard2.0/System.Text.Encodings.Web.xml", + "lib/netstandard2.1/System.Text.Encodings.Web.dll", + "lib/netstandard2.1/System.Text.Encodings.Web.xml", + "system.text.encodings.web.4.7.2.nupkg.sha512", + "system.text.encodings.web.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Text.Json/4.6.0": { + "sha512": "4F8Xe+JIkVoDJ8hDAZ7HqLkjctN/6WItJIzQaifBwClC7wmoLSda/Sv2i6i1kycqDb3hWF4JCVbpAweyOKHEUA==", + "type": "package", + "path": "system.text.json/4.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Text.Json.dll", + "lib/net461/System.Text.Json.xml", + "lib/netcoreapp3.0/System.Text.Json.dll", + "lib/netcoreapp3.0/System.Text.Json.xml", + "lib/netstandard2.0/System.Text.Json.dll", + "lib/netstandard2.0/System.Text.Json.xml", + "system.text.json.4.6.0.nupkg.sha512", + "system.text.json.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Text.RegularExpressions/4.3.0": { + "sha512": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "type": "package", + "path": "system.text.regularexpressions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net463/System.Text.RegularExpressions.dll", + "lib/netcore50/System.Text.RegularExpressions.dll", + "lib/netstandard1.6/System.Text.RegularExpressions.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net463/System.Text.RegularExpressions.dll", + "ref/netcore50/System.Text.RegularExpressions.dll", + "ref/netcore50/System.Text.RegularExpressions.xml", + "ref/netcore50/de/System.Text.RegularExpressions.xml", + "ref/netcore50/es/System.Text.RegularExpressions.xml", + "ref/netcore50/fr/System.Text.RegularExpressions.xml", + "ref/netcore50/it/System.Text.RegularExpressions.xml", + "ref/netcore50/ja/System.Text.RegularExpressions.xml", + "ref/netcore50/ko/System.Text.RegularExpressions.xml", + "ref/netcore50/ru/System.Text.RegularExpressions.xml", + "ref/netcore50/zh-hans/System.Text.RegularExpressions.xml", + "ref/netcore50/zh-hant/System.Text.RegularExpressions.xml", + "ref/netcoreapp1.1/System.Text.RegularExpressions.dll", + "ref/netstandard1.0/System.Text.RegularExpressions.dll", + "ref/netstandard1.0/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/de/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/es/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/fr/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/it/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/ja/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/ko/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/ru/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/zh-hans/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/zh-hant/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/System.Text.RegularExpressions.dll", + "ref/netstandard1.3/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/de/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/es/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/fr/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/it/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/ja/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/ko/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/ru/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/zh-hans/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/zh-hant/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/System.Text.RegularExpressions.dll", + "ref/netstandard1.6/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/de/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/es/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/fr/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/it/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/ja/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/ko/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/ru/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/zh-hans/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/zh-hant/System.Text.RegularExpressions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.text.regularexpressions.4.3.0.nupkg.sha512", + "system.text.regularexpressions.nuspec" + ] + }, + "System.Threading/4.3.0": { + "sha512": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "type": "package", + "path": "system.threading/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Threading.dll", + "lib/netstandard1.3/System.Threading.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Threading.dll", + "ref/netcore50/System.Threading.xml", + "ref/netcore50/de/System.Threading.xml", + "ref/netcore50/es/System.Threading.xml", + "ref/netcore50/fr/System.Threading.xml", + "ref/netcore50/it/System.Threading.xml", + "ref/netcore50/ja/System.Threading.xml", + "ref/netcore50/ko/System.Threading.xml", + "ref/netcore50/ru/System.Threading.xml", + "ref/netcore50/zh-hans/System.Threading.xml", + "ref/netcore50/zh-hant/System.Threading.xml", + "ref/netstandard1.0/System.Threading.dll", + "ref/netstandard1.0/System.Threading.xml", + "ref/netstandard1.0/de/System.Threading.xml", + "ref/netstandard1.0/es/System.Threading.xml", + "ref/netstandard1.0/fr/System.Threading.xml", + "ref/netstandard1.0/it/System.Threading.xml", + "ref/netstandard1.0/ja/System.Threading.xml", + "ref/netstandard1.0/ko/System.Threading.xml", + "ref/netstandard1.0/ru/System.Threading.xml", + "ref/netstandard1.0/zh-hans/System.Threading.xml", + "ref/netstandard1.0/zh-hant/System.Threading.xml", + "ref/netstandard1.3/System.Threading.dll", + "ref/netstandard1.3/System.Threading.xml", + "ref/netstandard1.3/de/System.Threading.xml", + "ref/netstandard1.3/es/System.Threading.xml", + "ref/netstandard1.3/fr/System.Threading.xml", + "ref/netstandard1.3/it/System.Threading.xml", + "ref/netstandard1.3/ja/System.Threading.xml", + "ref/netstandard1.3/ko/System.Threading.xml", + "ref/netstandard1.3/ru/System.Threading.xml", + "ref/netstandard1.3/zh-hans/System.Threading.xml", + "ref/netstandard1.3/zh-hant/System.Threading.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Threading.dll", + "system.threading.4.3.0.nupkg.sha512", + "system.threading.nuspec" + ] + }, + "System.Threading.Tasks/4.3.0": { + "sha512": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "type": "package", + "path": "system.threading.tasks/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Threading.Tasks.dll", + "ref/netcore50/System.Threading.Tasks.xml", + "ref/netcore50/de/System.Threading.Tasks.xml", + "ref/netcore50/es/System.Threading.Tasks.xml", + "ref/netcore50/fr/System.Threading.Tasks.xml", + "ref/netcore50/it/System.Threading.Tasks.xml", + "ref/netcore50/ja/System.Threading.Tasks.xml", + "ref/netcore50/ko/System.Threading.Tasks.xml", + "ref/netcore50/ru/System.Threading.Tasks.xml", + "ref/netcore50/zh-hans/System.Threading.Tasks.xml", + "ref/netcore50/zh-hant/System.Threading.Tasks.xml", + "ref/netstandard1.0/System.Threading.Tasks.dll", + "ref/netstandard1.0/System.Threading.Tasks.xml", + "ref/netstandard1.0/de/System.Threading.Tasks.xml", + "ref/netstandard1.0/es/System.Threading.Tasks.xml", + "ref/netstandard1.0/fr/System.Threading.Tasks.xml", + "ref/netstandard1.0/it/System.Threading.Tasks.xml", + "ref/netstandard1.0/ja/System.Threading.Tasks.xml", + "ref/netstandard1.0/ko/System.Threading.Tasks.xml", + "ref/netstandard1.0/ru/System.Threading.Tasks.xml", + "ref/netstandard1.0/zh-hans/System.Threading.Tasks.xml", + "ref/netstandard1.0/zh-hant/System.Threading.Tasks.xml", + "ref/netstandard1.3/System.Threading.Tasks.dll", + "ref/netstandard1.3/System.Threading.Tasks.xml", + "ref/netstandard1.3/de/System.Threading.Tasks.xml", + "ref/netstandard1.3/es/System.Threading.Tasks.xml", + "ref/netstandard1.3/fr/System.Threading.Tasks.xml", + "ref/netstandard1.3/it/System.Threading.Tasks.xml", + "ref/netstandard1.3/ja/System.Threading.Tasks.xml", + "ref/netstandard1.3/ko/System.Threading.Tasks.xml", + "ref/netstandard1.3/ru/System.Threading.Tasks.xml", + "ref/netstandard1.3/zh-hans/System.Threading.Tasks.xml", + "ref/netstandard1.3/zh-hant/System.Threading.Tasks.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.threading.tasks.4.3.0.nupkg.sha512", + "system.threading.tasks.nuspec" + ] + }, + "System.Threading.Tasks.Extensions/4.5.2": { + "sha512": "BG/TNxDFv0svAzx8OiMXDlsHfGw623BZ8tCXw4YLhDFDvDhNUEV58jKYMGRnkbJNm7c3JNNJDiN7JBMzxRBR2w==", + "type": "package", + "path": "system.threading.tasks.extensions/4.5.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/netcoreapp2.1/_._", + "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll", + "lib/netstandard1.0/System.Threading.Tasks.Extensions.xml", + "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll", + "lib/netstandard2.0/System.Threading.Tasks.Extensions.xml", + "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll", + "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/netcoreapp2.1/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.threading.tasks.extensions.4.5.2.nupkg.sha512", + "system.threading.tasks.extensions.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Threading.Thread/4.0.0": { + "sha512": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", + "type": "package", + "path": "system.threading.thread/4.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Threading.Thread.dll", + "lib/netcore50/_._", + "lib/netstandard1.3/System.Threading.Thread.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Threading.Thread.dll", + "ref/netstandard1.3/System.Threading.Thread.dll", + "ref/netstandard1.3/System.Threading.Thread.xml", + "ref/netstandard1.3/de/System.Threading.Thread.xml", + "ref/netstandard1.3/es/System.Threading.Thread.xml", + "ref/netstandard1.3/fr/System.Threading.Thread.xml", + "ref/netstandard1.3/it/System.Threading.Thread.xml", + "ref/netstandard1.3/ja/System.Threading.Thread.xml", + "ref/netstandard1.3/ko/System.Threading.Thread.xml", + "ref/netstandard1.3/ru/System.Threading.Thread.xml", + "ref/netstandard1.3/zh-hans/System.Threading.Thread.xml", + "ref/netstandard1.3/zh-hant/System.Threading.Thread.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.threading.thread.4.0.0.nupkg.sha512", + "system.threading.thread.nuspec" + ] + }, + "System.Threading.Timer/4.3.0": { + "sha512": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", + "type": "package", + "path": "system.threading.timer/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net451/_._", + "lib/portable-net451+win81+wpa81/_._", + "lib/win81/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net451/_._", + "ref/netcore50/System.Threading.Timer.dll", + "ref/netcore50/System.Threading.Timer.xml", + "ref/netcore50/de/System.Threading.Timer.xml", + "ref/netcore50/es/System.Threading.Timer.xml", + "ref/netcore50/fr/System.Threading.Timer.xml", + "ref/netcore50/it/System.Threading.Timer.xml", + "ref/netcore50/ja/System.Threading.Timer.xml", + "ref/netcore50/ko/System.Threading.Timer.xml", + "ref/netcore50/ru/System.Threading.Timer.xml", + "ref/netcore50/zh-hans/System.Threading.Timer.xml", + "ref/netcore50/zh-hant/System.Threading.Timer.xml", + "ref/netstandard1.2/System.Threading.Timer.dll", + "ref/netstandard1.2/System.Threading.Timer.xml", + "ref/netstandard1.2/de/System.Threading.Timer.xml", + "ref/netstandard1.2/es/System.Threading.Timer.xml", + "ref/netstandard1.2/fr/System.Threading.Timer.xml", + "ref/netstandard1.2/it/System.Threading.Timer.xml", + "ref/netstandard1.2/ja/System.Threading.Timer.xml", + "ref/netstandard1.2/ko/System.Threading.Timer.xml", + "ref/netstandard1.2/ru/System.Threading.Timer.xml", + "ref/netstandard1.2/zh-hans/System.Threading.Timer.xml", + "ref/netstandard1.2/zh-hant/System.Threading.Timer.xml", + "ref/portable-net451+win81+wpa81/_._", + "ref/win81/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.threading.timer.4.3.0.nupkg.sha512", + "system.threading.timer.nuspec" + ] + }, + "System.Windows.Extensions/5.0.0": { + "sha512": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", + "type": "package", + "path": "system.windows.extensions/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netcoreapp3.0/System.Windows.Extensions.dll", + "lib/netcoreapp3.0/System.Windows.Extensions.xml", + "ref/netcoreapp3.0/System.Windows.Extensions.dll", + "ref/netcoreapp3.0/System.Windows.Extensions.xml", + "runtimes/win/lib/netcoreapp3.0/System.Windows.Extensions.dll", + "runtimes/win/lib/netcoreapp3.0/System.Windows.Extensions.xml", + "system.windows.extensions.5.0.0.nupkg.sha512", + "system.windows.extensions.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Xml.ReaderWriter/4.3.0": { + "sha512": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "type": "package", + "path": "system.xml.readerwriter/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net46/System.Xml.ReaderWriter.dll", + "lib/netcore50/System.Xml.ReaderWriter.dll", + "lib/netstandard1.3/System.Xml.ReaderWriter.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net46/System.Xml.ReaderWriter.dll", + "ref/netcore50/System.Xml.ReaderWriter.dll", + "ref/netcore50/System.Xml.ReaderWriter.xml", + "ref/netcore50/de/System.Xml.ReaderWriter.xml", + "ref/netcore50/es/System.Xml.ReaderWriter.xml", + "ref/netcore50/fr/System.Xml.ReaderWriter.xml", + "ref/netcore50/it/System.Xml.ReaderWriter.xml", + "ref/netcore50/ja/System.Xml.ReaderWriter.xml", + "ref/netcore50/ko/System.Xml.ReaderWriter.xml", + "ref/netcore50/ru/System.Xml.ReaderWriter.xml", + "ref/netcore50/zh-hans/System.Xml.ReaderWriter.xml", + "ref/netcore50/zh-hant/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/System.Xml.ReaderWriter.dll", + "ref/netstandard1.0/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/de/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/es/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/fr/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/it/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/ja/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/ko/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/ru/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/zh-hans/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/zh-hant/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/System.Xml.ReaderWriter.dll", + "ref/netstandard1.3/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/de/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/es/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/fr/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/it/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/ja/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/ko/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/ru/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/zh-hans/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/zh-hant/System.Xml.ReaderWriter.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.xml.readerwriter.4.3.0.nupkg.sha512", + "system.xml.readerwriter.nuspec" + ] + }, + "System.Xml.XDocument/4.3.0": { + "sha512": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "type": "package", + "path": "system.xml.xdocument/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Xml.XDocument.dll", + "lib/netstandard1.3/System.Xml.XDocument.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Xml.XDocument.dll", + "ref/netcore50/System.Xml.XDocument.xml", + "ref/netcore50/de/System.Xml.XDocument.xml", + "ref/netcore50/es/System.Xml.XDocument.xml", + "ref/netcore50/fr/System.Xml.XDocument.xml", + "ref/netcore50/it/System.Xml.XDocument.xml", + "ref/netcore50/ja/System.Xml.XDocument.xml", + "ref/netcore50/ko/System.Xml.XDocument.xml", + "ref/netcore50/ru/System.Xml.XDocument.xml", + "ref/netcore50/zh-hans/System.Xml.XDocument.xml", + "ref/netcore50/zh-hant/System.Xml.XDocument.xml", + "ref/netstandard1.0/System.Xml.XDocument.dll", + "ref/netstandard1.0/System.Xml.XDocument.xml", + "ref/netstandard1.0/de/System.Xml.XDocument.xml", + "ref/netstandard1.0/es/System.Xml.XDocument.xml", + "ref/netstandard1.0/fr/System.Xml.XDocument.xml", + "ref/netstandard1.0/it/System.Xml.XDocument.xml", + "ref/netstandard1.0/ja/System.Xml.XDocument.xml", + "ref/netstandard1.0/ko/System.Xml.XDocument.xml", + "ref/netstandard1.0/ru/System.Xml.XDocument.xml", + "ref/netstandard1.0/zh-hans/System.Xml.XDocument.xml", + "ref/netstandard1.0/zh-hant/System.Xml.XDocument.xml", + "ref/netstandard1.3/System.Xml.XDocument.dll", + "ref/netstandard1.3/System.Xml.XDocument.xml", + "ref/netstandard1.3/de/System.Xml.XDocument.xml", + "ref/netstandard1.3/es/System.Xml.XDocument.xml", + "ref/netstandard1.3/fr/System.Xml.XDocument.xml", + "ref/netstandard1.3/it/System.Xml.XDocument.xml", + "ref/netstandard1.3/ja/System.Xml.XDocument.xml", + "ref/netstandard1.3/ko/System.Xml.XDocument.xml", + "ref/netstandard1.3/ru/System.Xml.XDocument.xml", + "ref/netstandard1.3/zh-hans/System.Xml.XDocument.xml", + "ref/netstandard1.3/zh-hant/System.Xml.XDocument.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.xml.xdocument.4.3.0.nupkg.sha512", + "system.xml.xdocument.nuspec" + ] + }, + "Twilio/6.2.0": { + "sha512": "8SSijG2yKTQPRxbmkLR8BlnFuDG4WYf4jOyrBe4mNcj+wcYN3fvs5lo2WXUwBPj9M1+Z99NyHLq+KjGo1GvztA==", + "type": "package", + "path": "twilio/6.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net35/Twilio.dll", + "lib/net35/Twilio.xml", + "lib/net451/Twilio.dll", + "lib/net451/Twilio.xml", + "lib/netstandard1.4/Twilio.dll", + "lib/netstandard1.4/Twilio.xml", + "lib/netstandard2.0/Twilio.dll", + "lib/netstandard2.0/Twilio.xml", + "twilio.6.2.0.nupkg.sha512", + "twilio.nuspec" + ] + }, + "XLParser/1.5.2": { + "sha512": "8tnUCmMbn6c/HGuHFyq1sulHym8YReTKDNXFFQk0U8nldNx6RGrwRvLh0+aQjEc7YoC3Q1ztH1npLt7dClKqjw==", + "type": "package", + "path": "xlparser/1.5.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net452/XLParser.dll", + "lib/net461/XLParser.dll", + "lib/netstandard1.6/XLParser.dll", + "xlparser.1.5.2.nupkg.sha512", + "xlparser.nuspec" + ] + } + }, + "projectFileDependencyGroups": { + "net6.0": [ + "BCrypt.Net-Next >= 4.0.2", + "ClosedXML >= 0.97.0", + "Dapper >= 2.0.123", + "Dapper.FluentMap >= 2.0.0", + "DinkToPdf >= 1.0.8", + "DocumentFormat.OpenXml >= 2.19.0", + "ExcelDataReader >= 3.6.0", + "ExcelDataReader.DataSet >= 3.6.0", + "Microsoft.AspNetCore.Authentication.JwtBearer >= 6.0.2", + "Microsoft.Data.SqlClient >= 4.1.0", + "Newtonsoft.Json >= 13.0.1", + "Swashbuckle.AspNetCore >= 6.2.3", + "Twilio >= 6.2.0" + ] + }, + "packageFolders": { + "C:\\Users\\Luis Rendon\\.nuget\\packages\\": {}, + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Projects\\staging\\Gemco\\GEMCOBackend\\GEMCO.Backend\\GEMCO.Backend.csproj", + "projectName": "GEMCO.Backend", + "projectPath": "C:\\Projects\\staging\\Gemco\\GEMCOBackend\\GEMCO.Backend\\GEMCO.Backend.csproj", + "packagesPath": "C:\\Users\\Luis Rendon\\.nuget\\packages\\", + "outputPath": "C:\\Projects\\staging\\Gemco\\GEMCOBackend\\GEMCO.Backend\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\Luis Rendon\\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": [ + "net6.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net6.0": { + "targetAlias": "net6.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net6.0": { + "targetAlias": "net6.0", + "dependencies": { + "BCrypt.Net-Next": { + "target": "Package", + "version": "[4.0.2, )" + }, + "ClosedXML": { + "target": "Package", + "version": "[0.97.0, )" + }, + "Dapper": { + "target": "Package", + "version": "[2.0.123, )" + }, + "Dapper.FluentMap": { + "target": "Package", + "version": "[2.0.0, )" + }, + "DinkToPdf": { + "target": "Package", + "version": "[1.0.8, )" + }, + "DocumentFormat.OpenXml": { + "target": "Package", + "version": "[2.19.0, )" + }, + "ExcelDataReader": { + "target": "Package", + "version": "[3.6.0, )" + }, + "ExcelDataReader.DataSet": { + "target": "Package", + "version": "[3.6.0, )" + }, + "Microsoft.AspNetCore.Authentication.JwtBearer": { + "target": "Package", + "version": "[6.0.2, )" + }, + "Microsoft.Data.SqlClient": { + "target": "Package", + "version": "[4.1.0, )" + }, + "Newtonsoft.Json": { + "target": "Package", + "version": "[13.0.1, )" + }, + "Swashbuckle.AspNetCore": { + "target": "Package", + "version": "[6.2.3, )" + }, + "Twilio": { + "target": "Package", + "version": "[6.2.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.203\\RuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/GEMCO.Backend/obj/staticwebassets.pack.sentinel b/GEMCO.Backend/obj/staticwebassets.pack.sentinel new file mode 100644 index 0000000..0f3113a --- /dev/null +++ b/GEMCO.Backend/obj/staticwebassets.pack.sentinel @@ -0,0 +1,3892 @@ +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0