示例#1
0
        public virtual ActionResult Ajax(LoginModel loginModel, int redirect)
        {
            var resultData = new JsonResultEntry();
            try
            {
                if (UserServices.ValidateUser(loginModel.UserName, loginModel.Password) != null)
                {
                    System.Web.Security.FormsAuthentication.SetAuthCookie(loginModel.UserName, loginModel.RememberMe);
                    if (redirect == 0)
                    {
                        resultData.RedirectUrl = Request.UrlReferrer.ToString();
                    }
                    else
                    {
                        resultData.RedirectUrl = System.Web.Security.FormsAuthentication.DefaultUrl;
                    }

                }
                else
                {
                    ModelState.AddModelError("UserName", "Username and/or password are incorrect.".Localize());
                }

                resultData.AddModelState(ModelState);
            }
            catch (Exception e)
            {
                resultData.AddException(e);
            }
            return Json(resultData);
        }
示例#2
0
        public virtual ActionResult CopyContent(string schema, string uuid)
        {
            var result = new JsonResultEntry();
            try
            {
                var content = Kooboo.CMS.Content.Services.ServiceFactory.TextContentManager.Copy(new Schema(Repository.Current, schema), uuid);
                result.Model = new
                {
                    uuid = content.UUID,
                    schema = content.SchemaName,
                    published = string.Empty,
                    editUrl = Url.Action("Edit", new
                    {
                        controller = "TextContent",
                        Area = "Contents",
                        RepositoryName = content.Repository,
                        SiteName = Site.FullName,
                        FolderName = content.FolderName,
                        UUID = content.UUID
                    }),
                    summary = HttpUtility.HtmlAttributeEncode(content.GetSummary())
                };
            }
            catch (Exception e)
            {
                result.AddException(e);
            }

            return Json(result);
        }
示例#3
0
        public virtual ActionResult Create(MediaFolder model, string folderName)
        {
            var entry = new JsonResultEntry();
            if (ModelState.IsValid)
            {
                try
                {
                    MediaFolder parent = null;
                    if (!string.IsNullOrEmpty(folderName))
                    {
                        parent = FolderHelper.Parse<MediaFolder>(Repository, folderName).AsActual();
                    }
                    model.Parent = parent;

                    FolderManager.Add(Repository, model);

                }
                catch (Exception e)
                {
                    entry.AddException(e);
                }

            }
            else
            {
                entry.AddModelState(ModelState);
            }

            return Json(entry);
        }
示例#4
0
        public virtual ActionResult PostFile()
        {
            var entry = new JsonResultEntry();

            try
            {

                if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
                {
                    var postFile = Request.Files[0];
                    var tempPath = Kooboo.Web.Url.UrlUtility.Combine(Site.VirtualPath, "Temp");
                    Kooboo.IO.IOUtility.EnsureDirectoryExists(Server.MapPath(tempPath));

                    var fileUrl = Kooboo.Web.Url.UrlUtility.Combine(tempPath, Guid.NewGuid() + Path.GetFileName(postFile.FileName));

                    postFile.SaveAs(Server.MapPath(fileUrl));
                    entry.Model = Url.Content(fileUrl);
                }
                else
                {
                    entry.SetFailed().AddMessage("It is not a valid image file.".Localize());
                }
            }
            catch (Exception e)
            {
                entry.AddException(e);
            }

            return Json(entry);
        }
示例#5
0
        protected override void OnException(ExceptionContext filterContext)
        {
            base.OnException(filterContext);

            if (filterContext.HttpContext.Request.IsAjaxRequest())
            {
                var result = new JsonResultEntry();
                result.AddException(filterContext.Exception);
                filterContext.Result = Json(result, JsonRequestBehavior.AllowGet);
                filterContext.ExceptionHandled = true;
            }
        }
示例#6
0
        protected override void OnException(ExceptionContext filterContext)
        {
            base.OnException(filterContext);

            if (filterContext.HttpContext.Request.IsAjaxRequest())
            {
                var result = new JsonResultEntry();
                result.AddException(filterContext.Exception);
                filterContext.Result           = Json(result, JsonRequestBehavior.AllowGet);
                filterContext.ExceptionHandled = true;
            }
        }
