private static ParametricValueModel MapProductParametricValue(ParametricValue parametricValue) { var value = new ParametricValueModel { Id = parametricValue.Id, Value = parametricValue.Name, Code = parametricValue.Code, Description = parametricValue.Description, ImageUrl = GetImageUrl(parametricValue.ImageKey), Name = parametricValue.Name, SortOrder = parametricValue.SortOrder, }; return(value); }
private void MapParametrics(ICollection <ParametricModel> parametrics, IEnumerable <IdValue> allParametrics) { foreach (var p in allParametrics) { ParametricModel parametricModel; var pi = dictionary.ParametricInfo(p.Id, StormContext.CultureCode); if (pi == null) { continue; } var existing = parametrics.SingleOrDefault(x => x.Id == pi.Id); if (pi.Type == ParametricType.ListValue || pi.Type == ParametricType.MultiValue) { var pv = dictionary.ParametricValue(pi.Type, int.Parse(p.Value), StormContext.CultureCode); if (pv == null) { continue; } var value = new ParametricValueModel { Id = pv.Id, Name = pv.Name, Description = pv.Description, Code = pv.Code, ImageUrl = GetImageUrl(pv.ImageKey), Value = pv.Name, SortOrder = pv.SortOrder }; if (existing != null) { if (!existing.Values.Exists(v => v.Id == value.Id)) { existing.Values.Add(value); } } else { parametricModel = new ParametricModel { Id = pi.Id, Name = pi.Name, Description = pi.Description, Uom = pi.Uom, ValueType = pi.ValueType, Code = pi.Code, Values = new List <ParametricValueModel> { value } }; parametrics.Add(parametricModel); } } else { if (existing != null) { if (!existing.Values.Exists(v => v.Value == p.Value)) { existing.Values.Add(new ParametricValueModel { Value = p.Value }); } } else { parametricModel = new ParametricModel { Id = pi.Id, Name = pi.Name, Description = pi.Description, Uom = pi.Uom, ValueType = pi.ValueType, Code = pi.Code, Values = new List <ParametricValueModel> { new ParametricValueModel { Value = p.Value } } }; parametrics.Add(parametricModel); } } } parametrics.ForEach(p => p.Values.Sort((p1, p2) => p1.SortOrder.CompareTo(p2.SortOrder))); }
private ParametricModel MapParametric(ProductParametric p) { var parametricInfo = dictionary.ParametricInfo(p.Id, StormContext.CultureCode); if (parametricInfo.Type == ParametricType.ListValue) { if (p.ValueId == null) { return(null); } var parametric = MapProductParametric(p, parametricInfo); var parametricValue = dictionary.ParametricValue(parametricInfo.Type, p.ValueId.Value, StormContext.CultureCode); if (parametricValue == null) { return(parametric); } var value = MapProductParametricValue(parametricValue); parametric.Values.Add(value); return(parametric); } if (parametricInfo.Type == ParametricType.MultiValue) { if (string.IsNullOrWhiteSpace(p.ValueIdSeed)) { return(null); } var parametric = MapProductParametric(p, parametricInfo); foreach (var v in p.ValueIdSeed.Split(',')) { int id; if (!int.TryParse(v, out id)) { return(null); } var parametricValue = dictionary.ParametricValue(parametricInfo.Type, id, StormContext.CultureCode); if (parametricValue == null) { continue; } var value = MapProductParametricValue(parametricValue); parametric.Values.Add(value); } return(parametric); } if (p.ValueId.HasValue) { var value = new ParametricValueModel { Id = p.ValueId.Value, Value = p.Value2 ?? "", }; var parametric = MapProductParametric(p, parametricInfo); parametric.Values.Add(value); return(parametric); } else { var value = new ParametricValueModel { Value = p.Value2 ?? "" }; var parametric = MapProductParametric(p, parametricInfo); parametric.Values.Add(value); return(parametric); } }