예제 #1
0
 public async Task <ActionResult> EditDefaultSettings(bool isFirstTimeUser = false)
 {
     return(View(DefaultSettingsModel.GetModel(await GetUserForDefaultSettings(), isFirstTimeUser)));
 }
예제 #2
0
        public async Task <ActionResult> EditDefaultSettings(DefaultSettingsModel model)
        {
            var user = await _userManager.GetUserAsync(User);

            if (ModelState.IsValid)
            {
                if (user != null)
                {
                    await _userService.LogDefaultSettingsUpdateAsync(user.Id, impersonatorUpdatedById : User.TryGetImpersonatorId());

                    UpdateDefaultSetting(user, DefaultSettingsType.Region, model.RegionId?.ToSwedishString());
                    UpdateDefaultSetting(user, DefaultSettingsType.CustomerUnit, model.CustomerUnitId?.ToSwedishString());

                    UpdateDefaultSetting(user, DefaultSettingsType.InterpreterLocationPrimary, ((int?)model.RankedInterpreterLocationFirst)?.ToSwedishString());
                    UpdateDefaultSetting(user, DefaultSettingsType.InterpreterLocationSecondary, ((int?)model.RankedInterpreterLocationSecond)?.ToSwedishString());
                    UpdateDefaultSetting(user, DefaultSettingsType.InterpreterLocationThird, ((int?)model.RankedInterpreterLocationThird)?.ToSwedishString());

                    UpdateDefaultSetting(user, DefaultSettingsType.OnSiteStreet, model.OnSiteLocationStreet);
                    UpdateDefaultSetting(user, DefaultSettingsType.OnSiteCity, model.OnSiteLocationCity);
                    UpdateDefaultSetting(user, DefaultSettingsType.OffSiteDesignatedLocationStreet, model.OffSiteDesignatedLocationStreet);
                    UpdateDefaultSetting(user, DefaultSettingsType.OffSiteDesignatedLocationCity, model.OffSiteDesignatedLocationCity);
                    UpdateDefaultSetting(user, DefaultSettingsType.OffSitePhoneContactInformation, model.OffSitePhoneContactInformation);
                    UpdateDefaultSetting(user, DefaultSettingsType.OffSiteVideoContactInformation, model.OffSiteVideoContactInformation);
                    UpdateDefaultSetting(user, DefaultSettingsType.AllowExceedingTravelCost, ((int?)model.AllowExceedingTravelCost)?.ToSwedishString());
                    UpdateDefaultSetting(user, DefaultSettingsType.InvoiceReference, model.InvoiceReference);
                    UpdateDefaultSetting(user, DefaultSettingsType.CreatorIsInterpreterUser, model.CreatorIsInterpreterUser.HasValue ? model.CreatorIsInterpreterUser.ToString() : null);

                    List <UserDefaultSettingOrderRequirement> updatedOrderRequirements = new List <UserDefaultSettingOrderRequirement>();

                    if (model.OrderRequirements != null)
                    {
                        // add all extra requirements
                        foreach (var req in model.OrderRequirements)
                        {
                            UserDefaultSettingOrderRequirement requirement = new UserDefaultSettingOrderRequirement
                            {
                                UserDefaultSettingOrderRequirementId = req.UserDefaultSettingOrderRequirementId ?? 0,
                                RequirementType = req.RequirementType.Value,
                                IsRequired      = true,
                                Description     = req.RequirementDescription
                            };
                            updatedOrderRequirements.Add(requirement);
                        }
                    }
                    if (model.OrderDesiredRequirements != null)
                    {
                        // add all extra desired requirements
                        foreach (var req in model.OrderDesiredRequirements)
                        {
                            UserDefaultSettingOrderRequirement requirement = new UserDefaultSettingOrderRequirement
                            {
                                UserDefaultSettingOrderRequirementId = req.UserDefaultSettingOrderRequirementId ?? 0,
                                RequirementType = req.DesiredRequirementType.Value,
                                IsRequired      = false,
                                Description     = req.DesiredRequirementDescription
                            };
                            updatedOrderRequirements.Add(requirement);
                        }
                    }
                    UpdateDefaultSettingOrderRequirement(user, updatedOrderRequirements);

                    await _dbContext.SaveChangesAsync();

                    return(model.IsFirstTimeUser ?
                           RedirectToAction(nameof(Index), "Home", new { message = "Bokningsinställningar sparade. Du kan nu börja använda tjänsten!" }) :
                           RedirectToAction(nameof(ViewDefaultSettings), new { message = "Ändringar sparade" }));
                }
                return(Forbid());
            }
            return(View(model));
        }
 public async Task UpdateDefaultPriceSettingsAsync([FromBody] DefaultSettingsModel defaultSettings)
 {
     await _settingsService.UpdateDefaultSettingsAsync(Mapper.Map <DefaultSetting>(defaultSettings));
 }