示例#7
0
 public virtual ActionResult DeleteContent(string schema, string uuid)
 {
     var result = new JsonResultEntry();
     try
     {
         Kooboo.CMS.Content.Services.ServiceFactory.TextContentManager.Delete(Repository.Current, new Schema(Repository.Current, schema), uuid);
     }
     catch (Exception e)
     {
         result.AddException(e);
     }
     return Json(result);
 }
示例#8
0
        public ActionResult Index(Setting setting)
        {
            JsonResultEntry resultEntry = new JsonResultEntry(ModelState);
            try
            {
                Kooboo.CMS.Account.Persistence.RepositoryFactory.SettingRepository.Update(setting, setting);
            }
            catch (Exception e)
            {
                resultEntry.AddException(e);
            }

            return Json(resultEntry);
        }
示例#9
0
        public virtual ActionResult Delete(Workflow[] model)
        {
            var entry = new JsonResultEntry();
            try
            {
                Manager.Delete(model, Repository);
                entry.SetSuccess();
            }
            catch (Exception e)
            {
                entry.AddException(e);
            }

            return Json(entry);
        }
示例#10
0
 public virtual ActionResult Create(SearchSetting model)
 {
     var entry = new JsonResultEntry();
     try
     {
         model.Repository = Repository;
         Provider.Add(model);
         entry.SetSuccess();
     }
     catch (Exception e)
     {
         entry.AddException(e);
     }
     return Json(entry);
 }
示例#11
0
 public virtual ActionResult Rebuild(string folderName)
 {
     var entry = new JsonResultEntry();
     try
     {
         var textFolder = new TextFolder(Repository, folderName);
         IndexSummaryService.Instance.Rebuild(textFolder);
         entry.RedirectUrl = Url.Action("Index", Request.RequestContext.AllRouteValues());
     }
     catch (Exception e)
     {
         entry.AddException(e);
     }
     return Json(entry);
 }
示例#12
0
 public virtual ActionResult Index(string body)
 {
     JsonResultEntry resultEntry = new JsonResultEntry(ModelState);
     try
     {
         Robots_Txt robot_txt = new Robots_Txt(Site);
         robot_txt.Save(body);
         resultEntry.AddMessage("The robots.txt has been saved.".Localize());
     }
     catch (Exception e)
     {
         resultEntry.AddException(e);
     }
     return Json(resultEntry);
 }
示例#13
0
        public virtual ActionResult CreateFile(string directoryPath, string name, string fileExtension, string body)
        {
            JsonResultEntry result = new JsonResultEntry(ModelState);
            try
            {
                string fileName = name + fileExtension ?? "";

                FileManager.AddFile(Site, directoryPath, fileName, body);

            }
            catch (Exception e)
            {
                result.AddException(e);
            }
            return Json(result);
        }
示例#14
0
        public virtual ActionResult Process(string workflowName,string roleName, string name, bool passed, string comment)
        {
            JsonResultEntry entry = new JsonResultEntry();

            try
            {
                Manager.ProcessPendingWorkflowItem(Repository, workflowName,roleName, name, User.Identity.Name, passed, comment);
                entry.SetSuccess();
            }
            catch (Exception e)
            {
                entry.AddException(e);
            }

            return Json(entry);
        }
示例#15
0
        public virtual ActionResult Delete(Role[] model)
        {
            JsonResultEntry resultEntry = new JsonResultEntry(ModelState);
            try
            {
                foreach (var role in model)
                {
                    ServiceFactory.RoleManager.Delete(role.Name);
                }
            }
            catch (Exception e)
            {
                resultEntry.AddException(e);
            }

            return Json(resultEntry);
        }
示例#16
0
 public virtual ActionResult Index(Repository model)
 {
     JsonResultEntry resultEntry = new JsonResultEntry(ModelState);
     try
     {
         if (ModelState.IsValid)
         {
             RepositoryManager.Update(model, RepositoryManager.Get(model.Name));
             resultEntry.AddMessage("Database setting has been changed.".Localize());
         }
     }
     catch (Exception e)
     {
         resultEntry.AddException(e);
     }
     return Json(resultEntry);
 }
