public async Task <int> Count(SLAEscalationFilter filter) { IQueryable <SLAEscalationDAO> SLAEscalations = DataContext.SLAEscalation.AsNoTracking(); SLAEscalations = DynamicFilter(SLAEscalations, filter); return(await SLAEscalations.CountAsync()); }
public async Task <List <SLAEscalation> > List(SLAEscalationFilter filter) { if (filter == null) { return(new List <SLAEscalation>()); } IQueryable <SLAEscalationDAO> SLAEscalationDAOs = DataContext.SLAEscalation.AsNoTracking(); SLAEscalationDAOs = DynamicFilter(SLAEscalationDAOs, filter); SLAEscalationDAOs = DynamicOrder(SLAEscalationDAOs, filter); List <SLAEscalation> SLAEscalations = await DynamicSelect(SLAEscalationDAOs, filter); return(SLAEscalations); }
public SLAEscalationFilter ToFilter(SLAEscalationFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <SLAEscalationFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { SLAEscalationFilter subFilter = new SLAEscalationFilter(); 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.TicketIssueLevelId)) { subFilter.TicketIssueLevelId = FilterPermissionDefinition.IdFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.Time)) { subFilter.Time = FilterPermissionDefinition.LongFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.TimeUnitId)) { subFilter.TimeUnitId = FilterPermissionDefinition.IdFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.SmsTemplateId)) { subFilter.SmsTemplateId = FilterPermissionDefinition.IdFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.MailTemplateId)) { subFilter.MailTemplateId = FilterPermissionDefinition.IdFilter; } } } return(filter); }
public async Task <bool> ValidateId(SLAEscalation SLAEscalation) { SLAEscalationFilter SLAEscalationFilter = new SLAEscalationFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = SLAEscalation.Id }, Selects = SLAEscalationSelect.Id }; int count = await UOW.SLAEscalationRepository.Count(SLAEscalationFilter); if (count == 0) { SLAEscalation.AddError(nameof(SLAEscalationValidator), nameof(SLAEscalation.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public async Task <List <SLAEscalation> > List(SLAEscalationFilter SLAEscalationFilter) { try { List <SLAEscalation> SLAEscalations = await UOW.SLAEscalationRepository.List(SLAEscalationFilter); return(SLAEscalations); } catch (Exception ex) { if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(SLAEscalationService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(SLAEscalationService)); throw new MessageException(ex.InnerException); } } }
public async Task <int> Count(SLAEscalationFilter SLAEscalationFilter) { try { int result = await UOW.SLAEscalationRepository.Count(SLAEscalationFilter); return(result); } catch (Exception ex) { if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(SLAEscalationService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(SLAEscalationService)); throw new MessageException(ex.InnerException); } } }
private IQueryable <SLAEscalationDAO> OrFilter(IQueryable <SLAEscalationDAO> query, SLAEscalationFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <SLAEscalationDAO> initQuery = query.Where(q => false); foreach (SLAEscalationFilter SLAEscalationFilter in filter.OrFilter) { IQueryable <SLAEscalationDAO> queryable = query; if (SLAEscalationFilter.Id != null) { queryable = queryable.Where(q => q.Id, SLAEscalationFilter.Id); } if (SLAEscalationFilter.TicketIssueLevelId != null) { queryable = queryable.Where(q => q.TicketIssueLevelId.HasValue).Where(q => q.TicketIssueLevelId, SLAEscalationFilter.TicketIssueLevelId); } if (SLAEscalationFilter.Time != null) { queryable = queryable.Where(q => q.Time.HasValue).Where(q => q.Time, SLAEscalationFilter.Time); } if (SLAEscalationFilter.TimeUnitId != null) { queryable = queryable.Where(q => q.TimeUnitId.HasValue).Where(q => q.TimeUnitId, SLAEscalationFilter.TimeUnitId); } if (SLAEscalationFilter.SmsTemplateId != null) { queryable = queryable.Where(q => q.SmsTemplateId.HasValue).Where(q => q.SmsTemplateId, SLAEscalationFilter.SmsTemplateId); } if (SLAEscalationFilter.MailTemplateId != null) { queryable = queryable.Where(q => q.MailTemplateId.HasValue).Where(q => q.MailTemplateId, SLAEscalationFilter.MailTemplateId); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <SLAEscalationDAO> DynamicFilter(IQueryable <SLAEscalationDAO> query, SLAEscalationFilter 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.TicketIssueLevelId != null) { query = query.Where(q => q.TicketIssueLevelId.HasValue).Where(q => q.TicketIssueLevelId, filter.TicketIssueLevelId); } if (filter.Time != null) { query = query.Where(q => q.Time.HasValue).Where(q => q.Time, filter.Time); } if (filter.TimeUnitId != null) { query = query.Where(q => q.TimeUnitId.HasValue).Where(q => q.TimeUnitId, filter.TimeUnitId); } if (filter.SmsTemplateId != null) { query = query.Where(q => q.SmsTemplateId.HasValue).Where(q => q.SmsTemplateId, filter.SmsTemplateId); } if (filter.MailTemplateId != null) { query = query.Where(q => q.MailTemplateId.HasValue).Where(q => q.MailTemplateId, filter.MailTemplateId); } query = OrFilter(query, filter); return(query); }
private async Task <List <SLAEscalation> > DynamicSelect(IQueryable <SLAEscalationDAO> query, SLAEscalationFilter filter) { List <SLAEscalation> SLAEscalations = await query.Select(q => new SLAEscalation() { Id = filter.Selects.Contains(SLAEscalationSelect.Id) ? q.Id : default(long), TicketIssueLevelId = filter.Selects.Contains(SLAEscalationSelect.TicketIssueLevel) ? q.TicketIssueLevelId : default(long?), IsNotification = filter.Selects.Contains(SLAEscalationSelect.IsNotification) ? q.IsNotification : default(bool?), IsMail = filter.Selects.Contains(SLAEscalationSelect.IsMail) ? q.IsMail : default(bool?), IsSMS = filter.Selects.Contains(SLAEscalationSelect.IsSMS) ? q.IsSMS : default(bool?), Time = filter.Selects.Contains(SLAEscalationSelect.Time) ? q.Time : default(long?), TimeUnitId = filter.Selects.Contains(SLAEscalationSelect.TimeUnit) ? q.TimeUnitId : default(long?), IsAssignedToUser = filter.Selects.Contains(SLAEscalationSelect.IsAssignedToUser) ? q.IsAssignedToUser : default(bool?), IsAssignedToGroup = filter.Selects.Contains(SLAEscalationSelect.IsAssignedToGroup) ? q.IsAssignedToGroup : default(bool?), SmsTemplateId = filter.Selects.Contains(SLAEscalationSelect.SmsTemplate) ? q.SmsTemplateId : default(long?), MailTemplateId = filter.Selects.Contains(SLAEscalationSelect.MailTemplate) ? q.MailTemplateId : default(long?), MailTemplate = filter.Selects.Contains(SLAEscalationSelect.MailTemplate) && q.MailTemplate != null ? new MailTemplate { Id = q.MailTemplate.Id, Code = q.MailTemplate.Code, Name = q.MailTemplate.Name, Content = q.MailTemplate.Content, StatusId = q.MailTemplate.StatusId, } : null, SmsTemplate = filter.Selects.Contains(SLAEscalationSelect.SmsTemplate) && q.SmsTemplate != null ? new SmsTemplate { Id = q.SmsTemplate.Id, Code = q.SmsTemplate.Code, Name = q.SmsTemplate.Name, Content = q.SmsTemplate.Content, StatusId = q.SmsTemplate.StatusId, } : null, TicketIssueLevel = filter.Selects.Contains(SLAEscalationSelect.TicketIssueLevel) && q.TicketIssueLevel != null ? new TicketIssueLevel { Id = q.TicketIssueLevel.Id, Name = q.TicketIssueLevel.Name, OrderNumber = q.TicketIssueLevel.OrderNumber, TicketGroupId = q.TicketIssueLevel.TicketGroupId, StatusId = q.TicketIssueLevel.StatusId, SLA = q.TicketIssueLevel.SLA, Used = q.TicketIssueLevel.Used, } : null, TimeUnit = filter.Selects.Contains(SLAEscalationSelect.TimeUnit) && q.TimeUnit != null ? new SLATimeUnit { Id = q.TimeUnit.Id, Code = q.TimeUnit.Code, Name = q.TimeUnit.Name, } : null, CreatedAt = q.CreatedAt, UpdatedAt = q.UpdatedAt, }).ToListAsync(); return(SLAEscalations); }
private IQueryable <SLAEscalationDAO> DynamicOrder(IQueryable <SLAEscalationDAO> query, SLAEscalationFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case SLAEscalationOrder.Id: query = query.OrderBy(q => q.Id); break; case SLAEscalationOrder.TicketIssueLevel: query = query.OrderBy(q => q.TicketIssueLevelId); break; case SLAEscalationOrder.IsNotification: query = query.OrderBy(q => q.IsNotification); break; case SLAEscalationOrder.IsMail: query = query.OrderBy(q => q.IsMail); break; case SLAEscalationOrder.IsSMS: query = query.OrderBy(q => q.IsSMS); break; case SLAEscalationOrder.Time: query = query.OrderBy(q => q.Time); break; case SLAEscalationOrder.TimeUnit: query = query.OrderBy(q => q.TimeUnitId); break; case SLAEscalationOrder.IsAssignedToUser: query = query.OrderBy(q => q.IsAssignedToUser); break; case SLAEscalationOrder.IsAssignedToGroup: query = query.OrderBy(q => q.IsAssignedToGroup); break; case SLAEscalationOrder.SmsTemplate: query = query.OrderBy(q => q.SmsTemplateId); break; case SLAEscalationOrder.MailTemplate: query = query.OrderBy(q => q.MailTemplateId); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case SLAEscalationOrder.Id: query = query.OrderByDescending(q => q.Id); break; case SLAEscalationOrder.TicketIssueLevel: query = query.OrderByDescending(q => q.TicketIssueLevelId); break; case SLAEscalationOrder.IsNotification: query = query.OrderByDescending(q => q.IsNotification); break; case SLAEscalationOrder.IsMail: query = query.OrderByDescending(q => q.IsMail); break; case SLAEscalationOrder.IsSMS: query = query.OrderByDescending(q => q.IsSMS); break; case SLAEscalationOrder.Time: query = query.OrderByDescending(q => q.Time); break; case SLAEscalationOrder.TimeUnit: query = query.OrderByDescending(q => q.TimeUnitId); break; case SLAEscalationOrder.IsAssignedToUser: query = query.OrderByDescending(q => q.IsAssignedToUser); break; case SLAEscalationOrder.IsAssignedToGroup: query = query.OrderByDescending(q => q.IsAssignedToGroup); break; case SLAEscalationOrder.SmsTemplate: query = query.OrderByDescending(q => q.SmsTemplateId); break; case SLAEscalationOrder.MailTemplate: query = query.OrderByDescending(q => q.MailTemplateId); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }