//public void SetManufacturer(HardwareTemplate bamTemplate) //{ // //var dataExport = _estService.GetExportData(queryBuilder); // var modelDescriptions = dataExport.NewItemList.Select(x => new { ModelName = x.Audit_Prod_Desc }).Distinct(); // throw new NotImplementedException(); //} public HardwareTemplate_Full SetModelData(HardwareTemplate_Full bamTemplate, string modelName, out bool success) { EST_BAM_ModelLookupBsm modelItem = null; success = false; foreach (var item in _eST_BAM_Models) { if (modelItem != null) { break; } if (item.BAM_Name == modelName) { modelItem = item; break; } var itemSplit = item.BAM_Name.ToUpper().Split(' '); var count = itemSplit.Length; var weight = 0; for (var i = 0; i < itemSplit.Length; i++) { if (modelName.Contains(itemSplit[i])) { weight++; } } ; if (weight == 0) { continue; } if (weight == count) { modelItem = item; break; } if ((weight + 1) == count) { modelItem = item; break; } if ((weight + 2) == count && weight >= 3) { modelItem = item; break; } } if (modelItem != null) { success = true; } else // Try to use the EsteemAltCode { foreach (var item in _eST_BAM_Models) { if (modelItem != null) { break; } if (item.BAM_Name == modelName) { modelItem = item; break; } var itemSplit = item.Esteem_Alt_ModelString.ToUpper().Split(' '); var count = itemSplit.Length; var weight = 0; for (var i = 0; i < itemSplit.Length; i++) { if (modelName.Contains(itemSplit[i])) { weight++; } } ; if (weight == 0) { continue; } if (weight == count) { modelItem = item; break; } if ((weight + 1) == count) { modelItem = item; break; } if ((weight + 2) == count && weight >= 3) { modelItem = item; break; } } } if (modelItem != null) { success = true; } bamTemplate.Manufacturer = modelItem?.BAM_ManufacturerString; bamTemplate.Model = modelItem?.BAM_ModelString; bamTemplate.Target_HardwareAssetHasCatalogItem = new Target_HardwareAssetHasCatalogItem() { // Substring ; Id = modelItem?.BAM_BaseId }; bamTemplate.HardwareAssetType = new HardwareAssetType() { Id = string.IsNullOrEmpty(modelItem?.BAM_ModelType) ? "" : !modelItem.BAM_ModelType.Contains(';') ? modelItem?.BAM_ModelType : modelItem?.BAM_ModelType.Substring(0, modelItem.BAM_ModelType.IndexOf(';')) }; return(bamTemplate); }
public void Get_All_Manufacturers() { IQueryBuilder queryBuilder = new QueryBuilder(); queryBuilder.StartDateString = "01/01/2017"; queryBuilder.EndDateString = "01/01/2019"; queryBuilder.PageCount = 100000000; _bAM_ModelLookupService = new EST_BAM_ModelLookupService(); var estManufacturers = _bAM_ModelLookupService.GetEST_Manufacturers(queryBuilder); Assert.IsNotNull(estManufacturers, "ReturnList is null"); Assert.IsTrue(estManufacturers.Any(), "ReturnList doesn't contain any items"); var bamReportingManufacturerList = _bAM_ModelLookupService.GetBAM_ManufacturerList(); var resultList = new List <EST_BAM_ModelLookupBsm>(); var resultListTemp = new List <TempModel>(); var resultListNoMatch = new List <TempModel>(); foreach (var model in estManufacturers) { EST_BAM_ModelLookupBsm modelItem = null; var modelName = model.ModelName; foreach (var item in bamReportingManufacturerList) { if (modelItem != null) { break; } if (item.BAM_Name == modelName) { modelItem = item; break; } var itemSplit = item.BAM_Name.ToUpper().Split(' '); var count = itemSplit.Length; var weight = 0; for (var i = 0; i < itemSplit.Length; i++) { if (modelName.Contains(itemSplit[i])) { weight++; } } ; if (weight == 0) { continue; } if (weight == count) { modelItem = item; break; } if ((weight + 1) == count) { modelItem = item; break; } if ((weight + 2) == count && weight >= 3) { modelItem = item; break; } } if (modelItem != null) { resultList.Add(modelItem); resultListTemp.Add(model); } else { resultListNoMatch.Add(model); } } var errorStr = "\r\n"; resultListNoMatch.ForEach(x => { errorStr += x.ModelName + "\r\n"; }); Assert.IsTrue(false, "Match count: " + resultList.Count + " No Match count: " + resultListNoMatch.Count + errorStr); }