示例#17
0
        public virtual ActionResult UpdateContent(string schema, string uuid, string fieldName, string value)
        {
            var result = new JsonResultEntry();
            try
            {
                var schemaObject = new Schema(Repository.Current, schema).AsActual();

                var fieldValue = Kooboo.CMS.Content.Models.Binder.TextContentBinder.DefaultBinder.ConvertToColumnType(schemaObject, fieldName, value);

                Kooboo.CMS.Content.Services.ServiceFactory.TextContentManager.Update(Repository.Current, schemaObject, uuid, fieldName, fieldValue, User.Identity.Name);
            }
            catch (Exception e)
            {
                result.AddException(e);
            }
            return Json(result);
        }
示例#18
0
        public virtual ActionResult Create(CreateUserModel model, FormCollection collection)
        {
            JsonResultEntry resultEntry = new JsonResultEntry(ModelState);
            try
            {
                if (ModelState.IsValid)
                {
                    ServiceFactory.UserManager.Add(model.ToUser());
                }
            }
            catch (Exception e)
            {
                resultEntry.AddException(e);
            }

            return Json(resultEntry);
        }
示例#19
0
 public ActionResult Delete(News[] model)
 {
     JsonResultEntry resultEntry = new JsonResultEntry();
     try
     {
         foreach (var item in model)
         {
             repository.Delete(item);
         }
         resultEntry.RedirectUrl = Url.Action("Index", ControllerContext.RequestContext.AllRouteValues().Merge("id", null));
     }
     catch (Exception e)
     {
         resultEntry.AddException(e);
     }
     return Json(resultEntry);
 }
示例#20
0
        public virtual ActionResult Copy(string sourceName, string destName)
        {
            var entry = new JsonResultEntry();
            try
            {
                Manager.Copy(Repository, sourceName, destName);
                entry.RedirectUrl = Url.Action("Index", ControllerContext.RequestContext.AllRouteValues());
                entry.ReloadPage = true;
                entry.SetSuccess();
            }
            catch (Exception e)
            {
                entry.AddException(e);
            }

            return Json(entry);
        }
示例#21
0
        public ActionResult Index(string siteName, ModuleInfo_Metadata moduleInfo)
        {
            JsonResultEntry resultEntry = new JsonResultEntry(ModelState);
            try
            {
                if (ModelState.IsValid)
                {
                    ModuleInfo.SaveModuleSetting(ModuleName, siteName, moduleInfo.Settings);
                    resultEntry.AddMessage("Module setting has been changed.".Localize());
                }

            }
            catch (Exception e)
            {
                resultEntry.AddException(e);
            }
            return Json(resultEntry);
        }
示例#22
0
        public virtual ActionResult Create(CreateRoleModel model)
        {
            JsonResultEntry resultEntry = new JsonResultEntry(ModelState);
            try
            {
                var role = ServiceFactory.RoleManager.Get(model.Name);
                if (ModelState.IsValid)
                {
                    ServiceFactory.RoleManager.Add(model.ToRole());
                }
            }
            catch (Exception e)
            {
                resultEntry.AddException(e);
            }

            return Json(resultEntry);
        }
示例#23
0
 public virtual ActionResult Create(Workflow model)
 {
     var entry = new JsonResultEntry();
     try
     {
         int index = 1;
         foreach (var item in model.Items)
         {
             item.Sequence = index;
             index++;
         }
         Manager.Add(Repository, model);
     }
     catch (Exception e)
     {
         entry.AddException(e);
     }
     return Json(entry);
 }
示例#24
0
        public ActionResult Create(News news)
        {
            JsonResultEntry resultEntry = new JsonResultEntry(ViewData.ModelState);
            try
            {
                if (ModelState.IsValid)
                {
                    repository.Add(news);
                    resultEntry.RedirectUrl = Url.Action("Index", this.ControllerContext.RequestContext.AllRouteValues());
                }

            }
            catch (Exception e)
            {
                resultEntry.AddException(e);
            }

            return Json(resultEntry);
        }
