예제 #1
0
        public IActionResult Create(PowerShellViewModel newScript)
        {
            if (_scriptIO.ScriptExists(newScript.Name))
            {
                ModelState.AddModelError("Name", "This Name Already Exists");
                return(View()); // TODO : Does newScript need to be passed to the view?
            }

            var script = _mapper.Map <PowerShellViewModel, Script>(newScript);

            script.Author = User.Identity.Name;

            if (TryValidateModel(script))
            {
                // Set the category
                script.Category = _scriptRepository.GetCategories().FirstOrDefault(c => c.Id == newScript.Category.Id);

                //Write File and Save Metadata
                if (_scriptIO.Write(newScript.Name, newScript.Script))
                {
                    //Save PowerShell Script
                    _scriptRepository.InsertScript(script);
                    _scriptRepository.Save();
                    //TODO: return RedirectToAction("Details", new { id = psScript.Id });
                    return(RedirectToAction("Index"));
                }
            }
            return(View(newScript));
        }
예제 #2
0
        public static Script CreateScript(PowerShellViewModel vm, string userName)
        {
            //Auto Mapper
            Mapper.CreateMap <PowerShellViewModel, Script>();
            var script = Mapper.Map <PowerShellViewModel, Script>(vm);

            script.Author = userName;
            return(script);
        }
예제 #3
0
 public ActionResult Edit(PowerShellViewModel vmScript)
 {
     //For now - only editning the file - will need to allow for renames
     if (ScriptIO.Write(vmScript.Name, vmScript.Script))
     {
         return(RedirectToAction("Details", new { id = vmScript.Id }));
     }
     return(View(vmScript));
 }
예제 #4
0
        // GET: PowerShell/Details/1
        public ActionResult Details(int id)
        {
            var script = _scriptRepository.GetScriptById(id);

            if (script == null)
            {
                return(RedirectToAction("Index"));
            }

            var scriptContents = ScriptIO.Read(script.Name);

            var scriptView = new PowerShellViewModel()
            {
                Id     = script.Id,
                Name   = script.Name,
                Script = scriptContents
            };

            return(View(scriptView));
        }
예제 #5
0
        public ActionResult Edit(PowerShellViewModel vmScript)
        {
            var script = _scriptRepository.GetScriptById(vmScript.Id);

            if (TryValidateModel(script))
            {
                // Set the category
                script.Category = _scriptRepository.GetCategories().FirstOrDefault(c => c.Id == vmScript.Category.Id);

                //Write File and Save Metadata
                if (_scriptIO.Write(vmScript.Name, vmScript.Script))
                {
                    //Save PowerShell Script
                    _scriptRepository.UpdateScript(script);
                    _scriptRepository.Save();
                    //TODO: return RedirectToAction("Details", new { id = psScript.Id });
                    return(RedirectToAction("Index"));
                }
            }
            return(View(vmScript));
        }
예제 #6
0
        public ActionResult Create([Bind("Name,Script")] PowerShellViewModel newScript)
        {
            if (ScriptIO.ScriptExists(newScript.Name)) //TODO: Ensure this works on ViewModel - Having Issues - 11/16/2015
            {
                ModelState.AddModelError("Name", "This Name Already Exists");
                return(View(newScript));
            }
            var script = ConvertServices.CreateScript(newScript, User.Identity.Name);

            if (TryValidateModel(script))
            {
                //Write File and Save Metadata
                if (ScriptIO.Write(newScript.Name, newScript.Script))
                {
                    //Save PowerShell Script
                    _scriptRepository.InsertScript(script);
                    _scriptRepository.Save();
                    //TODO: return RedirectToAction("Details", new { id = psScript.Id });
                    return(RedirectToAction("Index"));
                }
            }
            return(View(newScript));
        }