Example #1
0
        public async Task <int> Count(CustomerLeadEmailFilter filter)
        {
            IQueryable <CustomerLeadEmailDAO> CustomerLeadEmails = DataContext.CustomerLeadEmail.AsNoTracking();

            CustomerLeadEmails = DynamicFilter(CustomerLeadEmails, filter);
            return(await CustomerLeadEmails.CountAsync());
        }
Example #2
0
        public async Task <ActionResult <List <CustomerLead_CustomerLeadEmailDTO> > > ListCustomerLeadEmail([FromBody] CustomerLead_CustomerLeadEmailFilterDTO CustomerLead_CustomerLeadEmailFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            CustomerLeadEmailFilter CustomerLeadEmailFilter = new CustomerLeadEmailFilter();

            CustomerLeadEmailFilter.Skip           = CustomerLead_CustomerLeadEmailFilterDTO.Skip;
            CustomerLeadEmailFilter.Take           = CustomerLead_CustomerLeadEmailFilterDTO.Take;
            CustomerLeadEmailFilter.OrderBy        = CustomerLeadEmailOrder.Id;
            CustomerLeadEmailFilter.OrderType      = OrderType.ASC;
            CustomerLeadEmailFilter.Selects        = CustomerLeadEmailSelect.ALL;
            CustomerLeadEmailFilter.Id             = CustomerLead_CustomerLeadEmailFilterDTO.Id;
            CustomerLeadEmailFilter.Title          = CustomerLead_CustomerLeadEmailFilterDTO.Title;
            CustomerLeadEmailFilter.Content        = CustomerLead_CustomerLeadEmailFilterDTO.Content;
            CustomerLeadEmailFilter.CreatorId      = CustomerLead_CustomerLeadEmailFilterDTO.CreatorId;
            CustomerLeadEmailFilter.CreatedAt      = CustomerLead_CustomerLeadEmailFilterDTO.CreatedAt;
            CustomerLeadEmailFilter.CustomerLeadId = CustomerLead_CustomerLeadEmailFilterDTO.CustomerLeadId;
            CustomerLeadEmailFilter.EmailStatusId  = CustomerLead_CustomerLeadEmailFilterDTO.EmailStatusId;
            CustomerLeadEmailFilter.Reciepient     = CustomerLead_CustomerLeadEmailFilterDTO.Reciepient;

            List <CustomerLeadEmail> CustomerLeadEmails = await CustomerLeadEmailService.List(CustomerLeadEmailFilter);

            List <CustomerLead_CustomerLeadEmailDTO> CustomerLead_CustomerLeadEmailDTOs = CustomerLeadEmails
                                                                                          .Select(x => new CustomerLead_CustomerLeadEmailDTO(x)).ToList();

            return(CustomerLead_CustomerLeadEmailDTOs);
        }
 public async Task <CustomerLeadEmailFilter> ToFilter(CustomerLeadEmailFilter filter)
 {
     if (filter.OrFilter == null)
     {
         filter.OrFilter = new List <CustomerLeadEmailFilter>();
     }
     if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0)
     {
         return(filter);
     }
     foreach (var currentFilter in CurrentContext.Filters)
     {
         CustomerLeadEmailFilter subFilter = new CustomerLeadEmailFilter();
         filter.OrFilter.Add(subFilter);
         List <FilterPermissionDefinition> FilterPermissionDefinitions = currentFilter.Value;
         foreach (FilterPermissionDefinition FilterPermissionDefinition in FilterPermissionDefinitions)
         {
             if (FilterPermissionDefinition.Name == nameof(subFilter.Id))
             {
                 subFilter.Id = FilterBuilder.Merge(subFilter.Id, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.Title))
             {
                 subFilter.Title = FilterBuilder.Merge(subFilter.Title, FilterPermissionDefinition.StringFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.Content))
             {
                 subFilter.Content = FilterBuilder.Merge(subFilter.Content, FilterPermissionDefinition.StringFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.Reciepient))
             {
                 subFilter.Reciepient = FilterBuilder.Merge(subFilter.Reciepient, FilterPermissionDefinition.StringFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.CustomerLeadId))
             {
                 subFilter.CustomerLeadId = FilterBuilder.Merge(subFilter.CustomerLeadId, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.CreatorId))
             {
                 subFilter.CreatorId = FilterBuilder.Merge(subFilter.CreatorId, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.EmailStatusId))
             {
                 subFilter.EmailStatusId = FilterBuilder.Merge(subFilter.EmailStatusId, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(CurrentContext.UserId) && FilterPermissionDefinition.IdFilter != null)
             {
                 if (FilterPermissionDefinition.IdFilter.Equal.HasValue && FilterPermissionDefinition.IdFilter.Equal.Value == CurrentUserEnum.IS.Id)
                 {
                 }
                 if (FilterPermissionDefinition.IdFilter.Equal.HasValue && FilterPermissionDefinition.IdFilter.Equal.Value == CurrentUserEnum.ISNT.Id)
                 {
                 }
             }
         }
     }
     return(filter);
 }
