/*
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.Linq;
using System.Text;
using Everest.Library.Data;
using Everest.Library.Data.Entity;
using Everest.Library.Data.Rule;
using Everest.Library.Versioning;
using Everest.Library.ExtensionMethod;
namespace Everest.CmsServices.Models{
public partial class Cms_TextResource : IVersionable, IRuleEntity
{
#region Constructor
/// <summary>
/// Initializes a new instance of the <see cref="Cms_TextResource"/> class.
/// </summary>
public Cms_TextResource()
{
this.UUID = Guid.NewGuid();
this.OriginalUUID = this.UUID;
}
#endregion
#region IVersionable Members
public string FormSchemaName
{
get { return "TextResource"; }
}
public void OnRevert(IVersionItem workingItem, IVersionItem toBeRevertedItem)
{
IEverestCmsDataContext dataContext = EverestCmsEntities.GetDataContext();
var textResource = ((from tr in dataContext.Cms_TextResource
where tr.ResourceId == this.ResourceId
select tr)).First();
textResource.ResourceKey = this.ResourceKey;
textResource.ResourceValue = this.ResourceValue;
textResource.Namespace = this.Namespace;
dataContext.SaveChanges();
}
#endregion
#region patrtial methods
partial void OnResourceKeyChanged()
{
int lastDotIndex = this.ResourceKey.LastIndexOf('.');
if (lastDotIndex > 0)
{
Namespace = ResourceKey.Substring(0, lastDotIndex);
}
else
{
Namespace = string.Empty;
}
}
#endregion /// <summary>
#region GetFullName
/// <summary>
/// Gets the full name.
/// </summary>
/// <param name="strNamespace">The STR namespace.</param>
/// <param name="key">The key.</param>
/// <returns></returns>
public static string GetFullName(string strNamespace, string key)
{
strNamespace = StringExtensions.TryTrim(strNamespace);
key = StringExtensions.TryTrim(key);
if (!StringExtensions.IsNullOrEmptyTrim(strNamespace))
{
return string.Format("{0}.{1}", strNamespace, key);
}
else
{
return key;
}
}
#endregion
#region CopyNew
/// <summary>
/// Copies the new.
/// </summary>
/// <returns></returns>
public Cms_TextResource CopyNew()
{
Cms_TextResource textResource = new Cms_TextResource();
textResource.ResourceKey = this.ResourceKey;
textResource.ResourceValue = this.ResourceValue;
textResource.Namespace = this.Namespace;
textResource.aspnet_Applications = this.aspnet_Applications;
return textResource;
}
#endregion
#region IRuleEntity Members
public IEnumerable<RuleViolation> GetRuleViolations()
{
var dataContext = EverestCmsEntities.GetDataContext();
List<RuleViolation> violation = new List<RuleViolation>();
if (StringExtensions.IsNullOrEmptyTrim(this.ResourceKey))
{
violation.Add(new RuleViolation("ResourceKey", this.ResourceKey, string.Format(Resources.FieldIsRequired, "ResourceKey")));
}
this.aspnet_ApplicationsReference.Load(this.aspnet_Applications, this.EntityState);
if (dataContext.IsTextResourcesExists(this.aspnet_Applications.ApplicationName, this.Namespace, this.ResourceKey, this.ResourceId).Exists())
{
if (this.Base == null)
{
violation.Add(new RuleViolation("ResourceKey", this.ResourceKey, Resources.TextResourceAlreadyExists));
}
}
return violation;
}
#endregion
}
}
|