예제 #1
0
        public ActionResult EditFile(SymbolFile symbolFile)
        {
            var originalSymbolFile = _symbolService.GetSymbolFile(symbolFile.SystemId);

            ViewBag.Sizes          = new SelectList(CodeList.Size, "Key", "Value", originalSymbolFile.Size);
            ViewBag.SymbolGraphics = new SelectList(CodeList.SymbolGraphics, "Key", "Value", originalSymbolFile.Type);

            if (!_authorizationService.HasAccess(originalSymbolFile.Symbol.Owner,
                                                 ClaimsPrincipal.Current.GetOrganizationName()))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized));
            }
            if (ModelState.IsValid)
            {
                try
                {
                    if (symbolFile.FileName != originalSymbolFile.FileName)
                    {
                        _symbolService.RenameFile(originalSymbolFile, symbolFile.FileName);
                        originalSymbolFile.FileName = symbolFile.FileName;
                    }

                    originalSymbolFile.Color = symbolFile.Color;
                    originalSymbolFile.Size  = symbolFile.Size;
                    originalSymbolFile.Type  = symbolFile.Type;

                    _symbolService.UpdateSymbolFile(originalSymbolFile);
                    return(RedirectToAction("edit", "symbolfiles", new { systemid = originalSymbolFile.SymbolFileVariant.SystemId }));
                }
                catch (FileException exf)
                {
                    Log.Error(exf);
                    ModelState.AddModelError("errorFile", exf.Message);
                }
                catch (Exception ex) {
                    Log.Error(ex);
                    ModelState.AddModelError("error", "Det oppstod en feil");
                }
            }

            return(View(originalSymbolFile));
        }