コード例 #1
0
        private Result <CallClientTypeFilter> MapCallTypeEnums(CallTypeFilter filter)
        {
            CallClientTypeFilter typeFilter;

            switch (filter)
            {
            case CallTypeFilter.All:

                typeFilter = CallClientTypeFilter.All;

                break;

            case CallTypeFilter.Incoming:

                typeFilter = CallClientTypeFilter.Incoming;

                break;

            case CallTypeFilter.Outgoing:

                typeFilter = CallClientTypeFilter.Outgoing;

                break;

            default:

                var message = $"CallManagementService. Error on converting CallTypeFilter to CallClientTypeFilter. CallTypeFilter value: {(int)filter}";
                _logger.Warning(message);
                return(Result.Failure <CallClientTypeFilter>(ErrorCodes.ValidationError));
            }

            return(Result.Success(typeFilter));
        }
コード例 #2
0
        public async Task <ActionResult <List <CallLog_CallTypeDTO> > > FilterListCallType([FromBody] CallLog_CallTypeFilterDTO CallLog_CallTypeFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            CallTypeFilter CallTypeFilter = new CallTypeFilter();

            CallTypeFilter.Skip      = 0;
            CallTypeFilter.Take      = 20;
            CallTypeFilter.OrderBy   = CallTypeOrder.Id;
            CallTypeFilter.OrderType = OrderType.ASC;
            CallTypeFilter.Selects   = CallTypeSelect.ALL;
            CallTypeFilter.Id        = CallLog_CallTypeFilterDTO.Id;
            CallTypeFilter.Code      = CallLog_CallTypeFilterDTO.Code;
            CallTypeFilter.Name      = CallLog_CallTypeFilterDTO.Name;
            CallTypeFilter.ColorCode = CallLog_CallTypeFilterDTO.ColorCode;
            CallTypeFilter.StatusId  = CallLog_CallTypeFilterDTO.StatusId;

            List <CallType> CallTypes = await CallTypeService.List(CallTypeFilter);

            List <CallLog_CallTypeDTO> CallLog_CallTypeDTOs = CallTypes
                                                              .Select(x => new CallLog_CallTypeDTO(x)).ToList();

            return(CallLog_CallTypeDTOs);
        }
コード例 #3
0
        private IQueryable <CallTypeDAO> OrFilter(IQueryable <CallTypeDAO> query, CallTypeFilter filter)
        {
            if (filter.OrFilter == null || filter.OrFilter.Count == 0)
            {
                return(query);
            }
            IQueryable <CallTypeDAO> initQuery = query.Where(q => false);

            foreach (CallTypeFilter CallTypeFilter in filter.OrFilter)
            {
                IQueryable <CallTypeDAO> queryable = query;
                if (CallTypeFilter.Id != null)
                {
                    queryable = queryable.Where(q => q.Id, CallTypeFilter.Id);
                }
                if (CallTypeFilter.Code != null)
                {
                    queryable = queryable.Where(q => q.Code, CallTypeFilter.Code);
                }
                if (CallTypeFilter.Name != null)
                {
                    queryable = queryable.Where(q => q.Name, CallTypeFilter.Name);
                }
                if (CallTypeFilter.ColorCode != null)
                {
                    queryable = queryable.Where(q => q.ColorCode, CallTypeFilter.ColorCode);
                }
                if (CallTypeFilter.StatusId != null)
                {
                    queryable = queryable.Where(q => q.StatusId, CallTypeFilter.StatusId);
                }
                initQuery = initQuery.Union(queryable);
            }
            return(initQuery);
        }
コード例 #4
0
        public async Task <int> Count(CallTypeFilter filter)
        {
            IQueryable <CallTypeDAO> CallTypes = DataContext.CallType.AsNoTracking();

            CallTypes = DynamicFilter(CallTypes, filter);
            return(await CallTypes.CountAsync());
        }
コード例 #5
0
        public async Task <demoResult <List <JournalCallsDto> > > GetJournalCalls(CallTypeFilter filter, bool notAcceptedOnly)
        {
            var journalCallsResult = await _callManagementService.GetJournalCalls(GetUserId(), filter, notAcceptedOnly);

            if (journalCallsResult.IsFailure)
            {
                _logger.Warning($"Error on CallsController GetJournalCalls. {journalCallsResult.ErrorMessage}");
                return(BadRequest(journalCallsResult.ErrorCode));
            }

            return(Answer(journalCallsResult));
        }
