Esempio n. 1
0
        public ActionResult ImportServiceDecompositionSpreadsheet(ImportServiceDecompositionSpreadsheetViewModel model)
        {
            if (ModelState.IsValid)
            {
                var folder = SettingsHelper.ImportSpreadsheetFileLocation;

                // If the folder doesn't exist then create
                if (!Directory.Exists(folder))
                {
                    Directory.CreateDirectory(folder);
                }

                var originalFullFileName = model.SpreadsheetFile.FileName;
                var newFileName          = Guid.NewGuid() + Path.GetExtension(originalFullFileName);
                var newfullFileName      = Path.Combine(folder, newFileName);

                try
                {
                    model.SpreadsheetFile.SaveAs(newfullFileName);
                    _serviceDecompositionDesignDataImportProcessor.Execute(newfullFileName, originalFullFileName, model.ServiceDeskId);
                    return(Redirect(model.ReturnUrl));
                }
                catch (Exception ex)
                {
                    Guid errorGuid;
                    ModelState.AddModelError(key: ModelStateErrorKey, errorMessage: Guid.TryParse(ex.Message, out errorGuid) ? string.Format(WebResources.ErrorMessage, errorGuid) : ex.Message);
                }
                finally
                {
                    // Tidy up the file if it has not been deleted
                    if (System.IO.File.Exists(newfullFileName))
                    {
                        System.IO.File.Delete(newfullFileName);
                    }
                }
            }

            return(View(model));
        }
Esempio n. 2
0
        public ActionResult ImportServiceDecompositionSpreadsheet(string level, int id)
        {
            var vm = new ImportServiceDecompositionSpreadsheetViewModel
            {
                ServiceDeskId         = id,
                EditLevel             = level,
                HasServiceDeskContext = id != 0
            };

            vm.ReturnUrl = vm.HasServiceDeskContext
                ? Url.Action("Edit", "ServiceDesk", new { level = vm.EditLevel, id = vm.ServiceDeskId })
                : Url.Action("Index", "ServiceDomain", new { level = vm.EditLevel, id = vm.ServiceDeskId });

            if (_appUserContext.Current?.CurrentCustomer != null && _appUserContext.Current.CurrentCustomer.Id > 0)
            {
                var customerId   = _appUserContext.Current.CurrentCustomer.Id;
                var serviceDesks = _serviceDeskService.GetByCustomer(customerId).ToList();

                if (id > 0)
                {
                    vm.ServiceDeskName =
                        serviceDesks.First(x => x.Id == id).DeskName;
                }
                else if (serviceDesks.Count == 1)
                {
                    vm.ServiceDeskId         = serviceDesks.First().Id;
                    vm.ServiceDeskName       = serviceDesks.First().DeskName;
                    vm.HasServiceDeskContext = true;
                }
                else
                {
                    vm.ServiceDesks.AddRange(serviceDesks.Select(s => new SelectListItem {
                        Text = s.DeskName, Value = s.Id.ToString(CultureInfo.InvariantCulture)
                    }).ToList());
                }
            }

            return(View("ImportServiceDecompositionSpreadsheet" + level, vm));
        }