public async Task <OperationDataResult <NotificationRulesListModel> > GetRules(NotificationListRequestModel requestModel) { try { var rules = await _dbContext.Rules .AsNoTracking() .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed) .Skip(requestModel.Offset) .Take(requestModel.PageSize) .ToListAsync(); var result = new NotificationRulesListModel(); foreach (var rule in rules) { var ruleModel = new NotificationRuleSimpleModel { Id = rule.Id, Trigger = RulesBlockHelper.GetRuleTriggerString(rule), Event = "Email" }; result.Rules.Add(ruleModel); } result.Total = await _dbContext.Rules.CountAsync(x => x.WorkflowState != Constants.WorkflowStates.Removed); return(new OperationDataResult <NotificationRulesListModel>(true, result)); } catch (Exception e) { _logger.LogError(e.Message); return(new OperationDataResult <NotificationRulesListModel>( false, _localizationService.GetString("ErrorWhileObtainingNotificationRulesInfo"))); } }
public async Task <OperationDataResult <NotificationRulesListModel> > Index(NotificationListRequestModel requestModel) { var core = await _coreHelper.GetCore(); await using MicrotingDbContext dbContext = core.DbContextHelper.GetDbContext(); List <KeyValuePair <int, string> > eForms = new List <KeyValuePair <int, string> >(); try { var rules = await _dbContext.Rules .AsNoTracking() .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed) .Skip(requestModel.Offset) .Take(requestModel.PageSize) .Include(x => x.Recipients) .Include(x => x.DeviceUsers) .ToListAsync(); var result = new NotificationRulesListModel(); foreach (var rule in rules) { string eFormName; if (eForms.Any(x => x.Key == rule.CheckListId)) { eFormName = eForms.First(x => x.Key == rule.CheckListId).Value; } else { eForms.Add(new KeyValuePair <int, string>(rule.CheckListId, dbContext.CheckLists.Single(x => x.Id == rule.CheckListId).Label)); eFormName = eForms.First(x => x.Key == rule.CheckListId).Value; } var ruleModel = new NotificationRuleSimpleModel { Id = rule.Id, EFormName = eFormName, Event = "Email" }; if (rule.Data != null && !string.IsNullOrEmpty(rule.Data)) { try { ruleModel.Trigger = RulesBlockHelper.GetRuleTriggerString(rule, dbContext); } catch (Exception ex) { Console.WriteLine(ex.Message); } } result.Rules.Add(ruleModel); } result.Total = await _dbContext.Rules.CountAsync(x => x.WorkflowState != Constants.WorkflowStates.Removed); return(new OperationDataResult <NotificationRulesListModel>(true, result)); } catch (Exception e) { _logger.LogError(e.Message); return(new OperationDataResult <NotificationRulesListModel>( false, _localizationService.GetString("ErrorWhileObtainingNotificationRulesInfo"))); } }