コード例 #6
0
        public async Task <List <CallType> > List(CallTypeFilter filter)
        {
            if (filter == null)
            {
                return(new List <CallType>());
            }
            IQueryable <CallTypeDAO> CallTypeDAOs = DataContext.CallType.AsNoTracking();

            CallTypeDAOs = DynamicFilter(CallTypeDAOs, filter);
            CallTypeDAOs = DynamicOrder(CallTypeDAOs, filter);
            List <CallType> CallTypes = await DynamicSelect(CallTypeDAOs, filter);

            return(CallTypes);
        }
コード例 #7
0
        public CallTypeFilter ToFilter(CallTypeFilter filter)
        {
            if (filter.OrFilter == null)
            {
                filter.OrFilter = new List <CallTypeFilter>();
            }
            if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0)
            {
                return(filter);
            }
            foreach (var currentFilter in CurrentContext.Filters)
            {
                CallTypeFilter subFilter = new CallTypeFilter();
                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.ColorCode))
                    {
                        subFilter.ColorCode = FilterPermissionDefinition.StringFilter;
                    }

                    if (FilterPermissionDefinition.Name == nameof(subFilter.StatusId))
                    {
                        subFilter.StatusId = FilterPermissionDefinition.IdFilter;
                    }
                }
            }
            return(filter);
        }
