public EVoucherFilter ConvertFilterDTOToFilterEntity(EVoucherMaster_EVoucherFilterDTO EVoucherMaster_EVoucherFilterDTO)
        {
            EVoucherFilter EVoucherFilter = new EVoucherFilter();

            EVoucherFilter.Selects = EVoucherSelect.ALL;

            EVoucherFilter.Id = new LongFilter {
                Equal = EVoucherMaster_EVoucherFilterDTO.Id
            };
            EVoucherFilter.CustomerId = new LongFilter {
                Equal = EVoucherMaster_EVoucherFilterDTO.CustomerId
            };
            EVoucherFilter.ProductId = new LongFilter {
                Equal = EVoucherMaster_EVoucherFilterDTO.ProductId
            };
            EVoucherFilter.Name = new StringFilter {
                StartsWith = EVoucherMaster_EVoucherFilterDTO.Name
            };
            EVoucherFilter.Start = new DateTimeFilter {
                Equal = EVoucherMaster_EVoucherFilterDTO.Start
            };
            EVoucherFilter.End = new DateTimeFilter {
                Equal = EVoucherMaster_EVoucherFilterDTO.End
            };
            EVoucherFilter.Quantity = new LongFilter {
                Equal = EVoucherMaster_EVoucherFilterDTO.Quantity
            };
            return(EVoucherFilter);
        }
Example #2
0
        public async Task <int> Count(EVoucherFilter filter)
        {
            IQueryable <EVoucherDAO> EVoucherDAOs = DataContext.EVoucher;

            EVoucherDAOs = DynamicFilter(EVoucherDAOs, filter);
            return(await EVoucherDAOs.CountAsync());
        }
        public async Task <int> Count([FromBody] EVoucherMaster_EVoucherFilterDTO EVoucherMaster_EVoucherFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new MessageException(ModelState);
            }

            EVoucherFilter EVoucherFilter = ConvertFilterDTOToFilterEntity(EVoucherMaster_EVoucherFilterDTO);

            return(await EVoucherService.Count(EVoucherFilter));
        }
        public async Task <List <EVoucherMaster_EVoucherDTO> > List([FromBody] EVoucherMaster_EVoucherFilterDTO EVoucherMaster_EVoucherFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new MessageException(ModelState);
            }

            EVoucherFilter EVoucherFilter = ConvertFilterDTOToFilterEntity(EVoucherMaster_EVoucherFilterDTO);

            List <EVoucher> EVouchers = await EVoucherService.List(EVoucherFilter);

            return(EVouchers.Select(c => new EVoucherMaster_EVoucherDTO(c)).ToList());
        }
Example #5
0
        public async Task <List <EVoucher> > List(EVoucherFilter filter)
        {
            if (filter == null)
            {
                return(new List <EVoucher>());
            }
            IQueryable <EVoucherDAO> EVoucherDAOs = DataContext.EVoucher;

            EVoucherDAOs = DynamicFilter(EVoucherDAOs, filter);
            EVoucherDAOs = DynamicOrder(EVoucherDAOs, filter);
            var EVouchers = await DynamicSelect(EVoucherDAOs, filter);

            return(EVouchers);
        }
Example #6
0
        public async Task <bool> ValidateId(EVoucher EVoucher)
        {
            EVoucherFilter EVoucherFilter = new EVoucherFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new LongFilter {
                    Equal = EVoucher.Id
                },
                Selects = EVoucherSelect.Id
            };

            int count = await UOW.EVoucherRepository.Count(EVoucherFilter);

            if (count == 0)
            {
                EVoucher.AddError(nameof(EVoucherValidator), nameof(EVoucher.Id), ErrorCode.IdNotExisted);
            }

            return(count == 1);
        }
