public IEnumerable <Contract> GetAll() { IQuery query = new GetAllContractsQuery(); List <Contract> contracts = new List <Contract>(); using (var connection = new SqlConnection(connectionString)) { connection.Query <Contract, Product, int, Transport, ForeignTransport, Contract>(query.Sql, (contract, product, countP, transport, fTransport) => { int index; if (!contracts.Contains(contract)) { contracts.Add(contract); index = contracts.Count - 1; contracts[index].SetAdditionalTransport(fTransport); contracts[index].SetTransport(transport); } else { index = contracts.IndexOf(contract); } contracts[index].AddProduct(product, countP); return(contract); }, splitOn: "ID,count,ID,ID"); } return(contracts); }
public async Task <IEnumerable <ContractDto> > Handle(GetAllContractsQuery request, CancellationToken cancellationToken) { var qry = from contract in db.Contracts join client in db.Clients on contract.ClientId equals client.Id into clients from client in clients.DefaultIfEmpty() join user in userManager.Users on contract.IdInstalador equals user.Id into users from user in users.DefaultIfEmpty() where contract.Discontinued == false select new ContractDto() { Id = contract.Id, Client = client.Description, ClientId = contract.ClientId, Numero = contract.Numero, Suplemento = contract.Suplemento, NumeroSuplement = contract.NumeroSuplement, FechaEntrega = contract.FechaEntrega, FechaFirma = contract.FechaFirma, FechaRecibido = contract.FechaRecibido, IdInstalador = contract.IdInstalador, Instalador = user.FullName, Discontinued = contract.Discontinued, Objeto = contract.Objeto, Ubicacion = contract.Ubicacion, Master = contract.Master, InicioPostVenta = contract.InicioPostVenta, FinalPostVenta = contract.FinalPostVenta, ImporteLicenciasCUC = contract.ImporteLicenciasCUC, ImporteLicenciasMN = contract.ImporteLicenciasMN, ImportePostVentaCUC = contract.ImportePostVentaCUC, ImportePostVentaMN = contract.ImportePostVentaMN }; return(qry); }