コード例 #8
0
        public async Task <bool> ValidateId(CallType CallType)
        {
            CallTypeFilter CallTypeFilter = new CallTypeFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = CallType.Id
                },
                Selects = CallTypeSelect.Id
            };

            int count = await UOW.CallTypeRepository.Count(CallTypeFilter);

            if (count == 0)
            {
                CallType.AddError(nameof(CallTypeValidator), nameof(CallType.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
コード例 #9
0
        public async Task <bool> ValidateCode(CallType CallType)
        {
            if (string.IsNullOrWhiteSpace(CallType.Code))
            {
                CallType.AddError(nameof(CallTypeValidator), nameof(CallType.Code), ErrorCode.CodeEmpty);
            }
            else
            {
                var Code = CallType.Code;
                if (CallType.Code.Contains(" ") || !FilterExtension.ChangeToEnglishChar(Code).Equals(CallType.Code))
                {
                    CallType.AddError(nameof(CallTypeValidator), nameof(CallType.Code), ErrorCode.CodeHasSpecialCharacter);
                }

                CallTypeFilter CallTypeFilter = new CallTypeFilter
                {
                    Skip = 0,
                    Take = 10,
                    Id   = new IdFilter {
                        NotEqual = CallType.Id
                    },
                    Code = new StringFilter {
                        Equal = CallType.Code
                    },
                    Selects = CallTypeSelect.Code
                };

                int count = await UOW.CallTypeRepository.Count(CallTypeFilter);

                if (count != 0)
                {
                    CallType.AddError(nameof(CallTypeValidator), nameof(CallType.Code), ErrorCode.CodeExisted);
                }
            }
            return(CallType.IsValidated);
        }
コード例 #10
0
        public async Task <List <CallType> > List(CallTypeFilter CallTypeFilter)
        {
            try
            {
                List <CallType> CallTypes = await UOW.CallTypeRepository.List(CallTypeFilter);

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

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

                    throw new MessageException(ex.InnerException);
                }
            }
        }
コード例 #11
0
        public async Task <int> Count(CallTypeFilter CallTypeFilter)
        {
            try
            {
                int result = await UOW.CallTypeRepository.Count(CallTypeFilter);

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

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

                    throw new MessageException(ex.InnerException);
                }
            }
        }
コード例 #12
0
        /// <summary>
        /// Получить журнал звонков
        /// </summary>
        public async Task <Result <List <JournalCallsDto> > > GetJournalCalls(Guid userId, CallTypeFilter filter, bool notAcceptedOnly)
        {
            var callClientTypeFilterResult = MapCallTypeEnums(filter);

            if (callClientTypeFilterResult.IsFailure)
            {
                _logger.Information($"Failed to get call journal by userId: {userId}, filter: {filter}, notAcceptedOnly: {notAcceptedOnly} в CallManagementService. {callClientTypeFilterResult.ErrorMessage}");
                return(Result.Failure <List <JournalCallsDto> >(callClientTypeFilterResult.ErrorCode));
            }

            var callListClientResult = await _callManagementServiceClient.GetJournalCalls(callClientTypeFilterResult.Value, notAcceptedOnly);

            if (callListClientResult.IsFailure)
            {
                var name = Enum.GetName(typeof(CallClientTypeFilter), filter);

                var message = $"Failed to get call journal by userId: {userId}, filter: {name}, notAcceptedOnly: {notAcceptedOnly} в CallManagementService. {callListClientResult.ErrorMessage}";
                _logger.Information(message);
                return(Result.Failure <List <JournalCallsDto> >(ErrorCodes.UnableToGetJournalCalls));
            }

            _unitOfWork.Begin();
            var journalCalls = await CreateJournalFromCallList(callListClientResult.Value);

            return(Result.Success(journalCalls));
        }
コード例 #13
0
ファイル: CallLogController.cs プロジェクト: hienmx95/crm-be
        public async Task <ActionResult> ExportTemplate([FromBody] CallLog_CallLogFilterDTO CallLog_CallLogFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            MemoryStream memoryStream = new MemoryStream();

            using (ExcelPackage excel = new ExcelPackage(memoryStream))
            {
                #region CallLog
                var CallLogHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "EntityReferenceId",
                        "CallTypeId",
                        "CallEmotionId",
                        "AppUserId",
                        "Title",
                        "Content",
                        "Phone",
                        "CallTime",
                        "Used",
                    }
                };
                List <object[]> CallLogData = new List <object[]>();
                excel.GenerateWorksheet("CallLog", CallLogHeaders, CallLogData);
                #endregion

                #region AppUser
                var AppUserFilter = new AppUserFilter();
                AppUserFilter.Selects   = AppUserSelect.ALL;
                AppUserFilter.OrderBy   = AppUserOrder.Id;
                AppUserFilter.OrderType = OrderType.ASC;
                AppUserFilter.Skip      = 0;
                AppUserFilter.Take      = int.MaxValue;
                List <AppUser> AppUsers = await AppUserService.List(AppUserFilter);

                var AppUserHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "Username",
                        "DisplayName",
                        "Address",
                        "Email",
                        "Phone",
                        "SexId",
                        "Birthday",
                        "Avatar",
                        "PositionId",
                        "Department",
                        "OrganizationId",
                        "ProvinceId",
                        "Longitude",
                        "Latitude",
                        "StatusId",
                    }
                };
                List <object[]> AppUserData = new List <object[]>();
                for (int i = 0; i < AppUsers.Count; i++)
                {
                    var AppUser = AppUsers[i];
                    AppUserData.Add(new Object[]
                    {
                        AppUser.Id,
                        AppUser.Username,
                        AppUser.DisplayName,
                        AppUser.Address,
                        AppUser.Email,
                        AppUser.Phone,
                        AppUser.SexId,
                        AppUser.Birthday,
                        AppUser.Avatar,
                        AppUser.PositionId,
                        AppUser.Department,
                        AppUser.OrganizationId,
                        AppUser.ProvinceId,
                        AppUser.Longitude,
                        AppUser.Latitude,
                        AppUser.StatusId,
                    });
                }
                excel.GenerateWorksheet("AppUser", AppUserHeaders, AppUserData);
                #endregion
                #region EntityReference
                var EntityReferenceFilter = new EntityReferenceFilter();
                EntityReferenceFilter.Selects   = EntityReferenceSelect.ALL;
                EntityReferenceFilter.OrderBy   = EntityReferenceOrder.Id;
                EntityReferenceFilter.OrderType = OrderType.ASC;
                EntityReferenceFilter.Skip      = 0;
                EntityReferenceFilter.Take      = int.MaxValue;
                List <EntityReference> EntityReferences = await EntityReferenceService.List(EntityReferenceFilter);

                var EntityReferenceHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "Code",
                        "Name",
                    }
                };
                List <object[]> EntityReferenceData = new List <object[]>();
                for (int i = 0; i < EntityReferences.Count; i++)
                {
                    var EntityReference = EntityReferences[i];
                    EntityReferenceData.Add(new Object[]
                    {
                        EntityReference.Id,
                        EntityReference.Code,
                        EntityReference.Name,
                    });
                }
                excel.GenerateWorksheet("EntityReference", EntityReferenceHeaders, EntityReferenceData);
                #endregion
                #region CallType
                var CallTypeFilter = new CallTypeFilter();
                CallTypeFilter.Selects   = CallTypeSelect.ALL;
                CallTypeFilter.OrderBy   = CallTypeOrder.Id;
                CallTypeFilter.OrderType = OrderType.ASC;
                CallTypeFilter.Skip      = 0;
                CallTypeFilter.Take      = int.MaxValue;
                List <CallType> CallTypes = await CallTypeService.List(CallTypeFilter);

                var CallTypeHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "Code",
                        "Name",
                        "ColorCode",
                        "StatusId",
                        "Used",
                    }
                };
                List <object[]> CallTypeData = new List <object[]>();
                for (int i = 0; i < CallTypes.Count; i++)
                {
                    var CallType = CallTypes[i];
                    CallTypeData.Add(new Object[]
                    {
                        CallType.Id,
                        CallType.Code,
                        CallType.Name,
                        CallType.ColorCode,
                        CallType.StatusId,
                        CallType.Used,
                    });
                }
                excel.GenerateWorksheet("CallType", CallTypeHeaders, CallTypeData);
                #endregion
                #region CallEmotion
                var CallEmotionFilter = new CallEmotionFilter();
                CallEmotionFilter.Selects   = CallEmotionSelect.ALL;
                CallEmotionFilter.OrderBy   = CallEmotionOrder.Id;
                CallEmotionFilter.OrderType = OrderType.ASC;
                CallEmotionFilter.Skip      = 0;
                CallEmotionFilter.Take      = int.MaxValue;
                List <CallEmotion> CallEmotions = await CallEmotionService.List(CallEmotionFilter);

                var CallEmotionHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "Name",
                        "Code",
                        "StatusId",
                        "DisplayOrder",
                        "Description",
                    }
                };
                List <object[]> CallEmotionData = new List <object[]>();
                for (int i = 0; i < CallEmotions.Count; i++)
                {
                    var CallEmotion = CallEmotions[i];
                    CallEmotionData.Add(new Object[]
                    {
                        CallEmotion.Id,
                        CallEmotion.Name,
                        CallEmotion.Code,
                        CallEmotion.StatusId,
                        CallEmotion.Description,
                    });
                }
                excel.GenerateWorksheet("CallEmotion", CallEmotionHeaders, CallEmotionData);
                #endregion
                excel.Save();
            }
            return(File(memoryStream.ToArray(), "application/octet-stream", "CallLog.xlsx"));
        }
