using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using YAXLib;
namespace DemoApplication.SampleClasses
{
public class PersonFormatted
{
[YAXAttributeForClass()]
public string SSN { get; set; }
[YAXAttributeFor("Identification")]
public string Name { get; set; }
[YAXAttributeFor("Identification")]
public string Family { get; set; }
public int Age { get; set; }
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(String.Format(" SSN: {0}", SSN));
sb.AppendLine(String.Format(" Name: {0}", Name));
sb.AppendLine(String.Format(" Family: {0}", Family));
sb.AppendLine(String.Format(" Age: {0}", Age));
return sb.ToString();
}
}
public class WarehouseNestedObjectExample
{
[YAXAttributeForClass()]
public string Name { get; set; }
[YAXSerializeAs("address")]
[YAXAttributeFor("SiteInfo")]
public string Address { get; set; }
[YAXSerializeAs("SurfaceArea")]
[YAXElementFor("SiteInfo")]
public double Area { get; set; }
[YAXCollection(YAXCollectionSerializationTypes.Serially, SeparateBy = ", ")]
[YAXSerializeAs("StoreableItems")]
public PossibleItems[] Items { get; set; }
[YAXCollection(YAXCollectionSerializationTypes.Recursive, EachElementName = "ItemInfo")]
[YAXSerializeAs("ItemQuantities")]
public Dictionary<PossibleItems, int> ItemQuantitiesDic { get; set; }
public PersonFormatted Owner { get; set; }
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(String.Format("Name: {0}", Name.ToString()));
sb.AppendLine(String.Format("Address: {0}", Address.ToString()));
sb.AppendLine(String.Format("Area: {0}", Area.ToString()));
sb.Append("Itmes: ");
bool isFirst = true;
if (Items != null)
{
foreach (var item in Items)
{
if (isFirst)
{
isFirst = false;
sb.Append(String.Format("{0}", item));
}
else
{
sb.Append(String.Format(", {0}", item));
}
}
}
sb.AppendLine();
sb.Append("ItemQuantities:\r\n ");
if (ItemQuantitiesDic != null)
{
isFirst = true;
foreach (var pair in ItemQuantitiesDic)
{
if (isFirst)
{
isFirst = false;
sb.Append(String.Format("({0} -> {1})", pair.Key, pair.Value));
}
else
{
sb.Append(String.Format(" - ({0} -> {1})", pair.Key, pair.Value));
}
}
}
sb.AppendLine();
sb.AppendLine("Owner:\r\n[");
if (Owner != null)
sb.Append(Owner.ToString());
sb.AppendLine("]");
return sb.ToString();
}
public static WarehouseNestedObjectExample GetSampleInstance()
{
Dictionary<PossibleItems, int> dicItems = new Dictionary<PossibleItems, int>();
dicItems.Add(PossibleItems.Item3, 10);
dicItems.Add(PossibleItems.Item6, 120);
dicItems.Add(PossibleItems.Item9, 600);
dicItems.Add(PossibleItems.Item12, 25);
WarehouseNestedObjectExample w = new WarehouseNestedObjectExample()
{
Name = "Foo Warehousing Ltd.",
Address = "No. 10, Some Ave., Some City, Some Country",
Area = 120000.50, // square meters
Items = new PossibleItems[] { PossibleItems.Item3, PossibleItems.Item6, PossibleItems.Item9, PossibleItems.Item12 },
ItemQuantitiesDic = dicItems,
Owner = new PersonFormatted() { SSN = "123456789", Name = "John", Family = "Doe", Age = 50 }
};
return w;
}
}
}