/// <summary> /// Method returns filtered customers from databse /// </summary> /// <param name="filter">Name or Surname of Customer</param> /// <returns>Collection of Customers from Database</returns> public async Task <ObservableCollection <DtoCustomer> > GetCustomers(string filter = null) { var ret = new ObservableCollection <DtoCustomer>(); using (var data = Context) { if (!string.IsNullOrWhiteSpace(filter)) { foreach (var item in await(from item in data.Customer where item.name.Contains(filter) || item.surname.Contains(filter) || item.personalIdentityNumber.Contains(filter) select item).Take(50).ToListAsync()) { ret.Add(CustomerConverter.DataAccsessToDto(item)); } } else { foreach (var item in await(from item in data.Customer select item).Take(50).ToListAsync()) { ret.Add(CustomerConverter.DataAccsessToDto(item)); } } return(ret); } }
/// <summary> /// Returns Custmer with specific ID /// </summary> /// <param name="customerId">Customer ID</param> /// <returns>Customer Business Object</returns> public async Task <DtoCustomer> GetCustomer(int customerId) { try { using (var data = Context) return (CustomerConverter.DataAccsessToDto( await (from item in data.Customer where item.id == customerId select item) .FirstOrDefaultAsync())); } catch (Exception) { return(null); } }
/// <summary> /// Returns Customer with specific email /// </summary> /// <param name="email">Customer e-mail</param> /// <returns>Customer Business Object</returns> public async Task <DtoCustomer> GetCustomer(string email) { using (var data = Context) { var c = await data.Customer.Where(cc => cc.email == email).ToListAsync(); if (!c.Any()) { return(null); } if (c.Count > 1) { throw new Exception("Emails are not unique"); } return(CustomerConverter.DataAccsessToDto(c.First())); } }