public ActionResult Edit(string level, int id) { if (_appUserContext.Current.CurrentCustomer == null || _appUserContext.Current.CurrentCustomer.Id == 0) { return(GetRedirect(level, null)); } var serviceDeskCount = _serviceDeskService .GetByCustomer(_appUserContext.Current.CurrentCustomer.Id) .Select(s => s.Id) .Count(); var serviceDesk = _serviceDeskService .GetByCustomerAndId(_appUserContext.Current.CurrentCustomer.Id, id); if (serviceDesk == null) { return(GetRedirect(level, _appUserContext.Current.CurrentCustomer.Id)); } var templates = _templateService.AllTemplates().ToList(); var vm = new EditServiceDeskViewModel { ServiceDesk = Mapper.Map <ServiceDeskViewModel>(serviceDesk), EditLevel = level, CanMoveServiceDomain = serviceDeskCount > 1, CanImportServiceConfiguratorTemplate = templates.Any(x => x.TemplateType == TemplateTypeNames.SORT), CanImportServiceLandscapeTemplate = templates.Any(x => x.TemplateType == TemplateTypeNames.SLM) }; return(View("Edit" + level, vm)); }
public ActionResult Edit(string level, int id, string deskName, int[] deskInputTypes) { if (_appUserContext.Current.CurrentCustomer == null || _appUserContext.Current.CurrentCustomer.Id == 0) { return(GetRedirect(level, null)); } var customerId = _appUserContext.Current.CurrentCustomer.Id; if (_contextManager.RequestManager.Form[FormValuesNames.Return] != null) { return(GetRedirect(level, customerId)); } var serviceDesk = _serviceDeskService.GetByCustomerAndId(customerId, id); if (serviceDesk == null) { return(GetRedirect(level, _appUserContext.Current.CurrentCustomer.Id)); } if (ModelState.IsValid) { var now = DateTime.Now; serviceDesk.DeskName = deskName; serviceDesk.UpdatedBy = _contextManager.UserManager.Name; serviceDesk.UpdatedDate = now; // Add Desk Input Types if (deskInputTypes != null && deskInputTypes.Length > 0) { // Remove Desk Input Types var deletedDeskInputTypes = serviceDesk .DeskInputTypes .RemoveAll(x => !deskInputTypes.Any(y => y == x.InputTypeRefData.Id)) .Select(s => s.Id) .ToList(); var newDeskInputTypeIds = deskInputTypes.Where(x => serviceDesk.DeskInputTypes.All(y => y.InputTypeRefData.Id != x)); foreach (var deskInputTypeId in newDeskInputTypeIds) { serviceDesk.DeskInputTypes.Add(new DeskInputType { InputTypeRefData = _inputTypeRefDataService.GetById(deskInputTypeId) }); } _serviceDeskService.Update(serviceDesk, deletedDeskInputTypes); } else { // Remove all of the Desk Input Types if (serviceDesk.DeskInputTypes.Any()) { var deletedDeskInputTypes = serviceDesk .DeskInputTypes .Select(s => s.Id) .ToList(); _serviceDeskService.Update(serviceDesk, deletedDeskInputTypes); } else { _serviceDeskService.Update(serviceDesk); } } return(GetRedirect(level, _appUserContext.Current.CurrentCustomer.Id)); } var templates = _templateService.AllTemplates().ToList(); var vm = new EditServiceDeskViewModel { EditLevel = level, ServiceDesk = Mapper.Map <ServiceDeskViewModel>(serviceDesk), CanImportServiceConfiguratorTemplate = templates.Any(x => x.TemplateType == TemplateTypeNames.SORT), CanImportServiceLandscapeTemplate = templates.Any(x => x.TemplateType == TemplateTypeNames.SLM) }; return(View("Edit" + level, vm)); }