Example #4
0
        public async Task <List <CustomerLeadEmail> > List(CustomerLeadEmailFilter filter)
        {
            if (filter == null)
            {
                return(new List <CustomerLeadEmail>());
            }
            IQueryable <CustomerLeadEmailDAO> CustomerLeadEmailDAOs = DataContext.CustomerLeadEmail.AsNoTracking();

            CustomerLeadEmailDAOs = DynamicFilter(CustomerLeadEmailDAOs, filter);
            CustomerLeadEmailDAOs = DynamicOrder(CustomerLeadEmailDAOs, filter);
            List <CustomerLeadEmail> CustomerLeadEmails = await DynamicSelect(CustomerLeadEmailDAOs, filter);

            return(CustomerLeadEmails);
        }
        public async Task <List <CustomerLeadEmail> > List(CustomerLeadEmailFilter CustomerLeadEmailFilter)
        {
            try
            {
                List <CustomerLeadEmail> CustomerLeadEmails = await UOW.CustomerLeadEmailRepository.List(CustomerLeadEmailFilter);

                return(CustomerLeadEmails);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(CustomerLeadEmailService));
            }
            return(null);
        }
        public async Task <int> Count(CustomerLeadEmailFilter CustomerLeadEmailFilter)
        {
            try
            {
                int result = await UOW.CustomerLeadEmailRepository.Count(CustomerLeadEmailFilter);

                return(result);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(CustomerLeadEmailService));
            }
            return(0);
        }
        public async Task <bool> ValidateId(CustomerLeadEmail CustomerLeadEmail)
        {
            CustomerLeadEmailFilter CustomerLeadEmailFilter = new CustomerLeadEmailFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = CustomerLeadEmail.Id
                },
                Selects = CustomerLeadEmailSelect.Id
            };

            int count = await UOW.CustomerLeadEmailRepository.Count(CustomerLeadEmailFilter);

            if (count == 0)
            {
                CustomerLeadEmail.AddError(nameof(CustomerLeadEmailValidator), nameof(CustomerLeadEmail.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
Example #8
0
        public async Task <ActionResult <long> > CountCustomerLeadEmail([FromBody] CustomerLead_CustomerLeadEmailFilterDTO CustomerLead_CustomerLeadEmailFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            CustomerLeadEmailFilter CustomerLeadEmailFilter = new CustomerLeadEmailFilter();

            CustomerLeadEmailFilter.Id             = CustomerLead_CustomerLeadEmailFilterDTO.Id;
            CustomerLeadEmailFilter.Title          = CustomerLead_CustomerLeadEmailFilterDTO.Title;
            CustomerLeadEmailFilter.Content        = CustomerLead_CustomerLeadEmailFilterDTO.Content;
            CustomerLeadEmailFilter.CreatorId      = CustomerLead_CustomerLeadEmailFilterDTO.CreatorId;
            CustomerLeadEmailFilter.CreatedAt      = CustomerLead_CustomerLeadEmailFilterDTO.CreatedAt;
            CustomerLeadEmailFilter.CustomerLeadId = CustomerLead_CustomerLeadEmailFilterDTO.CustomerLeadId;
            CustomerLeadEmailFilter.EmailStatusId  = CustomerLead_CustomerLeadEmailFilterDTO.EmailStatusId;
            CustomerLeadEmailFilter.Reciepient     = CustomerLead_CustomerLeadEmailFilterDTO.Reciepient;

            return(await CustomerLeadEmailService.Count(CustomerLeadEmailFilter));
        }
Example #9
0
        private IQueryable <CustomerLeadEmailDAO> OrFilter(IQueryable <CustomerLeadEmailDAO> query, CustomerLeadEmailFilter filter)
        {
            if (filter.OrFilter == null || filter.OrFilter.Count == 0)
            {
                return(query);
            }
            IQueryable <CustomerLeadEmailDAO> initQuery = query.Where(q => false);

            foreach (CustomerLeadEmailFilter CustomerLeadEmailFilter in filter.OrFilter)
            {
                IQueryable <CustomerLeadEmailDAO> queryable = query;
                if (CustomerLeadEmailFilter.Id != null && CustomerLeadEmailFilter.Id.HasValue)
                {
                    queryable = queryable.Where(q => q.Id, CustomerLeadEmailFilter.Id);
                }
                if (CustomerLeadEmailFilter.Title != null && CustomerLeadEmailFilter.Title.HasValue)
                {
                    queryable = queryable.Where(q => q.Title, CustomerLeadEmailFilter.Title);
                }
                if (CustomerLeadEmailFilter.Content != null && CustomerLeadEmailFilter.Content.HasValue)
                {
                    queryable = queryable.Where(q => q.Content, CustomerLeadEmailFilter.Content);
                }
                if (CustomerLeadEmailFilter.Reciepient != null && CustomerLeadEmailFilter.Reciepient.HasValue)
                {
                    queryable = queryable.Where(q => q.Reciepient, CustomerLeadEmailFilter.Reciepient);
                }
                if (CustomerLeadEmailFilter.CustomerLeadId != null && CustomerLeadEmailFilter.CustomerLeadId.HasValue)
                {
                    queryable = queryable.Where(q => q.CustomerLeadId, CustomerLeadEmailFilter.CustomerLeadId);
                }
                if (CustomerLeadEmailFilter.CreatorId != null && CustomerLeadEmailFilter.CreatorId.HasValue)
                {
                    queryable = queryable.Where(q => q.CreatorId, CustomerLeadEmailFilter.CreatorId);
                }
                if (CustomerLeadEmailFilter.EmailStatusId != null && CustomerLeadEmailFilter.EmailStatusId.HasValue)
                {
                    queryable = queryable.Where(q => q.EmailStatusId, CustomerLeadEmailFilter.EmailStatusId);
                }
                initQuery = initQuery.Union(queryable);
            }
            return(initQuery);
        }
Example #10
0
 private IQueryable <CustomerLeadEmailDAO> DynamicFilter(IQueryable <CustomerLeadEmailDAO> query, CustomerLeadEmailFilter filter)
 {
     if (filter == null)
     {
         return(query.Where(q => false));
     }
     query = query.Where(q => !q.DeletedAt.HasValue);
     if (filter.CreatedAt != null && filter.CreatedAt.HasValue)
     {
         query = query.Where(q => q.CreatedAt, filter.CreatedAt);
     }
     if (filter.UpdatedAt != null && filter.UpdatedAt.HasValue)
     {
         query = query.Where(q => q.UpdatedAt, filter.UpdatedAt);
     }
     if (filter.Id != null && filter.Id.HasValue)
     {
         query = query.Where(q => q.Id, filter.Id);
     }
     if (filter.Title != null && filter.Title.HasValue)
     {
         query = query.Where(q => q.Title, filter.Title);
     }
     if (filter.Content != null && filter.Content.HasValue)
     {
         query = query.Where(q => q.Content, filter.Content);
     }
     if (filter.Reciepient != null && filter.Reciepient.HasValue)
     {
         query = query.Where(q => q.Reciepient, filter.Reciepient);
     }
     if (filter.CustomerLeadId != null && filter.CustomerLeadId.HasValue)
     {
         query = query.Where(q => q.CustomerLeadId, filter.CustomerLeadId);
     }
     if (filter.CreatorId != null && filter.CreatorId.HasValue)
     {
         query = query.Where(q => q.CreatorId, filter.CreatorId);
     }
     if (filter.EmailStatusId != null && filter.EmailStatusId.HasValue)
     {
         query = query.Where(q => q.EmailStatusId, filter.EmailStatusId);
     }
     query = OrFilter(query, filter);
     return(query);
 }
Example #11
0
        private async Task <List <CustomerLeadEmail> > DynamicSelect(IQueryable <CustomerLeadEmailDAO> query, CustomerLeadEmailFilter filter)
        {
            List <CustomerLeadEmail> CustomerLeadEmails = await query.Select(q => new CustomerLeadEmail()
            {
                Id             = filter.Selects.Contains(CustomerLeadEmailSelect.Id) ? q.Id : default(long),
                Title          = filter.Selects.Contains(CustomerLeadEmailSelect.Title) ? q.Title : default(string),
                Content        = filter.Selects.Contains(CustomerLeadEmailSelect.Content) ? q.Content : default(string),
                Reciepient     = filter.Selects.Contains(CustomerLeadEmailSelect.Reciepient) ? q.Reciepient : default(string),
                CustomerLeadId = filter.Selects.Contains(CustomerLeadEmailSelect.CustomerLead) ? q.CustomerLeadId : default(long),
                CreatorId      = filter.Selects.Contains(CustomerLeadEmailSelect.Creator) ? q.CreatorId : default(long),
                EmailStatusId  = filter.Selects.Contains(CustomerLeadEmailSelect.EmailStatus) ? q.EmailStatusId : default(long),
                CustomerLead   = filter.Selects.Contains(CustomerLeadEmailSelect.CustomerLead) && q.CustomerLead != null ? new CustomerLead
                {
                    Id                = q.CustomerLead.Id,
                    CompanyName       = q.CustomerLead.CompanyName,
                    Name              = q.CustomerLead.Name,
                    Phone             = q.CustomerLead.Phone,
                    Email             = q.CustomerLead.Email,
                    Website           = q.CustomerLead.Website,
                    NationId          = q.CustomerLead.NationId,
                    ProvinceId        = q.CustomerLead.ProvinceId,
                    DistrictId        = q.CustomerLead.DistrictId,
                    Address           = q.CustomerLead.Address,
                    RefuseReciveEmail = q.CustomerLead.RefuseReciveEmail,
                    RefuseReciveSMS   = q.CustomerLead.RefuseReciveSMS,
                    ProfessionId      = q.CustomerLead.ProfessionId,
                    CurrencyId        = q.CustomerLead.CurrencyId,
                    CreatorId         = q.CustomerLead.CreatorId,
                    Description       = q.CustomerLead.Description,
                    CompanyId         = q.CustomerLead.CompanyId,
                } : null,
                Creator = filter.Selects.Contains(CustomerLeadEmailSelect.Creator) && q.Creator != null ? new AppUser
                {
                    Id             = q.Creator.Id,
                    Username       = q.Creator.Username,
                    DisplayName    = q.Creator.DisplayName,
                    Address        = q.Creator.Address,
                    Email          = q.Creator.Email,
                    Phone          = q.Creator.Phone,
                    SexId          = q.Creator.SexId,
                    Birthday       = q.Creator.Birthday,
                    Avatar         = q.Creator.Avatar,
                    Department     = q.Creator.Department,
                    OrganizationId = q.Creator.OrganizationId,
                    Longitude      = q.Creator.Longitude,
                    Latitude       = q.Creator.Latitude,
                    StatusId       = q.Creator.StatusId,
                    RowId          = q.Creator.RowId,
                    Used           = q.Creator.Used,
                } : null,
                EmailStatus = filter.Selects.Contains(CustomerLeadEmailSelect.EmailStatus) && q.EmailStatus != null ? new EmailStatus
                {
                    Id   = q.EmailStatus.Id,
                    Code = q.EmailStatus.Code,
                    Name = q.EmailStatus.Name,
                } : null,
                CreatedAt = q.CreatedAt,
                UpdatedAt = q.UpdatedAt,
            }).ToListAsync();

            var Ids = CustomerLeadEmails.Select(x => x.Id).ToList();
            var CustomerLeadEmailCCMappings = await DataContext.CustomerLeadEmailCCMapping.Where(x => Ids.Contains(x.CustomerLeadEmailId)).Select(x => new CustomerLeadEmailCCMapping
            {
                AppUserId           = x.AppUserId,
                CustomerLeadEmailId = x.CustomerLeadEmailId,
                AppUser             = x.AppUser == null ? null : new AppUser
                {
                    Id          = x.AppUser.Id,
                    Username    = x.AppUser.Username,
                    DisplayName = x.AppUser.DisplayName,
                    Email       = x.AppUser.Email,
                }
            }).ToListAsync();

            foreach (var CustomerLeadEmail in CustomerLeadEmails)
            {
                CustomerLeadEmail.CustomerLeadEmailCCMappings = CustomerLeadEmailCCMappings.Where(x => x.CustomerLeadEmailId == CustomerLeadEmail.Id).ToList();
            }
            return(CustomerLeadEmails);
        }
Example #12
0
        private IQueryable <CustomerLeadEmailDAO> DynamicOrder(IQueryable <CustomerLeadEmailDAO> query, CustomerLeadEmailFilter filter)
        {
            switch (filter.OrderType)
            {
            case OrderType.ASC:
                switch (filter.OrderBy)
                {
                case CustomerLeadEmailOrder.Id:
                    query = query.OrderBy(q => q.Id);
                    break;

                case CustomerLeadEmailOrder.Title:
                    query = query.OrderBy(q => q.Title);
                    break;

                case CustomerLeadEmailOrder.Content:
                    query = query.OrderBy(q => q.Content);
                    break;

                case CustomerLeadEmailOrder.Reciepient:
                    query = query.OrderBy(q => q.Reciepient);
                    break;

                case CustomerLeadEmailOrder.CustomerLead:
                    query = query.OrderBy(q => q.CustomerLeadId);
                    break;

                case CustomerLeadEmailOrder.Creator:
                    query = query.OrderBy(q => q.CreatorId);
                    break;

                case CustomerLeadEmailOrder.EmailStatus:
                    query = query.OrderBy(q => q.EmailStatusId);
                    break;
                }
                break;

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

                case CustomerLeadEmailOrder.Title:
                    query = query.OrderByDescending(q => q.Title);
                    break;

                case CustomerLeadEmailOrder.Content:
                    query = query.OrderByDescending(q => q.Content);
                    break;

                case CustomerLeadEmailOrder.Reciepient:
                    query = query.OrderByDescending(q => q.Reciepient);
                    break;

                case CustomerLeadEmailOrder.CustomerLead:
                    query = query.OrderByDescending(q => q.CustomerLeadId);
                    break;

                case CustomerLeadEmailOrder.Creator:
                    query = query.OrderByDescending(q => q.CreatorId);
                    break;

                case CustomerLeadEmailOrder.EmailStatus:
                    query = query.OrderByDescending(q => q.EmailStatusId);
                    break;
                }
                break;
            }
            query = query.Skip(filter.Skip).Take(filter.Take);
            return(query);
        }