public static List <MeasureInfo> GetMeasuresForProduct(this IMeasureManager manager, Guid id) { //Product p = manager.FindById(id); Queue <Unit> toCheck = new Queue <Unit>(manager.DerivedMeasures(null)); List <MeasureInfo> result = new List <MeasureInfo>(); while (toCheck.Count > 0) { Unit temp = toCheck.Dequeue(); if (temp.Ratio != null || temp.BaseUnit == null) { result.Add(Mapper.Map <Unit, MeasureInfo>(temp)); foreach (var u in manager.DerivedMeasures(temp.Id)) { toCheck.Enqueue(u); } } else { ProductUnitUnitRatio measure = manager.GetProductMeasure(id, temp.Id); if (measure != null) { result.Add(Mapper.Map <ProductUnitUnitRatio, MeasureInfo>(measure)); foreach (var u in manager.DerivedMeasures(temp.Id)) { toCheck.Enqueue(u); } } } } return(result); }
public void Create(ProductUnitUnitRatio productMeasureRatio) { if (productMeasureRatio != null) { Context.ProductUnitUnitRatios.Add(productMeasureRatio); } }