コード例 #14
0
ファイル: CallLogController.cs プロジェクト: hienmx95/crm-be
        public async Task <ActionResult> Import(IFormFile file)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            AppUserFilter AppUserFilter = new AppUserFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = AppUserSelect.ALL
            };
            List <AppUser> AppUsers = await AppUserService.List(AppUserFilter);

            EntityReferenceFilter EntityReferenceFilter = new EntityReferenceFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = EntityReferenceSelect.ALL
            };
            List <EntityReference> EntityReferences = await EntityReferenceService.List(EntityReferenceFilter);

            CallTypeFilter CallTypeFilter = new CallTypeFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = CallTypeSelect.ALL
            };
            List <CallType> CallTypes = await CallTypeService.List(CallTypeFilter);

            CallEmotionFilter CallEmotionFilter = new CallEmotionFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = CallEmotionSelect.ALL
            };
            List <CallEmotion> CallEmotions = await CallEmotionService.List(CallEmotionFilter);

            List <CallLog> CallLogs = new List <CallLog>();

            using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream()))
            {
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault();
                if (worksheet == null)
                {
                    return(Ok(CallLogs));
                }
                int StartColumn             = 1;
                int StartRow                = 1;
                int IdColumn                = 0 + StartColumn;
                int EntityReferenceIdColumn = 1 + StartColumn;
                int CallTypeIdColumn        = 2 + StartColumn;
                int CallEmotionIdColumn     = 3 + StartColumn;
                int AppUserIdColumn         = 4 + StartColumn;
                int TitleColumn             = 5 + StartColumn;
                int ContentColumn           = 6 + StartColumn;
                int PhoneColumn             = 7 + StartColumn;
                int CallTimeColumn          = 8 + StartColumn;
                int UsedColumn              = 12 + StartColumn;

                for (int i = StartRow; i <= worksheet.Dimension.End.Row; i++)
                {
                    if (string.IsNullOrEmpty(worksheet.Cells[i + StartRow, StartColumn].Value?.ToString()))
                    {
                        break;
                    }
                    string IdValue = worksheet.Cells[i + StartRow, IdColumn].Value?.ToString();
                    string EntityReferenceIdValue = worksheet.Cells[i + StartRow, EntityReferenceIdColumn].Value?.ToString();
                    string CallTypeIdValue        = worksheet.Cells[i + StartRow, CallTypeIdColumn].Value?.ToString();
                    string CallEmotionIdValue     = worksheet.Cells[i + StartRow, CallEmotionIdColumn].Value?.ToString();
                    string AppUserIdValue         = worksheet.Cells[i + StartRow, AppUserIdColumn].Value?.ToString();
                    string TitleValue             = worksheet.Cells[i + StartRow, TitleColumn].Value?.ToString();
                    string ContentValue           = worksheet.Cells[i + StartRow, ContentColumn].Value?.ToString();
                    string PhoneValue             = worksheet.Cells[i + StartRow, PhoneColumn].Value?.ToString();
                    string CallTimeValue          = worksheet.Cells[i + StartRow, CallTimeColumn].Value?.ToString();
                    string UsedValue = worksheet.Cells[i + StartRow, UsedColumn].Value?.ToString();

                    CallLog CallLog = new CallLog();
                    CallLog.Title    = TitleValue;
                    CallLog.Content  = ContentValue;
                    CallLog.Phone    = PhoneValue;
                    CallLog.CallTime = DateTime.TryParse(CallTimeValue, out DateTime CallTime) ? CallTime : DateTime.Now;
                    AppUser AppUser = AppUsers.Where(x => x.Id.ToString() == AppUserIdValue).FirstOrDefault();
                    CallLog.AppUserId = AppUser == null ? 0 : AppUser.Id;
                    CallLog.AppUser   = AppUser;
                    EntityReference EntityReference = EntityReferences.Where(x => x.Id.ToString() == EntityReferenceIdValue).FirstOrDefault();
                    CallLog.EntityReferenceId = EntityReference == null ? 0 : EntityReference.Id;
                    CallLog.EntityReference   = EntityReference;
                    CallType CallType = CallTypes.Where(x => x.Id.ToString() == CallTypeIdValue).FirstOrDefault();
                    CallLog.CallTypeId = CallType == null ? 0 : CallType.Id;
                    CallLog.CallType   = CallType;
                    CallEmotion CallEmotion = CallEmotions.Where(x => x.Id.ToString() == CallEmotionIdValue).FirstOrDefault();
                    CallLog.CallEmotionId = CallEmotion == null ? 0 : CallEmotion.Id;
                    CallLog.CallEmotion   = CallEmotion;

                    CallLogs.Add(CallLog);
                }
            }
            CallLogs = await CallLogService.Import(CallLogs);

            if (CallLogs.All(x => x.IsValidated))
            {
                return(Ok(true));
            }
            else
            {
                List <string> Errors = new List <string>();
                for (int i = 0; i < CallLogs.Count; i++)
                {
                    CallLog CallLog = CallLogs[i];
                    if (!CallLog.IsValidated)
                    {
                        string Error = $"Dòng {i + 2} có lỗi:";
                        if (CallLog.Errors.ContainsKey(nameof(CallLog.Id)))
                        {
                            Error += CallLog.Errors[nameof(CallLog.Id)];
                        }
                        if (CallLog.Errors.ContainsKey(nameof(CallLog.EntityReferenceId)))
                        {
                            Error += CallLog.Errors[nameof(CallLog.EntityReferenceId)];
                        }
                        if (CallLog.Errors.ContainsKey(nameof(CallLog.CallTypeId)))
                        {
                            Error += CallLog.Errors[nameof(CallLog.CallTypeId)];
                        }
                        if (CallLog.Errors.ContainsKey(nameof(CallLog.CallEmotionId)))
                        {
                            Error += CallLog.Errors[nameof(CallLog.CallEmotionId)];
                        }
                        if (CallLog.Errors.ContainsKey(nameof(CallLog.AppUserId)))
                        {
                            Error += CallLog.Errors[nameof(CallLog.AppUserId)];
                        }
                        if (CallLog.Errors.ContainsKey(nameof(CallLog.Title)))
                        {
                            Error += CallLog.Errors[nameof(CallLog.Title)];
                        }
                        if (CallLog.Errors.ContainsKey(nameof(CallLog.Content)))
                        {
                            Error += CallLog.Errors[nameof(CallLog.Content)];
                        }
                        if (CallLog.Errors.ContainsKey(nameof(CallLog.Phone)))
                        {
                            Error += CallLog.Errors[nameof(CallLog.Phone)];
                        }
                        if (CallLog.Errors.ContainsKey(nameof(CallLog.CallTime)))
                        {
                            Error += CallLog.Errors[nameof(CallLog.CallTime)];
                        }
                        Errors.Add(Error);
                    }
                }
                return(BadRequest(Errors));
            }
        }
