Beispiel #1
0
        public async Task <int> Count(UnitOfMeasureFilter filter)
        {
            IQueryable <UnitOfMeasureDAO> UnitOfMeasures = DataContext.UnitOfMeasure.AsNoTracking();

            UnitOfMeasures = DynamicFilter(UnitOfMeasures, filter);
            return(await UnitOfMeasures.CountAsync());
        }
Beispiel #2
0
        public async Task <ActionResult <List <DirectSalesOrder_UnitOfMeasureDTO> > > FilterListUnitOfMeasure([FromBody] DirectSalesOrder_UnitOfMeasureFilterDTO DirectSalesOrder_UnitOfMeasureFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            UnitOfMeasureFilter UnitOfMeasureFilter = new UnitOfMeasureFilter();

            UnitOfMeasureFilter.Skip        = 0;
            UnitOfMeasureFilter.Take        = 20;
            UnitOfMeasureFilter.OrderBy     = UnitOfMeasureOrder.Id;
            UnitOfMeasureFilter.OrderType   = OrderType.ASC;
            UnitOfMeasureFilter.Selects     = UnitOfMeasureSelect.ALL;
            UnitOfMeasureFilter.Id          = DirectSalesOrder_UnitOfMeasureFilterDTO.Id;
            UnitOfMeasureFilter.Code        = DirectSalesOrder_UnitOfMeasureFilterDTO.Code;
            UnitOfMeasureFilter.Name        = DirectSalesOrder_UnitOfMeasureFilterDTO.Name;
            UnitOfMeasureFilter.Description = DirectSalesOrder_UnitOfMeasureFilterDTO.Description;
            UnitOfMeasureFilter.StatusId    = DirectSalesOrder_UnitOfMeasureFilterDTO.StatusId;

            List <UnitOfMeasure> UnitOfMeasures = await UnitOfMeasureService.List(UnitOfMeasureFilter);

            List <DirectSalesOrder_UnitOfMeasureDTO> DirectSalesOrder_UnitOfMeasureDTOs = UnitOfMeasures
                                                                                          .Select(x => new DirectSalesOrder_UnitOfMeasureDTO(x)).ToList();

            return(DirectSalesOrder_UnitOfMeasureDTOs);
        }
Beispiel #3
0
        public async Task <List <UnitOfMeasure> > List(UnitOfMeasureFilter filter)
        {
            if (filter == null)
            {
                return(new List <UnitOfMeasure>());
            }
            IQueryable <UnitOfMeasureDAO> UnitOfMeasureDAOs = DataContext.UnitOfMeasure.AsNoTracking();

            UnitOfMeasureDAOs = DynamicFilter(UnitOfMeasureDAOs, filter);
            UnitOfMeasureDAOs = DynamicOrder(UnitOfMeasureDAOs, filter);
            List <UnitOfMeasure> UnitOfMeasures = await DynamicSelect(UnitOfMeasureDAOs, filter);

            return(UnitOfMeasures);
        }
        public UnitOfMeasureFilter ToFilter(UnitOfMeasureFilter filter)
        {
            if (filter.OrFilter == null)
            {
                filter.OrFilter = new List <UnitOfMeasureFilter>();
            }
            if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0)
            {
                return(filter);
            }
            foreach (var currentFilter in CurrentContext.Filters)
            {
                UnitOfMeasureFilter subFilter = new UnitOfMeasureFilter();
                filter.OrFilter.Add(subFilter);
                List <FilterPermissionDefinition> FilterPermissionDefinitions = currentFilter.Value;
                foreach (FilterPermissionDefinition FilterPermissionDefinition in FilterPermissionDefinitions)
                {
                    if (FilterPermissionDefinition.Name == nameof(subFilter.Id))
                    {
                        subFilter.Id = FilterPermissionDefinition.IdFilter;
                    }
                    if (FilterPermissionDefinition.Name == nameof(subFilter.Code))
                    {
                        subFilter.Code = FilterPermissionDefinition.StringFilter;
                    }

                    if (FilterPermissionDefinition.Name == nameof(subFilter.Name))
                    {
                        subFilter.Name = FilterPermissionDefinition.StringFilter;
                    }

                    if (FilterPermissionDefinition.Name == nameof(subFilter.Description))
                    {
                        subFilter.Description = FilterPermissionDefinition.StringFilter;
                    }

                    if (FilterPermissionDefinition.Name == nameof(subFilter.StatusId))
                    {
                        subFilter.StatusId = FilterPermissionDefinition.IdFilter;
                    }
                }
            }
            return(filter);
        }
