public virtual ActionResult Edit(string folderName, string uuid, FormCollection form, string @return, bool localize = false)
        {
            var data = new JsonResultData();

            try
            {
                if (ModelState.IsValid)
                {
                    TextFolder textFolder = new TextFolder(Repository, folderName).AsActual();
                    var        schema     = textFolder.GetSchema().AsActual();

                    SchemaPath schemaPath = new SchemaPath(schema);
                    IEnumerable <TextContent> addedCategories;
                    IEnumerable <TextContent> removedCategories;

                    ParseCategories(form, out addedCategories, out removedCategories);
                    ContentBase content;
                    TextContent previous = Session["EditableObject"] as TextContent;

                    TextContentManager.Update(Repository, textFolder, uuid, form,
                                              Request.Files, DateTime.UtcNow, addedCategories, removedCategories, User.Identity.Name,
                                              previous: previous);

                    if (localize == true)
                    {
                        TextContentManager.Localize(textFolder, uuid);
                    }

                    data.RedirectToOpener = true;

                    data.RedirectUrl = @return;
                }
            }
            catch (RuleViolationException violationException)
            {
                foreach (var item in violationException.Issues)
                {
                    ModelState.AddModelError(item.PropertyName, item.ErrorMessage);
                }
                data.Success = false;
            }
            catch (Exception e)
            {
                data.AddException(e);
            }
            data.AddModelState(ModelState);
            return(Json(data));
        }
Exemple #2
0
        public virtual ActionResult Localize(string folderName, string[] docs)
        {
            var data = new JsonResultData(ModelState);

            data.RunWithTry((resultData) =>
            {
                TextFolder textFolder = new TextFolder(Repository, folderName).AsActual();

                if (docs != null)
                {
                    foreach (var doc in docs)
                    {
                        if (string.IsNullOrEmpty(doc))
                        {
                            continue;
                        }

                        TextContentManager.Localize(textFolder, doc);
                    }
                }
                resultData.ReloadPage = true;
            });
            return(Json(data));
        }