public CustomerDetailsVM GetCustomerDetailsAndOrders(int id) { var cDetails = context.Customers.First(c => c.CustomerId == id); var cOrders = context.Orders .Where(o => o.CustomerId == id && o.IsReturned == false) .Select(o => new OrderVM { BookingNr = o.BookingNr, CustomerId = o.CustomerId, PickUpDate = o.PickUpDate, CurrentMileage = o.CurrentMileage, }) .ToArray(); var cHistory = context.HistoryLog .Where(h => h.CustomerId == id) .Select(h => new HistoryLogVM { CustomerId = h.CustomerId, Activity = h.Activity }).ToArray(); CustomerDetailsVM details = new CustomerDetailsVM(); details.CustomerId = cDetails.CustomerId; details.Ssn = cDetails.Ssn; details.FirstName = cDetails.FirstName; details.LastName = cDetails.LastName; details.Orders = cOrders; details.History = cHistory; return(details); }
/// <summary> /// Gets the customer details asynchronous. /// </summary> /// <returns></returns> public async Task <List <CustomerDetailsVM> > GetCustomerDetailsAsync() { List <CustomerDetailsVM> customerDTOs = new List <CustomerDetailsVM>(); IEnumerable <TblCustomer> customers = await _context.TblCustomer.ToListAsync(); foreach (var customer in customers) { TblMaster1 currentMaster1 = await _context.TblMaster1.Where(x => x.Customer == customer.Id).FirstOrDefaultAsync(); TblMaster2 currentMaster2 = await _context.TblMaster2.Where(x => x.Customer == customer.Id).FirstOrDefaultAsync(); TblConsultant currentConsultant = await _context.TblConsultant.Where(x => x.Customer == customer.Id).FirstOrDefaultAsync(); CustomerDetailsVM customerDTO = new CustomerDetailsVM() { Id = customer.Id, CustomerNumber = customer.CustomerNumber, Name = currentMaster1.FirstName, LastVisit = customer.LastVisit, MatchCode = currentMaster1.MatchCode, Type = currentMaster2.CustomerType, SalesConsultant = currentConsultant.SalesConsultant, VAT = currentMaster2.Vat }; customerDTOs.Add(customerDTO); } return(customerDTOs); }