using GreenTree.Strohrmann.ERP.Core.Domain.Business;
using GreenTree.Strohrmann.ERP.Web.Models.Shared;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace GreenTree.Strohrmann.ERP.Web.Models.Business
{
public class MaterialModel : TrackingModel, ISearchResult
{
#region Properties
///
/// Material id
///
[Display(Name = "ID")]
public int Id { get; set; }
///
/// Material name
///
[Display(Name = "Name")]
public string Name { get; set; }
///
/// Material item number
///
[Display(Name = "Artikel- / Materialnummer d. Lieferanten")]
public string ItemNumber { get; set; }
///
/// Material description
///
[Display(Name = "Beschreibung")]
public string Description { get; set; }
///
/// Material net value
///
[Display(Name = "Nettowert")]
[DisplayFormat(ApplyFormatInEditMode = false, DataFormatString = "{0:C}")]
public float NetValue { get; set; }
///
/// Material height
///
[Display(Name = "Höhe")]
public float Height { get; set; }
///
/// Material width
///
[Display(Name = "Breite")]
public float Width { get; set; }
///
/// Material depth
///
[Display(Name = "Tiefe")]
public float Depth { get; set; }
///
/// Material dimensions (read only)
///
[Display(Name = "Maße")]
public string Dimension
{
get
{
return String.Format("{0:F2}x{1:F2}x{2:F2}", Height, Width, Depth);
}
}
///
/// Material default unit
///
[Display(Name = "Einheit")]
public UnitModel DefaultUnit { get; set; }
///
/// The amount of items per package
///
[Display(Name = "Packungsgröße / -menge")]
public float PackageSize { get; set; }
///
/// Material supplier
///
[Display(Name = "Lieferant")]
public SupplierModel Supplier { get; set; }
#endregion
#region Search result
///
/// Search result id
///
public object SearchId
{
get
{
return Id;
}
}
///
/// Search result text
///
public string SearchText
{
get
{
return String.Format("{0} ({1})", Name, ItemNumber);
}
}
#endregion
#region Ctor
///
/// Initializes a new instance of the MaterialModel class
///
public MaterialModel() { }
///
/// Initializes a new instance of the MaterialModel class
///
/// The base material.
public MaterialModel(Material material)
: base(material)
{
if (material == null) return;
Id = material.Id;
Name = material.Name;
ItemNumber = material.ItemNumber;
Description = material.Description;
NetValue = material.NetValue;
Height = material.Height;
Width = material.Width;
Depth = material.Depth;
DefaultUnit = new UnitModel(material.DefaultUnit);
PackageSize = material.PackageSize;
Supplier = new SupplierModel(material.Supplier);
}
#endregion
}
}