Example #7
0
        public async Task <List <EVoucherContentMaster_EVoucherDTO> > SingleListEVoucher([FromBody] EVoucherContentMaster_EVoucherFilterDTO EVoucherContentMaster_EVoucherFilterDTO)
        {
            EVoucherFilter EVoucherFilter = new EVoucherFilter();

            EVoucherFilter.Skip      = 0;
            EVoucherFilter.Take      = 20;
            EVoucherFilter.OrderBy   = EVoucherOrder.Id;
            EVoucherFilter.OrderType = OrderType.ASC;
            EVoucherFilter.Selects   = EVoucherSelect.ALL;

            EVoucherFilter.Id = new LongFilter {
                Equal = EVoucherContentMaster_EVoucherFilterDTO.Id
            };
            EVoucherFilter.CustomerId = new LongFilter {
                Equal = EVoucherContentMaster_EVoucherFilterDTO.CustomerId
            };
            EVoucherFilter.ProductId = new LongFilter {
                Equal = EVoucherContentMaster_EVoucherFilterDTO.ProductId
            };
            EVoucherFilter.Name = new StringFilter {
                StartsWith = EVoucherContentMaster_EVoucherFilterDTO.Name
            };
            EVoucherFilter.Start = new DateTimeFilter {
                Equal = EVoucherContentMaster_EVoucherFilterDTO.Start
            };
            EVoucherFilter.End = new DateTimeFilter {
                Equal = EVoucherContentMaster_EVoucherFilterDTO.End
            };
            EVoucherFilter.Quantity = new LongFilter {
                Equal = EVoucherContentMaster_EVoucherFilterDTO.Quantity
            };

            List <EVoucher> EVouchers = await EVoucherService.List(EVoucherFilter);

            List <EVoucherContentMaster_EVoucherDTO> EVoucherContentMaster_EVoucherDTOs = EVouchers
                                                                                          .Select(x => new EVoucherContentMaster_EVoucherDTO(x)).ToList();

            return(EVoucherContentMaster_EVoucherDTOs);
        }
        public async Task <List <EVoucher> > List(EVoucherFilter EVoucherFilter)
        {
            List <EVoucher> EVouchers = await UOW.EVoucherRepository.List(EVoucherFilter);

            return(EVouchers);
        }
        public async Task <int> Count(EVoucherFilter EVoucherFilter)
        {
            int result = await UOW.EVoucherRepository.Count(EVoucherFilter);

            return(result);
        }
Example #10
0
        private IQueryable <EVoucherDAO> DynamicOrder(IQueryable <EVoucherDAO> query, EVoucherFilter filter)
        {
            switch (filter.OrderType)
            {
            case OrderType.ASC:
                switch (filter.OrderBy)
                {
                case EVoucherOrder.Id:
                    query = query.OrderBy(q => q.Id);
                    break;

                case EVoucherOrder.Customer:
                    query = query.OrderBy(q => q.Customer.Id);
                    break;

                case EVoucherOrder.Product:
                    query = query.OrderBy(q => q.Product.Id);
                    break;

                case EVoucherOrder.Name:
                    query = query.OrderBy(q => q.Name);
                    break;

                case EVoucherOrder.Start:
                    query = query.OrderBy(q => q.Start);
                    break;

                case EVoucherOrder.End:
                    query = query.OrderBy(q => q.End);
                    break;

                case EVoucherOrder.Quantity:
                    query = query.OrderBy(q => q.Quantity);
                    break;
                }
                break;

            case OrderType.DESC:
                switch (filter.OrderBy)
                {
                case EVoucherOrder.Id:
                    query = query.OrderByDescending(q => q.Id);
                    break;

                case EVoucherOrder.Customer:
                    query = query.OrderByDescending(q => q.Customer.Id);
                    break;

                case EVoucherOrder.Product:
                    query = query.OrderByDescending(q => q.Product.Id);
                    break;

                case EVoucherOrder.Name:
                    query = query.OrderByDescending(q => q.Name);
                    break;

                case EVoucherOrder.Start:
                    query = query.OrderByDescending(q => q.Start);
                    break;

                case EVoucherOrder.End:
                    query = query.OrderByDescending(q => q.End);
                    break;

                case EVoucherOrder.Quantity:
                    query = query.OrderByDescending(q => q.Quantity);
                    break;
                }
                break;
            }
            query = query.Skip(filter.Skip).Take(filter.Take);
            return(query);
        }
