public async Task <ParentAlertTypeModel> SaveParentAlertTypes(ParentAlertTypeModel parentAlertTypes, int usi) { var parent = await _edFiDb.Parents.Where(p => p.ParentUsi == usi).FirstOrDefaultAsync(); var parentAlert = await _edFiDb.ParentAlerts .Include(x => x.AlertTypes) .Where(x => x.ParentUniqueId == parent.ParentUniqueId) .FirstOrDefaultAsync(); var alertTypes = await _edFiDb.AlertTypes .ToListAsync(); var parentAlerts = alertTypes.Where(x => parentAlertTypes.Alerts.Any(pa => pa.AlertTypeId == x.AlertTypeId && pa.Enabled.HasValue && pa.Enabled.Value)).ToList(); if (parentAlert == null) { parentAlert = createParentAlert(parent.ParentUniqueId); } parentAlert.AlertsEnabled = parentAlertTypes.AlertsEnabled; parentAlert.AlertTypes = parentAlerts; await SaveChanges(); return(parentAlertTypes); }
public async Task <IHttpActionResult> SaveParentAlerts(ParentAlertTypeModel model) { var person = SecurityPrincipal.Current; var role = person.Role; if (role.Equals("Parent", System.StringComparison.InvariantCultureIgnoreCase)) { return(Ok(await _alertsService.SaveParentAlertTypes(model, person.PersonUSI))); } return(NotFound()); // A Teacher Shouldnt have access }
public async Task <ParentAlertTypeModel> GetParentAlertTypes(int usi) { var parentAlertTypes = new ParentAlertTypeModel(); var parentAlert = await(from pa in _edFiDb.ParentAlerts .Include(x => x.AlertTypes) join p in _edFiDb.Parents on pa.ParentUniqueId equals p.ParentUniqueId where p.ParentUsi == usi select pa).FirstOrDefaultAsync(); //Note: This flag was true always by the user feedback parentAlertTypes.AlertsEnabled = true; var alertTypes = (await _edFiDb.AlertTypes .Include(x => x.ThresholdTypes) .ToListAsync()).Select(alertType => new AlertTypeModel() { AlertTypeId = alertType.AlertTypeId, Description = alertType.Description, ShortDescription = alertType.ShortDescription, Enabled = false, Thresholds = alertType?.ThresholdTypes.Select(tt => new ThresholdTypeModel() { ThresholdTypeId = tt.ThresholdTypeId, Description = tt.Description, ShortDescription = tt.ShortDescription, ThresholdValue = tt.ThresholdValue, }).ToList() }).ToList(); var alertTypesResult = alertTypes.Select(alertType => { alertType.Enabled = parentAlert?.AlertTypes.Any(x => x.AlertTypeId == alertType.AlertTypeId); return(alertType); }); parentAlertTypes.Alerts = alertTypesResult.ToList(); return(parentAlertTypes); }
private ParentAlertTypeModel featureToggleFilter(CustomParameters customParameters, ParentAlertTypeModel model) { List <AlertTypeModel> modelAlerts = new List <AlertTypeModel>(); modelAlerts = model.Alerts.ToList(); model.Alerts = new List <AlertTypeModel>(); foreach (var alert in modelAlerts) { if (alert.AlertTypeId == 1 && customParameters.featureToggle.Select(x => x.features.Where(i => i.enabled && i.studentAbc != null).ToList()).FirstOrDefault().Count > 0 && customParameters.featureToggle.Select(x => x.features.Where(i => i.enabled && i.studentAbc != null)).FirstOrDefault().FirstOrDefault().studentAbc.absence) { model.Alerts.Add(modelAlerts.FirstOrDefault(x => x.AlertTypeId == 1)); } if (alert.AlertTypeId == 2 && customParameters.featureToggle.Select(x => x.features.Where(i => i.enabled && i.studentAbc != null).ToList()).FirstOrDefault().Count > 0 && customParameters.featureToggle.Select(x => x.features.Where(i => i.enabled && i.studentAbc != null)).FirstOrDefault().FirstOrDefault().studentAbc.behavior) { model.Alerts.Add(modelAlerts.FirstOrDefault(x => x.AlertTypeId == 2)); } if (alert.AlertTypeId == 3 && customParameters.featureToggle.Select(x => x.features.Where(i => i.enabled && i.studentAbc != null).ToList()).FirstOrDefault().Count > 0 && customParameters.featureToggle.Select(x => x.features.Where(i => i.enabled && i.studentAbc != null)).FirstOrDefault().FirstOrDefault().studentAbc.missingAssignments) { model.Alerts.Add(modelAlerts.FirstOrDefault(x => x.AlertTypeId == 3)); } if (alert.AlertTypeId == 4 && customParameters.featureToggle.Select(x => x.features.Where(i => i.enabled && i.studentAbc != null).ToList()).FirstOrDefault().Count > 0 && customParameters.featureToggle.Select(x => x.features.Where(i => i.enabled && i.studentAbc != null)).FirstOrDefault().FirstOrDefault().studentAbc.courseAverage) { model.Alerts.Add(modelAlerts.FirstOrDefault(x => x.AlertTypeId == 4)); } if (alert.AlertTypeId == 5) { model.Alerts.Add(modelAlerts.FirstOrDefault(x => x.AlertTypeId == 5)); } } return(model); }
public async Task <ParentAlertTypeModel> SaveParentAlertTypes(ParentAlertTypeModel parentAlertTypes, int usi) { return(await _alertRepository.SaveParentAlertTypes(parentAlertTypes, usi)); }