public void GetBillsToShow() { using (var context = new TownUtilityBillSystemV2Entities()) { List <BILL> rndBillsDB = GetSomeRandomBillsDB(context); foreach (var b in rndBillsDB) { Customer customer = new Customer(); var accountDB = context.ACCOUNTs.Where(c => c.ID == b.ACCOUNT_ID).FirstOrDefault(); var customerDB = context.CUSTOMERs.Where(c => c.ACCOUNT_ID == accountDB.ID).FirstOrDefault(); CustomerType customerType; Address address; GetAddressAndCustomerTypeForCustomer(context, customerDB, out customerType, out address); customer.Id = customerDB.ID; customer.Surname = customerDB.SURNAME; customer.Name = customerDB.NAME; customer.Address = address; Bills.Add(new Bill() { Id = b.ID, Number = b.NUMBER, Period = HelperMethod.GetFullMonthName(b.PERIOD), Date = b.DATE, Sum = b.SUM, Paid = b.PAID, Customer = customer }); } } }
public static Bill Get(BILL bill) { return(new Bill { Id = bill.ID, Number = bill.NUMBER, Date = bill.DATE, Period = HelperMethod.GetFullMonthName(bill.PERIOD), Sum = bill.SUM, Paid = bill.PAID }); }
public void FindBills(string searchString) { using (var context = new TownUtilityBillSystemV2Entities()) { DateTime billPeriodDate; string billPeriod = null; if (DateTime.TryParse(searchString, out billPeriodDate)) { billPeriod = billPeriodDate.ToString("yyyy-MM"); } List <int> accountIds = (from c in context.CUSTOMERs where c.SURNAME.Contains(searchString) || c.NAME.Contains(searchString) || (c.SURNAME + " " + c.NAME).Contains(searchString) || c.ADDRESS.TOWN.NAME.Contains(searchString) || c.ADDRESS.STREET.NAME.Contains(searchString) || c.ADDRESS.BUILDING.NUMBER.Contains(searchString) || c.ADDRESS.FLAT_PART.NAME.Contains(searchString) || c.CUSTOMER_TYPE.NAME.Contains(searchString) || c.ADDRESS.INDEX.VALUE.ToString().Contains(searchString) select c) .Select(c => c.ACCOUNT_ID).ToList(); var billsDBFoundByCustomerData = context.BILLs.Where(b => accountIds.Any(i => b.ACCOUNT_ID == i)).Distinct().ToList(); var billsDBFoundByBillData = (from b in context.BILLs where b.NUMBER.Contains(searchString) || b.PERIOD.Contains(billPeriod) select b) .ToList(); var allBills = billsDBFoundByCustomerData.Concat(billsDBFoundByBillData).OrderBy(b => b.NUMBER).ToList(); foreach (var b in allBills) { Customer customer = new Customer(); var accountDB = context.ACCOUNTs.Where(c => c.ID == b.ACCOUNT_ID).FirstOrDefault(); var customerDB = context.CUSTOMERs.Where(c => c.ACCOUNT_ID == accountDB.ID).FirstOrDefault(); CustomerType customerType; Address address; GetAddressAndCustomerTypeForCustomer(context, customerDB, out customerType, out address); customer.Id = customerDB.ID; customer.Surname = customerDB.SURNAME; customer.Name = customerDB.NAME; customer.Address = address; Bills.Add(new Bill() { Id = b.ID, Number = b.NUMBER, Period = HelperMethod.GetFullMonthName(b.PERIOD), Date = b.DATE, Sum = b.SUM, Paid = b.PAID, Customer = customer }); } } }