public async Task <int> Count(SLAAlertFRTFilter filter) { IQueryable <SLAAlertFRTDAO> SLAAlertFRTs = DataContext.SLAAlertFRT.AsNoTracking(); SLAAlertFRTs = DynamicFilter(SLAAlertFRTs, filter); return(await SLAAlertFRTs.CountAsync()); }
public async Task <List <SLAAlertFRT> > List(SLAAlertFRTFilter filter) { if (filter == null) { return(new List <SLAAlertFRT>()); } IQueryable <SLAAlertFRTDAO> SLAAlertFRTDAOs = DataContext.SLAAlertFRT.AsNoTracking(); SLAAlertFRTDAOs = DynamicFilter(SLAAlertFRTDAOs, filter); SLAAlertFRTDAOs = DynamicOrder(SLAAlertFRTDAOs, filter); List <SLAAlertFRT> SLAAlertFRTs = await DynamicSelect(SLAAlertFRTDAOs, filter); return(SLAAlertFRTs); }
public SLAAlertFRTFilter ToFilter(SLAAlertFRTFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <SLAAlertFRTFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { SLAAlertFRTFilter subFilter = new SLAAlertFRTFilter(); 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(SLAAlertFRT SLAAlertFRT) { SLAAlertFRTFilter SLAAlertFRTFilter = new SLAAlertFRTFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = SLAAlertFRT.Id }, Selects = SLAAlertFRTSelect.Id }; int count = await UOW.SLAAlertFRTRepository.Count(SLAAlertFRTFilter); if (count == 0) { SLAAlertFRT.AddError(nameof(SLAAlertFRTValidator), nameof(SLAAlertFRT.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public async Task <List <SLAAlertFRT> > List(SLAAlertFRTFilter SLAAlertFRTFilter) { try { List <SLAAlertFRT> SLAAlertFRTs = await UOW.SLAAlertFRTRepository.List(SLAAlertFRTFilter); return(SLAAlertFRTs); } catch (Exception ex) { if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(SLAAlertFRTService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(SLAAlertFRTService)); throw new MessageException(ex.InnerException); } } }
public async Task <int> Count(SLAAlertFRTFilter SLAAlertFRTFilter) { try { int result = await UOW.SLAAlertFRTRepository.Count(SLAAlertFRTFilter); return(result); } catch (Exception ex) { if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(SLAAlertFRTService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(SLAAlertFRTService)); throw new MessageException(ex.InnerException); } } }
private IQueryable <SLAAlertFRTDAO> OrFilter(IQueryable <SLAAlertFRTDAO> query, SLAAlertFRTFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <SLAAlertFRTDAO> initQuery = query.Where(q => false); foreach (SLAAlertFRTFilter SLAAlertFRTFilter in filter.OrFilter) { IQueryable <SLAAlertFRTDAO> queryable = query; if (SLAAlertFRTFilter.Id != null) { queryable = queryable.Where(q => q.Id, SLAAlertFRTFilter.Id); } if (SLAAlertFRTFilter.TicketIssueLevelId != null) { queryable = queryable.Where(q => q.TicketIssueLevelId.HasValue).Where(q => q.TicketIssueLevelId, SLAAlertFRTFilter.TicketIssueLevelId); } if (SLAAlertFRTFilter.Time != null) { queryable = queryable.Where(q => q.Time.HasValue).Where(q => q.Time, SLAAlertFRTFilter.Time); } if (SLAAlertFRTFilter.TimeUnitId != null) { queryable = queryable.Where(q => q.TimeUnitId.HasValue).Where(q => q.TimeUnitId, SLAAlertFRTFilter.TimeUnitId); } if (SLAAlertFRTFilter.SmsTemplateId != null) { queryable = queryable.Where(q => q.SmsTemplateId.HasValue).Where(q => q.SmsTemplateId, SLAAlertFRTFilter.SmsTemplateId); } if (SLAAlertFRTFilter.MailTemplateId != null) { queryable = queryable.Where(q => q.MailTemplateId.HasValue).Where(q => q.MailTemplateId, SLAAlertFRTFilter.MailTemplateId); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <SLAAlertFRTDAO> DynamicFilter(IQueryable <SLAAlertFRTDAO> query, SLAAlertFRTFilter 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 <SLAAlertFRT> > DynamicSelect(IQueryable <SLAAlertFRTDAO> query, SLAAlertFRTFilter filter) { List <SLAAlertFRT> SLAAlertFRTs = await query.Select(q => new SLAAlertFRT() { Id = filter.Selects.Contains(SLAAlertFRTSelect.Id) ? q.Id : default(long), TicketIssueLevelId = filter.Selects.Contains(SLAAlertFRTSelect.TicketIssueLevel) ? q.TicketIssueLevelId : default(long?), IsNotification = filter.Selects.Contains(SLAAlertFRTSelect.IsNotification) ? q.IsNotification : default(bool?), IsMail = filter.Selects.Contains(SLAAlertFRTSelect.IsMail) ? q.IsMail : default(bool?), IsSMS = filter.Selects.Contains(SLAAlertFRTSelect.IsSMS) ? q.IsSMS : default(bool?), Time = filter.Selects.Contains(SLAAlertFRTSelect.Time) ? q.Time : default(long?), TimeUnitId = filter.Selects.Contains(SLAAlertFRTSelect.TimeUnit) ? q.TimeUnitId : default(long?), IsAssignedToUser = filter.Selects.Contains(SLAAlertFRTSelect.IsAssignedToUser) ? q.IsAssignedToUser : default(bool?), IsAssignedToGroup = filter.Selects.Contains(SLAAlertFRTSelect.IsAssignedToGroup) ? q.IsAssignedToGroup : default(bool?), SmsTemplateId = filter.Selects.Contains(SLAAlertFRTSelect.SmsTemplate) ? q.SmsTemplateId : default(long?), MailTemplateId = filter.Selects.Contains(SLAAlertFRTSelect.MailTemplate) ? q.MailTemplateId : default(long?), MailTemplate = filter.Selects.Contains(SLAAlertFRTSelect.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(SLAAlertFRTSelect.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(SLAAlertFRTSelect.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(SLAAlertFRTSelect.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(SLAAlertFRTs); }
private IQueryable <SLAAlertFRTDAO> DynamicOrder(IQueryable <SLAAlertFRTDAO> query, SLAAlertFRTFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case SLAAlertFRTOrder.Id: query = query.OrderBy(q => q.Id); break; case SLAAlertFRTOrder.TicketIssueLevel: query = query.OrderBy(q => q.TicketIssueLevelId); break; case SLAAlertFRTOrder.IsNotification: query = query.OrderBy(q => q.IsNotification); break; case SLAAlertFRTOrder.IsMail: query = query.OrderBy(q => q.IsMail); break; case SLAAlertFRTOrder.IsSMS: query = query.OrderBy(q => q.IsSMS); break; case SLAAlertFRTOrder.Time: query = query.OrderBy(q => q.Time); break; case SLAAlertFRTOrder.TimeUnit: query = query.OrderBy(q => q.TimeUnitId); break; case SLAAlertFRTOrder.IsAssignedToUser: query = query.OrderBy(q => q.IsAssignedToUser); break; case SLAAlertFRTOrder.IsAssignedToGroup: query = query.OrderBy(q => q.IsAssignedToGroup); break; case SLAAlertFRTOrder.SmsTemplate: query = query.OrderBy(q => q.SmsTemplateId); break; case SLAAlertFRTOrder.MailTemplate: query = query.OrderBy(q => q.MailTemplateId); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case SLAAlertFRTOrder.Id: query = query.OrderByDescending(q => q.Id); break; case SLAAlertFRTOrder.TicketIssueLevel: query = query.OrderByDescending(q => q.TicketIssueLevelId); break; case SLAAlertFRTOrder.IsNotification: query = query.OrderByDescending(q => q.IsNotification); break; case SLAAlertFRTOrder.IsMail: query = query.OrderByDescending(q => q.IsMail); break; case SLAAlertFRTOrder.IsSMS: query = query.OrderByDescending(q => q.IsSMS); break; case SLAAlertFRTOrder.Time: query = query.OrderByDescending(q => q.Time); break; case SLAAlertFRTOrder.TimeUnit: query = query.OrderByDescending(q => q.TimeUnitId); break; case SLAAlertFRTOrder.IsAssignedToUser: query = query.OrderByDescending(q => q.IsAssignedToUser); break; case SLAAlertFRTOrder.IsAssignedToGroup: query = query.OrderByDescending(q => q.IsAssignedToGroup); break; case SLAAlertFRTOrder.SmsTemplate: query = query.OrderByDescending(q => q.SmsTemplateId); break; case SLAAlertFRTOrder.MailTemplate: query = query.OrderByDescending(q => q.MailTemplateId); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }