public List <PackResult> IntegratePack(string request) { var objs = JsonConvert.DeserializeObject <List <ProductGateInfo> >(request); var lookupManager = new LookupManager(UserConnection); var productTreeLookupCollection = new ProductTreeLookupCollection(UserConnection); var result = new List <PackResult>(); foreach (var info in objs) { try { var group = productTreeLookupCollection.FindGroup(info.Group); if (group == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Группа продукта не найдена среди существующих в bpm’online" }); continue; } var subCategory = group.Parent; if (subCategory == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Подкатегория продукта не найдена среди существующих в bpm’online" }); continue; } if (subCategory.Name != info.SubCategory) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Подкатегория продукта не соответствует подкатегории в bpm’online" }); continue; } var category = subCategory.Parent; if (category == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Категория продукта не найдена среди существующих в bpm’online" }); continue; } if (category.Name != info.Category) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Категория продукта не соответствует категории в bpm’online" }); continue; } var direction = category.Parent; if (direction == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Дирекция продукта не найдена среди существующих в bpm’online" }); continue; } if (direction.Name != info.Direction) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Диреция продукта не соответствует дирекции в bpm’online" }); continue; } var sizeId = lookupManager.FindLookupIdByName(info.Size, "SmrProductSize"); if (sizeId == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Размер продукта не найден среди существующих в bpm’online" }); continue; } var tradeMarkId = lookupManager.FindLookupIdByName(info.Brand, "Trademark"); if (tradeMarkId == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Бренд продукта не найден среди существующих в bpm’online" }); continue; } var objId = (new Select(UserConnection).Top(1).Column("Id").From(_tableName).Where("Code").IsEqual(Column.Parameter(info.Code)) as Select).ExecuteScalar <Guid>(); if (objId == Guid.Empty) { GetInsertQuery(info, direction.Id, category.Id, subCategory.Id, group.Id, sizeId, tradeMarkId).Execute(); } else { GetUpdateQuery(info, direction.Id, category.Id, subCategory.Id, group.Id, sizeId, tradeMarkId).Execute(); } result.Add(new PackResult() { IsSuccess = true, Id = info.ERPId }); } catch (Exception e) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = e.Message }); } } return(result); }
public PackResult PrimaryIntegratePack(string request) { var objs = JsonConvert.DeserializeObject <List <ProductGateInfo> >(request); var lookupManager = new LookupManager(UserConnection); var productTreeLookupCollection = new ProductTreeLookupCollection(UserConnection); var result = new List <PackResult>(); var sb = new StringBuilder(); sb.AppendLine(GetInsertHead()); var values = new List <string>(); foreach (var info in objs) { var group = productTreeLookupCollection.FindGroup(info.Group); if (group == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Группа продукта не найдена среди существующих в bpm’online" }); continue; } var subCategory = group.Parent; if (subCategory == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Подкатегория продукта не найдена среди существующих в bpm’online" }); continue; } if (subCategory.Name != info.SubCategory) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Подкатегория продукта не соответствует подкатегории в bpm’online" }); continue; } var category = subCategory.Parent; if (category == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Категория продукта не найдена среди существующих в bpm’online" }); continue; } if (category.Name != info.Category) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Категория продукта не соответствует категории в bpm’online" }); continue; } var direction = category.Parent; if (direction == null) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Дирекция продукта не найдена среди существующих в bpm’online" }); continue; } if (direction.Name != info.Direction) { result.Add(new PackResult() { IsSuccess = false, Id = info.ERPId, ErrorMessage = "Диреция продукта не соответствует дирекции в bpm’online" }); continue; } var sizeId = lookupManager.FindLookupIdByName(info.Size, "SmrProductSize"); var tradeMarkId = lookupManager.FindLookupIdByName(info.Brand, "Trademark"); values.Add(GetInsertValues(info, direction.Id, category.Id, subCategory.Id, group.Id, sizeId, tradeMarkId)); } sb.AppendLine(string.Join(",", values)); new CustomQuery(UserConnection, sb.ToString()).Execute(); return(new PackResult() { IsSuccess = true, }); }