public async Task <JsonResult> RemoveFolder(Guid ID)
        {
            try
            {
                FolderDetailsViewModel model = new FolderDetailsViewModel();
                model._context         = _context;
                model._user            = User;
                model.FolderID         = ID;
                model._securityOptions = _securityOptions;

                bool removed = await model.Remove();

                if (removed)
                {
                    return(Json(new { Result = true, Message = "Folder removed successfully" }));
                }
                else
                {
                    return(Json(new { Result = false, Message = "Unable to remove folder" }));
                }
            }
            catch (Exception ex)
            {
                HelperFunctions.Log(_context, PublicEnums.LogLevel.LEVEL_EXCEPTION, "Controllers.FileShareController.RemoveFolder", ex.Message, User, ex);
                return(Json(new { Result = false, Message = "Unable to remove folder" }));
            }
        }
        public async Task <IActionResult> FolderDetails(Guid ID, bool Success = false)
        {
            try
            {
                FolderDetailsViewModel model = new FolderDetailsViewModel();
                model._context = _context;
                model.FolderID = ID;
                model._user    = User;
                await model.PopulateDetails();

                await model.PopulateLists();

                ViewData.Model = model;
            }
            catch (Exception ex)
            {
                HelperFunctions.Log(_context, PublicEnums.LogLevel.LEVEL_EXCEPTION, "Controllers.FileShareController.FolderDetails", ex.Message, User, ex);
                ViewBag.Error = "An error occurred. Please try again later.";
            }

            //Set message if redirected from save
            if (Success)
            {
                ViewBag.Success = "Folder updated successfully";
            }

            return(View());
        }
        public async Task <IActionResult> FolderDetails(FolderDetailsViewModel model)
        {
            model._context         = _context;
            model._securityOptions = _securityOptions;
            model._emailService    = _emailService;
            model._user            = User;

            try
            {
                if (ModelState.IsValid)
                {
                    Guid folderID = Guid.Empty;

                    folderID = await model.Save();

                    if (folderID != Guid.Empty)
                    {
                        return(RedirectToAction("FolderDetails", new { ID = folderID, Success = true }));
                    }
                    else
                    {
                        ViewBag.Error = model.errorMessage;
                    }
                }
                else
                {
                    ViewBag.Error = "Please make sure the required fields are added";
                }
            }
            catch (Exception ex)
            {
                HelperFunctions.Log(_context, PublicEnums.LogLevel.LEVEL_EXCEPTION, "Controllers.FileShareController.FolderDetails", ex.Message, User, ex);
                ViewBag.Error = "An error occurred. Please try again later.";
            }
            finally
            {
                await model.PopulateLists();
            }
            return(View(model));
        }