public IList <ICustomer> GetCustomers(ICustomerFilter filter) { SqlQueryBuilder sqlQueryBuilder = new SqlQueryBuilder(); sqlQueryBuilder.Select = " SELECT * "; sqlQueryBuilder.From = " FROM [dbo].[Customer] "; if (filter.Id.HasValue) { sqlQueryBuilder.Where.Add(new SqlWhere() { Where = "Id = @Id", Param = new SqlParameter("@Id", filter.Id.Value) }); } if (filter.Active.HasValue) { sqlQueryBuilder.Where.Add(new SqlWhere() { Where = "Active = @Active", Param = new SqlParameter("@Active", filter.Active.Value) }); } if (filter.DefaultTransactionTypeId.HasValue) { sqlQueryBuilder.Where.Add(new SqlWhere() { Where = "DefaultTransactionTypeId = @DefaultTransactionTypeId", Param = new SqlParameter("@DefaultTransactionTypeId", filter.DefaultTransactionTypeId.Value) }); } if (!string.IsNullOrWhiteSpace(filter.Name)) { sqlQueryBuilder.Where.Add(new SqlWhere() { Where = "Name = @Name", Param = new SqlParameter("@Name", filter.Name) }); } var table = SqlService.GetDataTable(sqlQueryBuilder); var myEnumerable = table.AsEnumerable(); var result = (from item in myEnumerable select new Customer { Active = item.Field <bool>("Active"), DefaultTransactionTypeId = item.Field <int?>("DefaultTransactionTypeId"), Name = item.Field <string>("Name"), Description = item.Field <string>("Description"), Id = item.Field <int>("Id") }).ToList <ICustomer>(); var ttService = new TransactionTypeService(); var tts = ttService.GetTransactionTypes(); foreach (var customer in result) { if (customer.DefaultTransactionTypeId.HasValue) { customer.DefaultTransactionType = tts.Where(tt => tt.Id == customer.DefaultTransactionTypeId.Value).FirstOrDefault(); } } return(result); }
public Task <IList <ICustomer> > GetCustomersAsync(ICustomerFilter filter) { return(Task.Factory.StartNew <IList <ICustomer> >(() => { return GetCustomers(filter); })); }
public async Task <IReadOnlyCollection <CustomerDto> > GetFiltered(ICustomerFilter filter) { var customers = _unitOfWork.Customers .GetAll(); if (filter.Ids.Any()) { customers = customers.Where(x => filter.Ids.Contains(x.Id)); } if (!string.IsNullOrWhiteSpace(filter.Email)) { var user = await _userManager.FindByEmailAsync(filter.Email); if (user != null) { customers = customers.Where(x => x.UserId == user.Id); } } return(_mapper.Map <List <CustomerDto> >(customers)); }
public CustomerFilterBuilder() { _customerFilter = new CustomerFilter(); }