コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }