sharp-wawi/Parts.cs

52 lines
1.2 KiB
C#

using System;
using appsrv.attributes;
using sharpwawi.models;
using System.Collections.Generic;
using System.Linq;
namespace sharpwawi
{
public class Parts
{
public WaWi WaWi { get; }
public Parts(WaWi waWi)
{
WaWi = waWi;
}
public Part this[string key]
{
get => throw new KeyNotFoundException();
}
[PublishedMember]
public Part Create()
{
return new Part();
}
[PublishedMember]
public Part ByKey(string key)
{
foreach (Part p in AllParts)
if (p.Key.Equals(key))
return p;
throw new KeyNotFoundException();
}
[PublishedMember]
public IEnumerable<Part> ByKeyword(string keyword)
{
return AllParts.Where((p) => (p.Key.Contains(keyword) || p.Name.Contains(keyword) || p.Description.Contains(keyword)|| p.Dimensions.Contains(keyword)|| p.Standards.Contains(keyword)));
}
[PublishedMember]
public IEnumerable<Part> AllParts => WaWi.Mapper.Query<Part>();
[PublishedMember]
public Part TestPart { get; } = new Part("P001-456-8765", "Der universelle Testartikel");
}
}