70 lines
1.5 KiB
C#
70 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Yavsc.Model.FrontOffice
|
|
{
|
|
/// <summary>
|
|
/// Catalog.
|
|
/// </summary>
|
|
public class Catalog {
|
|
|
|
/// <summary>
|
|
/// Gets or sets the catalog unique identifier in the system.
|
|
/// </summary>
|
|
/// <value>The unique identifier.</value>
|
|
string UID { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the brands.
|
|
/// </summary>
|
|
/// <value>The brands.</value>
|
|
public Brand[] Brands { get; set; }
|
|
|
|
public Brand GetBrand(string brandName)
|
|
{
|
|
return Array.Find<Brand>(Brands, b => b.Name == brandName);
|
|
}
|
|
|
|
public Brand AddBrand(string brandName,string slogan=null, ProductImage logo=null)
|
|
{
|
|
Brand[] oldbrs = (Brand[]) Brands.Clone ();
|
|
int oldl = Brands.Length;
|
|
Array.Resize<Brand>(ref oldbrs,oldl+1);
|
|
Brand b = new Brand ();
|
|
b.Name=brandName;
|
|
b.Slogan = slogan;
|
|
b.Logo = logo;
|
|
oldbrs [oldl] = b;
|
|
Brands=oldbrs;
|
|
return b;
|
|
}
|
|
|
|
public bool RemoveBrand(string brandName)
|
|
{
|
|
Brand b = this.GetBrand (brandName);
|
|
if (b == null)
|
|
return false;
|
|
//ASSERT Brands.Length>0;
|
|
List<Brand> nb = new List<Brand> (Brands);
|
|
nb.Remove (b);
|
|
Brands = nb.ToArray ();
|
|
return true;
|
|
}
|
|
|
|
public DateTime StartDate { get; set; }
|
|
|
|
public DateTime EndDate { get; set; }
|
|
|
|
public Product FindProduct (string reference)
|
|
{
|
|
Product p = null;
|
|
foreach (Brand b in Brands)
|
|
foreach (ProductCategory c in b.Categories)
|
|
if ((p = c.GetProduct(reference))!=null)
|
|
return p;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
}
|