示例#25
0
        public virtual ActionResult ChangePassword(ChangePasswordModel model)
        {
            var entry = new JsonResultEntry();

            try
            {
                entry.Success = ServiceFactory.UserManager.ChangePassword(User.Identity.Name, model.OldPassword, model.NewPassword);
                if (!entry.Success)
                {
                    entry.AddMessage("Invalid old password.".Localize());
                }
            }
            catch (Exception e)
            {
                entry.AddException(e);
            }

            return Json(entry);
        }
示例#26
0
        public virtual ActionResult Exclude(string moduleName)
        {
            JsonResultEntry result = new JsonResultEntry(ModelState);

            if (ModelState.IsValid)
            {
                try
                {
                    Manager.RemoveSiteFromModule(moduleName, Site.FullName);

                    result.RedirectUrl = Url.Action("Index", this.ControllerContext.RequestContext.AllRouteValues());
                }
                catch (Exception e)
                {
                    result.AddException(e);
                }
            }

            return Json(result);
        }
示例#27
0
        public virtual ActionResult Delete(ReceivingSetting[] Model)
        {
            var entry = new JsonResultEntry();

            try
            {
                if (Model != null)
                {
                    foreach (var m in Model)
                    {
                        m.Repository = Repository;
                        Manager.Remove(Repository, m);
                    }
                }
            }
            catch (Exception e)
            {
                entry.AddException(e);
            }
            return Json(entry);
        }
示例#28
0
        public virtual ActionResult Create(SendingSetting sendingSetting)
        {
            var entry = new JsonResultEntry();
            try
            {
                if (ModelState.IsValid)
                {
                    Manager.Add(Repository, sendingSetting);

                    entry.SetSuccess();
                }
                else
                {
                    entry.AddModelState(ModelState);
                }
            }
            catch (Exception e)
            {
                entry.AddException(e);
            }
            return Json(entry);
        }
示例#29
0
        public virtual ActionResult Create(ReceivingSetting model, string repository)
        {
            var entry = new JsonResultEntry();
            if (ModelState.IsValid)
            {
                try
                {
                    Manager.Add(Repository, model);
                    entry.SetSuccess();
                }
                catch (Exception e)
                {
                    entry.AddException(e);
                }
            }
            else
            {
                entry.AddModelState(ModelState);
            }

            return Json(entry);
        }
示例#30
0
        public virtual ActionResult Include(ModuleListInSiteModel[] model)
        {
            JsonResultEntry result = new JsonResultEntry(ModelState);

            if (ModelState.IsValid)
            {
                try
                {
                    foreach (var item in model)
                    {
                        Manager.AddSiteToModule(item.ModuleName, Site.FullName);
                    }
                    result.RedirectUrl = Url.Action("Index", this.ControllerContext.RequestContext.AllRouteValues());
                }
                catch (Exception e)
                {
                    result.AddException(e);
                }
            }

            return Json(result);
        }
示例#31
0
        protected ActionResult ReturnActionResult(object model, Exception exception)
        {
            var jsonResult = this.ControllerContext.RequestContext.GetRequestValue("JsonResult");
            string redirectUrl = "";
            if (exception == null)
            {
                redirectUrl = this.ControllerContext.RequestContext.GetRequestValue("SuccessedUrl");
            }
            else
            {
                Session["Exception"] = exception;
                redirectUrl = this.ControllerContext.RequestContext.GetRequestValue("FailedUrl");
            }

            if (jsonResult.EqualsOrNullEmpty("true", StringComparison.OrdinalIgnoreCase))
            {
                if (exception != null && (exception is RuleViolationException))
                    ((RuleViolationException)exception).FillIssues(this.ModelState);
                JsonResultEntry resultEntry = new JsonResultEntry(this.ModelState) { Model = model, RedirectUrl = redirectUrl };
                resultEntry.AddException(exception);
                return Json(resultEntry);
            }
            if (exception != null && string.IsNullOrEmpty(redirectUrl))
            {
                throw exception;
            }

            if (!string.IsNullOrEmpty(redirectUrl))
            {
                return Redirect(redirectUrl);
            }

            if (this.Request.UrlReferrer != null)
            {
                return Redirect(this.Request.UrlReferrer.OriginalString);
            }
            return new EmptyResult();
        }