Example #11
0
        private IQueryable <EVoucherDAO> DynamicFilter(IQueryable <EVoucherDAO> query, EVoucherFilter filter)
        {
            if (filter == null)
            {
                return(query.Where(q => false));
            }

            if (filter.Id != null)
            {
                query = query.Where(q => q.Id, filter.Id);
            }
            if (filter.CustomerId != null)
            {
                query = query.Where(q => q.CustomerId, filter.CustomerId);
            }
            if (filter.ProductId != null)
            {
                query = query.Where(q => q.ProductId, filter.ProductId);
            }
            if (filter.Name != null)
            {
                query = query.Where(q => q.Name, filter.Name);
            }
            if (filter.Start != null)
            {
                query = query.Where(q => q.Start, filter.Start);
            }
            if (filter.End != null)
            {
                query = query.Where(q => q.End, filter.End);
            }
            if (filter.Quantity != null)
            {
                query = query.Where(q => q.Quantity, filter.Quantity);
            }
            if (filter.Ids != null)
            {
                query = query.Where(q => filter.Ids.Contains(q.Id));
            }
            if (filter.ExceptIds != null)
            {
                query = query.Where(q => !filter.ExceptIds.Contains(q.Id));
            }
            return(query);
        }
Example #12
0
        private async Task <List <EVoucher> > DynamicSelect(IQueryable <EVoucherDAO> query, EVoucherFilter filter)
        {
            List <EVoucher> EVouchers = await query.Select(q => new EVoucher()
            {
                Id         = filter.Selects.Contains(EVoucherSelect.Id) ? q.Id : default(long),
                CustomerId = filter.Selects.Contains(EVoucherSelect.Customer) ? q.CustomerId : default(long),
                ProductId  = filter.Selects.Contains(EVoucherSelect.Product) ? q.ProductId : default(long?),
                Name       = filter.Selects.Contains(EVoucherSelect.Name) ? q.Name : default(string),
                Start      = filter.Selects.Contains(EVoucherSelect.Start) ? q.Start : default(DateTime),
                End        = filter.Selects.Contains(EVoucherSelect.End) ? q.End : default(DateTime),
                Quantity   = filter.Selects.Contains(EVoucherSelect.Quantity) ? q.Quantity : default(long),
                Customer   = filter.Selects.Contains(EVoucherSelect.Customer) && q.Customer != null ? new Customer
                {
                    Id          = q.Customer.Id,
                    Username    = q.Customer.Username,
                    DisplayName = q.Customer.DisplayName,
                    PhoneNumber = q.Customer.PhoneNumber,
                    Email       = q.Customer.Email,
                } : null,
                Product = filter.Selects.Contains(EVoucherSelect.Product) && q.Product != null ? new Product
                {
                    Id                      = q.Product.Id,
                    Code                    = q.Product.Code,
                    Name                    = q.Product.Name,
                    Description             = q.Product.Description,
                    TypeId                  = q.Product.TypeId,
                    StatusId                = q.Product.StatusId,
                    MerchantId              = q.Product.MerchantId,
                    CategoryId              = q.Product.CategoryId,
                    BrandId                 = q.Product.BrandId,
                    WarrantyPolicy          = q.Product.WarrantyPolicy,
                    ReturnPolicy            = q.Product.ReturnPolicy,
                    ExpiredDate             = q.Product.ExpiredDate,
                    ConditionOfUse          = q.Product.ConditionOfUse,
                    MaximumPurchaseQuantity = q.Product.MaximumPurchaseQuantity,
                } : null,
            }).ToListAsync();

            return(EVouchers);
        }