示例#1
0
        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);
        }
示例#2
0
        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);
        }