Пример #1
0
        public async Task <ActionResult <List <DirectSalesOrder_StoreStatusDTO> > > FilterListStoreStatus([FromBody] DirectSalesOrder_StoreStatusFilterDTO DirectSalesOrder_StoreStatusFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            StoreStatusFilter StoreStatusFilter = new StoreStatusFilter();

            StoreStatusFilter.Skip      = 0;
            StoreStatusFilter.Take      = 20;
            StoreStatusFilter.OrderBy   = StoreStatusOrder.Id;
            StoreStatusFilter.OrderType = OrderType.ASC;
            StoreStatusFilter.Selects   = StoreStatusSelect.ALL;
            StoreStatusFilter.Id        = DirectSalesOrder_StoreStatusFilterDTO.Id;
            StoreStatusFilter.Code      = DirectSalesOrder_StoreStatusFilterDTO.Code;
            StoreStatusFilter.Name      = DirectSalesOrder_StoreStatusFilterDTO.Name;

            List <StoreStatus> StoreStatuses = await StoreStatusService.List(StoreStatusFilter);

            List <DirectSalesOrder_StoreStatusDTO> DirectSalesOrder_StoreStatusDTOs = StoreStatuses
                                                                                      .Select(x => new DirectSalesOrder_StoreStatusDTO(x)).ToList();

            return(DirectSalesOrder_StoreStatusDTOs);
        }
Пример #2
0
        public async Task <int> Count(StoreStatusFilter filter)
        {
            IQueryable <StoreStatusDAO> StoreStatuses = DataContext.StoreStatus.AsNoTracking();

            StoreStatuses = DynamicFilter(StoreStatuses, filter);
            return(await StoreStatuses.CountAsync());
        }
Пример #3
0
        public async Task <List <StoreStatus> > List(StoreStatusFilter filter)
        {
            if (filter == null)
            {
                return(new List <StoreStatus>());
            }
            IQueryable <StoreStatusDAO> StoreStatusDAOs = DataContext.StoreStatus.AsNoTracking();

            StoreStatusDAOs = DynamicFilter(StoreStatusDAOs, filter);
            StoreStatusDAOs = DynamicOrder(StoreStatusDAOs, filter);
            List <StoreStatus> StoreStatuses = await DynamicSelect(StoreStatusDAOs, filter);

            return(StoreStatuses);
        }
Пример #4
0
        public async Task <List <StoreStatus> > List(StoreStatusFilter StoreStatusFilter)
        {
            try
            {
                List <StoreStatus> StoreStatuss = await UOW.StoreStatusRepository.List(StoreStatusFilter);

                return(StoreStatuss);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(StoreStatusService));
            }
            return(null);
        }
Пример #5
0
        public async Task <int> Count(StoreStatusFilter StoreStatusFilter)
        {
            try
            {
                int result = await UOW.StoreStatusRepository.Count(StoreStatusFilter);

                return(result);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(StoreStatusService));
            }
            return(0);
        }
Пример #6
0
        public async Task <bool> ValidateId(StoreStatus StoreStatus)
        {
            StoreStatusFilter StoreStatusFilter = new StoreStatusFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = StoreStatus.Id
                },
                Selects = StoreStatusSelect.Id
            };

            int count = await UOW.StoreStatusRepository.Count(StoreStatusFilter);

            if (count == 0)
            {
                StoreStatus.AddError(nameof(StoreStatusValidator), nameof(StoreStatus.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
Пример #7
0
        public async Task <List <Store_StoreStatusDTO> > SingleListStoreStatus([FromBody] Store_StoreStatusFilterDTO Store_StoreStatusFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            StoreStatusFilter StoreStatusFilter = new StoreStatusFilter();

            StoreStatusFilter.Skip      = 0;
            StoreStatusFilter.Take      = int.MaxValue;
            StoreStatusFilter.Take      = 20;
            StoreStatusFilter.OrderBy   = StoreStatusOrder.Id;
            StoreStatusFilter.OrderType = OrderType.ASC;
            StoreStatusFilter.Selects   = StoreStatusSelect.ALL;

            List <StoreStatus> StoreStatuses = await StoreStatusService.List(StoreStatusFilter);

            List <Store_StoreStatusDTO> Store_StoreStatusDTOs = StoreStatuses
                                                                .Select(x => new Store_StoreStatusDTO(x)).ToList();

            return(Store_StoreStatusDTOs);
        }
Пример #8
0
        private IQueryable <StoreStatusDAO> DynamicOrder(IQueryable <StoreStatusDAO> query, StoreStatusFilter filter)
        {
            switch (filter.OrderType)
            {
            case OrderType.ASC:
                switch (filter.OrderBy)
                {
                case StoreStatusOrder.Id:
                    query = query.OrderBy(q => q.Id);
                    break;

                case StoreStatusOrder.Code:
                    query = query.OrderBy(q => q.Code);
                    break;

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

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

                case StoreStatusOrder.Code:
                    query = query.OrderByDescending(q => q.Code);
                    break;

                case StoreStatusOrder.Name:
                    query = query.OrderByDescending(q => q.Name);
                    break;
                }
                break;
            }
            query = query.Skip(filter.Skip).Take(filter.Take);
            return(query);
        }
Пример #9
0
        private IQueryable <StoreStatusDAO> OrFilter(IQueryable <StoreStatusDAO> query, StoreStatusFilter filter)
        {
            if (filter.OrFilter == null || filter.OrFilter.Count == 0)
            {
                return(query);
            }
            IQueryable <StoreStatusDAO> initQuery = query.Where(q => false);

            foreach (StoreStatusFilter StoreStatusFilter in filter.OrFilter)
            {
                IQueryable <StoreStatusDAO> queryable = query;
                if (StoreStatusFilter.Id != null && StoreStatusFilter.Id.HasValue)
                {
                    queryable = queryable.Where(q => q.Id, StoreStatusFilter.Id);
                }
                if (StoreStatusFilter.Code != null && StoreStatusFilter.Code.HasValue)
                {
                    queryable = queryable.Where(q => q.Code, StoreStatusFilter.Code);
                }
                if (StoreStatusFilter.Name != null && StoreStatusFilter.Name.HasValue)
                {
                    queryable = queryable.Where(q => q.Name, StoreStatusFilter.Name);
                }
                initQuery = initQuery.Union(queryable);
            }
            return(initQuery);
        }
Пример #10
0
 private IQueryable <StoreStatusDAO> DynamicFilter(IQueryable <StoreStatusDAO> query, StoreStatusFilter filter)
 {
     if (filter == null)
     {
         return(query.Where(q => false));
     }
     if (filter.Id != null && filter.Id.HasValue)
     {
         query = query.Where(q => q.Id, filter.Id);
     }
     if (filter.Code != null && filter.Code.HasValue)
     {
         query = query.Where(q => q.Code, filter.Code);
     }
     if (filter.Name != null && filter.Name.HasValue)
     {
         query = query.Where(q => q.Name, filter.Name);
     }
     query = OrFilter(query, filter);
     return(query);
 }
Пример #11
0
        private async Task <List <StoreStatus> > DynamicSelect(IQueryable <StoreStatusDAO> query, StoreStatusFilter filter)
        {
            List <StoreStatus> StoreStatuses = await query.Select(q => new StoreStatus()
            {
                Id   = filter.Selects.Contains(StoreStatusSelect.Id) ? q.Id : default(long),
                Code = filter.Selects.Contains(StoreStatusSelect.Code) ? q.Code : default(string),
                Name = filter.Selects.Contains(StoreStatusSelect.Name) ? q.Name : default(string),
            }).ToListAsync();

            return(StoreStatuses);
        }