コード例 #15
0
        private IQueryable <CallTypeDAO> DynamicOrder(IQueryable <CallTypeDAO> query, CallTypeFilter filter)
        {
            switch (filter.OrderType)
            {
            case OrderType.ASC:
                switch (filter.OrderBy)
                {
                case CallTypeOrder.Id:
                    query = query.OrderBy(q => q.Id);
                    break;

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

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

                case CallTypeOrder.ColorCode:
                    query = query.OrderBy(q => q.ColorCode);
                    break;

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

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

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

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

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

                case CallTypeOrder.ColorCode:
                    query = query.OrderByDescending(q => q.ColorCode);
                    break;

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

                case CallTypeOrder.Used:
                    query = query.OrderByDescending(q => q.Used);
                    break;
                }
                break;
            }
            query = query.Skip(filter.Skip).Take(filter.Take);
            return(query);
        }
コード例 #16
0
 private IQueryable <CallTypeDAO> DynamicFilter(IQueryable <CallTypeDAO> query, CallTypeFilter 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.ColorCode != null)
     {
         query = query.Where(q => q.ColorCode, filter.ColorCode);
     }
     if (filter.StatusId != null)
     {
         query = query.Where(q => q.StatusId, filter.StatusId);
     }
     query = OrFilter(query, filter);
     return(query);
 }
コード例 #17
0
        private async Task <List <CallType> > DynamicSelect(IQueryable <CallTypeDAO> query, CallTypeFilter filter)
        {
            List <CallType> CallTypes = await query.Select(q => new CallType()
            {
                Id        = filter.Selects.Contains(CallTypeSelect.Id) ? q.Id : default(long),
                Code      = filter.Selects.Contains(CallTypeSelect.Code) ? q.Code : default(string),
                Name      = filter.Selects.Contains(CallTypeSelect.Name) ? q.Name : default(string),
                ColorCode = filter.Selects.Contains(CallTypeSelect.ColorCode) ? q.ColorCode : default(string),
                StatusId  = filter.Selects.Contains(CallTypeSelect.Status) ? q.StatusId : default(long),
                Used      = filter.Selects.Contains(CallTypeSelect.Used) ? q.Used : default(bool),
                Status    = filter.Selects.Contains(CallTypeSelect.Status) && q.Status != null ? new Status
                {
                    Id   = q.Status.Id,
                    Code = q.Status.Code,
                    Name = q.Status.Name,
                } : null,
                CreatedAt = q.CreatedAt,
                UpdatedAt = q.UpdatedAt,
            }).ToListAsync();

            return(CallTypes);
        }