public async Task <IActionResult> Settings(OrderSetttingsView model, IFormCollection form, CancellationToken cancellationToken) { var department = await _departmentsService.GetDepartmentByIdAsync(DepartmentId); var settings = await _resourceOrdersService.GetSettingsByDepartmentIdAsync(DepartmentId); if (ModelState.IsValid) { if (settings == null) { settings = new ResourceOrderSetting(); settings.DepartmentId = DepartmentId; settings.ImportEmailCode = RandomGenerator.GenerateRandomString(6, 6, false, true, false, true, true, false, null); } settings.AllowedStaffingLevelToReceiveNotifications = model.Settings.AllowedStaffingLevelToReceiveNotifications; settings.AutomaticFillAcceptance = model.Settings.AutomaticFillAcceptance; settings.BoundryGeofence = model.Settings.BoundryGeofence; settings.DefaultResourceOrderManagerUserId = model.Settings.DefaultResourceOrderManagerUserId; settings.DoNotReceiveOrders = model.Settings.DoNotReceiveOrders; settings.LimitStaffingLevelToReceiveNotifications = model.Settings.LimitStaffingLevelToReceiveNotifications; settings.NotifyUsers = model.Settings.NotifyUsers; settings.Range = model.Settings.Range; settings.RoleAllowedToFulfilOrdersRoleId = model.Settings.RoleAllowedToFulfilOrdersRoleId; settings.Visibility = model.Settings.Visibility; if (form.ContainsKey("departmentTypes")) { settings.TargetDepartmentType = form["departmentTypes"].ToString(); } if (form.ContainsKey("notifyRoles")) { settings.UserIdsToNotifyOnOrders = form["notifyRoles"].ToString(); } await _resourceOrdersService.SaveSettingsAsync(settings, cancellationToken); return(RedirectToAction("Index")); } model.OrderVisibilities = model.Visibility.ToSelectListInt(); var staffingLevels = await _customStateService.GetActiveStaffingLevelsForDepartmentAsync(DepartmentId); if (staffingLevels == null) { model.StaffingLevels = model.UserStateTypes.ToSelectListInt(); } else { model.StaffingLevels = new SelectList(staffingLevels.GetActiveDetails(), "CustomStateDetailId", "ButtonText"); } model.SetUsers(await _departmentsService.GetAllUsersForDepartmentAsync(DepartmentId, false, true), await _departmentsService.GetAllPersonnelNamesForDepartmentAsync(DepartmentId)); return(View(model)); }
public async Task <IActionResult> Settings() { var model = new OrderSetttingsView(); var department = await _departmentsService.GetDepartmentByIdAsync(DepartmentId); var settings = await _resourceOrdersService.GetSettingsByDepartmentIdAsync(DepartmentId); if (settings != null) { model.Settings = settings; } else { model.Settings = new ResourceOrderSetting(); model.Settings.DefaultResourceOrderManagerUserId = department.ManagingUserId; model.Settings.Range = 500; } model.OrderVisibilities = model.Visibility.ToSelectListInt(); var staffingLevels = await _customStateService.GetActiveStaffingLevelsForDepartmentAsync(DepartmentId); if (staffingLevels == null) { model.StaffingLevels = model.UserStateTypes.ToSelectListInt(); } else { model.StaffingLevels = new SelectList(staffingLevels.GetActiveDetails(), "CustomStateDetailId", "ButtonText"); } model.SetUsers(await _departmentsService.GetAllUsersForDepartmentAsync(DepartmentId, false, true), await _departmentsService.GetAllPersonnelNamesForDepartmentAsync(DepartmentId)); ViewBag.Users = new SelectList(model.Users, "Key", "Value"); return(View(model)); }