Пример #1
0
        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));
        }
Пример #2
0
        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));
        }