public IActionResult New() { var model = new NotificationNewView(); model.Notification = new DepartmentNotification(); ViewBag.Types = model.Type.ToSelectList(); model.PersonnelRoles = _personnelRolesService.GetRolesForDepartment(DepartmentId); model.UnitsTypes = _unitsService.GetUnitTypesForDepartment(DepartmentId); return(View(model)); }
public IActionResult New(NotificationNewView model, IFormCollection collection) { ViewBag.Types = model.Type.ToSelectList(); model.Notification.DepartmentId = DepartmentId; model.Notification.EventType = (int)model.Type; var roles = new List <string>(); var groups = new List <string>(); var users = new List <string>(); int lowerLimit = 0; int upperLimit = 0; if (collection.ContainsKey("roles") != null) { roles.AddRange(collection["roles"].ToString().Split(char.Parse(","))); } if (collection.ContainsKey("groups") != null) { groups.AddRange(collection["groups"].ToString().Split(char.Parse(","))); } if (collection.ContainsKey("users") != null) { users.AddRange(collection["users"].ToString().Split(char.Parse(","))); } if (collection.ContainsKey("lowerLimit") != null) { int.TryParse(collection["lowerLimit"], out lowerLimit); } if (collection.ContainsKey("upperLimit") != null) { int.TryParse(collection["upperLimit"], out upperLimit); } model.Notification.LowerLimit = lowerLimit; model.Notification.UpperLimit = upperLimit; if (ModelState.IsValid) { foreach (var user in users) { if (!String.IsNullOrWhiteSpace(user)) { model.Notification.AddUserToNotify(user); } } foreach (var group in groups) { if (!String.IsNullOrWhiteSpace(group)) { model.Notification.AddGroupToNotify(int.Parse(group)); } } foreach (var role in roles) { if (!String.IsNullOrWhiteSpace(role)) { model.Notification.AddRoleToNotify(int.Parse(role)); } } if (model.Type == EventTypes.RolesInGroupAvailabilityAlert) { model.Notification.Data = model.SelectedRole.ToString(); if (collection.ContainsKey("currentStates") != null) { model.Notification.CurrentData = collection["currentStates"]; } } else if (model.Type == EventTypes.UnitTypesInGroupAvailabilityAlert) { model.Notification.Data = model.SelectedUnitType.ToString(); if (collection.ContainsKey("currentStates") != null) { model.Notification.CurrentData = collection["currentStates"]; } } else if (model.Type == EventTypes.RolesInDepartmentAvailabilityAlert) { model.Notification.LockToGroup = false; model.Notification.Data = model.SelectedRole.ToString(); if (collection.ContainsKey("currentStates") != null) { model.Notification.CurrentData = collection["currentStates"]; } } else if (model.Type == EventTypes.UnitTypesInDepartmentAvailabilityAlert) { model.Notification.LockToGroup = false; model.Notification.Data = model.SelectedUnitType.ToString(); if (collection.ContainsKey("currentStates") != null) { model.Notification.CurrentData = collection["currentStates"]; } } _notificationService.Save(model.Notification); return(RedirectToAction("Index")); } model.PersonnelRoles = _personnelRolesService.GetRolesForDepartment(DepartmentId); model.UnitsTypes = _unitsService.GetUnitTypesForDepartment(DepartmentId); return(View(model)); }