Beispiel #5
0
        public async Task <bool> ValidateId(UnitOfMeasure UnitOfMeasure)
        {
            UnitOfMeasureFilter UnitOfMeasureFilter = new UnitOfMeasureFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = UnitOfMeasure.Id
                },
                Selects = UnitOfMeasureSelect.Id
            };

            int count = await UOW.UnitOfMeasureRepository.Count(UnitOfMeasureFilter);

            if (count == 0)
            {
                UnitOfMeasure.AddError(nameof(UnitOfMeasureValidator), nameof(UnitOfMeasure.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
        private async Task <bool> ValidatePromotion(CustomerSalesOrder CustomerSalesOrder)
        {
            if (CustomerSalesOrder.CustomerSalesOrderPromotions != null)
            {
                await ValidateItem(CustomerSalesOrder);

                //validate đơn vị tính sản phẩm khuyến mãi
                var Ids = CustomerSalesOrder.CustomerSalesOrderPromotions.Select(x => x.UnitOfMeasureId).ToList();
                var UnitOfMeasureFilter = new UnitOfMeasureFilter
                {
                    Skip = 0,
                    Take = int.MaxValue,
                    Id   = new IdFilter {
                        In = Ids
                    },
                    StatusId = new IdFilter {
                        Equal = Enums.StatusEnum.ACTIVE.Id
                    },
                    Selects = UnitOfMeasureSelect.Id
                };

                var listIdsInDB       = (await UOW.UnitOfMeasureRepository.List(UnitOfMeasureFilter)).Select(x => x.Id);
                var listIdsNotExisted = Ids.Except(listIdsInDB);

                foreach (var CustomerSalesOrderPromotion in CustomerSalesOrder.CustomerSalesOrderPromotions)
                {
                    if (listIdsNotExisted.Contains(CustomerSalesOrderPromotion.UnitOfMeasureId))
                    {
                        CustomerSalesOrderPromotion.AddError(nameof(CustomerSalesOrderValidator), nameof(CustomerSalesOrderPromotion.UnitOfMeasure), ErrorCode.UnitOfMeasureEmpty);
                    }
                    //validate số lượng
                    if (CustomerSalesOrderPromotion.Quantity <= 0)
                    {
                        CustomerSalesOrderPromotion.AddError(nameof(CustomerSalesOrderValidator), nameof(CustomerSalesOrderPromotion.Quantity), ErrorCode.QuantityEmpty);
                    }
                }
            }
            return(CustomerSalesOrder.IsValidated);
        }
        public async Task <List <UnitOfMeasure> > List(UnitOfMeasureFilter UnitOfMeasureFilter)
        {
            try
            {
                List <UnitOfMeasure> UnitOfMeasures = await UOW.UnitOfMeasureRepository.List(UnitOfMeasureFilter);

                return(UnitOfMeasures);
            }
            catch (Exception ex)
            {
                if (ex.InnerException == null)
                {
                    await Logging.CreateSystemLog(ex, nameof(UnitOfMeasureService));

                    throw new MessageException(ex);
                }
                else
                {
                    await Logging.CreateSystemLog(ex.InnerException, nameof(UnitOfMeasureService));

                    throw new MessageException(ex.InnerException);
                }
            }
        }
        public async Task <int> Count(UnitOfMeasureFilter UnitOfMeasureFilter)
        {
            try
            {
                int result = await UOW.UnitOfMeasureRepository.Count(UnitOfMeasureFilter);

                return(result);
            }
            catch (Exception ex)
            {
                if (ex.InnerException == null)
                {
                    await Logging.CreateSystemLog(ex, nameof(UnitOfMeasureService));

                    throw new MessageException(ex);
                }
                else
                {
                    await Logging.CreateSystemLog(ex.InnerException, nameof(UnitOfMeasureService));

                    throw new MessageException(ex.InnerException);
                }
            }
        }
Beispiel #9
0
        private IQueryable <UnitOfMeasureDAO> OrFilter(IQueryable <UnitOfMeasureDAO> query, UnitOfMeasureFilter filter)
        {
            if (filter.OrFilter == null || filter.OrFilter.Count == 0)
            {
                return(query);
            }
            IQueryable <UnitOfMeasureDAO> initQuery = query.Where(q => false);

            foreach (UnitOfMeasureFilter UnitOfMeasureFilter in filter.OrFilter)
            {
                IQueryable <UnitOfMeasureDAO> queryable = query;
                if (UnitOfMeasureFilter.Id != null)
                {
                    queryable = queryable.Where(q => q.Id, UnitOfMeasureFilter.Id);
                }
                if (UnitOfMeasureFilter.Code != null)
                {
                    queryable = queryable.Where(q => q.Code, UnitOfMeasureFilter.Code);
                }
                if (UnitOfMeasureFilter.Name != null)
                {
                    queryable = queryable.Where(q => q.Name, UnitOfMeasureFilter.Name);
                }
                if (UnitOfMeasureFilter.Description != null)
                {
                    queryable = queryable.Where(q => q.Description, UnitOfMeasureFilter.Description);
                }
                if (UnitOfMeasureFilter.StatusId != null)
                {
                    queryable = queryable.Where(q => q.StatusId, UnitOfMeasureFilter.StatusId);
                }
                initQuery = initQuery.Union(queryable);
            }
            return(initQuery);
        }
Beispiel #10
0
 private IQueryable <UnitOfMeasureDAO> DynamicFilter(IQueryable <UnitOfMeasureDAO> query, UnitOfMeasureFilter filter)
 {
     if (filter == null)
     {
         return(query.Where(q => false));
     }
     query = query.Where(q => !q.DeletedAt.HasValue);
     if (filter.CreatedAt != null)
     {
         query = query.Where(q => q.CreatedAt, filter.CreatedAt);
     }
     if (filter.UpdatedAt != null)
     {
         query = query.Where(q => q.UpdatedAt, filter.UpdatedAt);
     }
     if (filter.Id != null)
     {
         query = query.Where(q => q.Id, filter.Id);
     }
     if (filter.Code != null)
     {
         query = query.Where(q => q.Code, filter.Code);
     }
     if (filter.Name != null)
     {
         query = query.Where(q => q.Name, filter.Name);
     }
     if (filter.Description != null)
     {
         query = query.Where(q => q.Description, filter.Description);
     }
     if (filter.StatusId != null)
     {
         query = query.Where(q => q.StatusId, filter.StatusId);
     }
     query = OrFilter(query, filter);
     return(query);
 }
Beispiel #11
0
        private async Task <List <UnitOfMeasure> > DynamicSelect(IQueryable <UnitOfMeasureDAO> query, UnitOfMeasureFilter filter)
        {
            List <UnitOfMeasure> UnitOfMeasures = await query.Select(q => new UnitOfMeasure()
            {
                Id          = filter.Selects.Contains(UnitOfMeasureSelect.Id) ? q.Id : default(long),
                Code        = filter.Selects.Contains(UnitOfMeasureSelect.Code) ? q.Code : default(string),
                Name        = filter.Selects.Contains(UnitOfMeasureSelect.Name) ? q.Name : default(string),
                Description = filter.Selects.Contains(UnitOfMeasureSelect.Description) ? q.Description : default(string),
                StatusId    = filter.Selects.Contains(UnitOfMeasureSelect.Status) ? q.StatusId : default(long),
                Used        = filter.Selects.Contains(UnitOfMeasureSelect.Used) ? q.Used : default(bool),
                CreatedAt   = q.CreatedAt,
                UpdatedAt   = q.UpdatedAt,
            }).ToListAsync();

            return(UnitOfMeasures);
        }
Beispiel #12
0
        private IQueryable <UnitOfMeasureDAO> DynamicOrder(IQueryable <UnitOfMeasureDAO> query, UnitOfMeasureFilter filter)
        {
            switch (filter.OrderType)
            {
            case OrderType.ASC:
                switch (filter.OrderBy)
                {
                case UnitOfMeasureOrder.Id:
                    query = query.OrderBy(q => q.Id);
                    break;

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

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

                case UnitOfMeasureOrder.Description:
                    query = query.OrderBy(q => q.Description);
                    break;

                case UnitOfMeasureOrder.Status:
                    query = query.OrderBy(q => q.StatusId);
                    break;

                case UnitOfMeasureOrder.Used:
                    query = query.OrderBy(q => q.Used);
                    break;
                }
                break;

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

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

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

                case UnitOfMeasureOrder.Description:
                    query = query.OrderByDescending(q => q.Description);
                    break;

                case UnitOfMeasureOrder.Status:
                    query = query.OrderByDescending(q => q.StatusId);
                    break;

                case UnitOfMeasureOrder.Used:
                    query = query.OrderByDescending(q => q.Used);
                    break;
                }
                break;
            }
            query = query.Skip(filter.Skip).Take(filter.Take);
            return(query);
        }