/*
Kooboo is a content management system based on ASP.NET MVC framework. Copyright 2009 Yardi Technology Limited.
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see http://www.kooboo.com/gpl3/.
*/
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using Everest.Library.Mvc;
using Everest.CmsServices.MvcHelper;
using Everest.CmsServices.Services;
using Everest.CmsServices.Models;
using Everest.CmsServices.Exceptions;
using Everest.Library;
namespace Everest.CmsServices.Controllers{
public class EditFieldController : EverestControllerBase
{
public ActionResult Submit(string value, string fieldName, Guid contentUUID, int contentId, string contentApp, string runtimeApp, Guid folderUUID)
{
var retSuccess = true;
var retMessage = string.Empty;
var retLocalizeDone = false;
var retContentId = contentId;
var retContentUUID = contentUUID;
var retAplication = contentApp;
try
{
NameValueCollection nameValues = new NameValueCollection();
nameValues.Add(fieldName, HttpUtility.UrlDecode(value));
nameValues.Add("Published", "on");
var userName = this.User.Identity.Name;
if (string.IsNullOrEmpty(userName))
throw new UnauthorizedException(string.Empty);
var contentService = UnityManager.Resolve<TextContentService>();
if (contentApp != runtimeApp)// need to do localize
{
var folder = CachedData.GetLocalizedFolder(runtimeApp, folderUUID);
if (folder.UUID == folderUUID)
{
retSuccess = false;
retMessage = Resources.CanNotBeLocalized;
}
else
{
var content = contentService.Localize(contentUUID, folder.UUID, userName);
contentService.UpdateContent(content.ContentId, nameValues, userName, null, false);
// set flags
retLocalizeDone = true;
retContentUUID = content.UUID;
retContentId = content.ContentId;
retAplication = runtimeApp;
}
}
else
{
var oldContentValue = contentService.QueryContent(contentUUID, userName);
if (oldContentValue != null)
{
nameValues["UserKey"] = oldContentValue["UserKey"].ToString();
}
contentService.UpdateContent(contentUUID, nameValues, userName, null, false);
}
}
catch (Exception ex)
{
retSuccess = false;
retMessage = ex.Message;
}
return Json(new
{
Success = retSuccess,
Message = retMessage,
LocalizeDone = retLocalizeDone,
NewContentId = retContentId,
NewContentUUID = retContentUUID,
NewApplication = retAplication
}
);
}
}
}
|