示例#1
0
        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);
        }
示例#2
0
 public Task <IList <ICustomer> > GetCustomersAsync(ICustomerFilter filter)
 {
     return(Task.Factory.StartNew <IList <ICustomer> >(() =>
     {
         return GetCustomers(filter);
     }));
 }
示例#3
0
        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();
 }