/********************************************************************
* FulcrumWeb RAD Framework - Fulcrum of your business *
* Copyright (c) 2002-2009 FulcrumWeb, ALL RIGHTS RESERVED *
* *
* THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED *
* FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE *
* COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE *
* AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT *
* AND PERMISSION FROM FULCRUMWEB. CONSULT THE END USER LICENSE *
* AGREEMENT FOR INFORMATION ON ADDITIONAL RESTRICTIONS. *
********************************************************************/
using System;
using System.Collections.Generic;
using System.Windows.Media.Imaging;
using Framework.Silverlight.Client.AppServer;
namespace Framework.Silverlight.Client
{
/// <summary>
/// Class representing marked entity information.
/// </summary>
public class CxEntityMark
{
private bool m_IsDeleted;
//----------------------------------------------------------------------------
/// <summary>
/// Occurs when IsDeleted property has changes.
/// </summary>
public event EventHandler IsDeletedChanged;
//----------------------------------------------------------------------------
/// <summary>
/// Gets Id if entity usage, apropriated with the mark.
/// </summary>
public string EntityUsageId { get; private set;}
//----------------------------------------------------------------------------
/// <summary>
/// Gets primary key values encoded into the string.
/// </summary>
public string PrimaryKeyText { get; private set; }
//----------------------------------------------------------------------------
/// <summary>
/// Gets or entity display name.
/// </summary>
public string Name { get; private set; }
//----------------------------------------------------------------------------
/// <summary>
/// Gets or entity image.
/// </summary>
public BitmapImage ImageSource { get; private set; }
//----------------------------------------------------------------------------
/// <summary>
/// Gets one of NxOpenMode.
/// </summary>
public NxOpenMode OpenMode { get; private set; }
//----------------------------------------------------------------------------
/// <summary>
/// Returns unique ID to identify within application.
/// </summary>
public string UniqueId { get; private set; }
//----------------------------------------------------------------------------
/// <summary>
/// Returns primary key values array.
/// </summary>
public List<object> PrimaryKeyValues { get; private set; }
//----------------------------------------------------------------------------
/// <summary>
/// Returns entity mark type.
/// </summary>
public string MarkType { get; private set; }
//----------------------------------------------------------------------------
/// <summary>
/// True if entity mark is deleted.
/// </summary>
public bool IsDeleted
{
get { return m_IsDeleted; }
set
{
if (value != m_IsDeleted)
{
m_IsDeleted = value;
if(IsDeletedChanged != null)
{
IsDeletedChanged(this, EventArgs.Empty);
}
}
}
}
//----------------------------------------------------------------------------
/// <summary>
/// Parametrized ctor.
/// </summary>
/// <param name="mark">CxClientEntityMark to initialize the instance</param>
public CxEntityMark(CxClientEntityMark mark)
{
EntityUsageId = mark.EntityUsageId;
PrimaryKeyText = mark.PrimaryKeyText;
Name = mark.Name;
if (!string.IsNullOrEmpty(mark.ImageId))
{
string imageId = mark.ImageId.ToUpper();
CxClientImageMetadata image;
if (!CxAppContext.Instance.ImagesMetadata.TryGetValue(imageId, out image))
throw new ExApplicationException(string.Format("Image <{0}> was not present in the images metadata", imageId));
IxImageProvider imageProvider = (IxImageProvider)CxTypeActivator.CreateInstance(image.ProviderClassId);
ImageSource = new BitmapImage(new Uri(imageProvider[image.ImageIndex], UriKind.RelativeOrAbsolute));
}
OpenMode = (NxOpenMode)Enum.Parse(typeof (NxOpenMode), mark.OpenMode, true);
UniqueId = mark.UniqueId;
PrimaryKeyValues = new List<object>();
PrimaryKeyValues.AddRange(mark.PrimaryKeyValues);
mark.PrimaryKeyValues.Clear();
MarkType = mark.MarkType;
}
}
}