public List <WarningTemplates> WarningChecks(ExcelWorksheet sheet, List <WarningTemplates> error) { List <WarningTemplates> warningError = new List <WarningTemplates>(); columnIndex indexer = new columnIndex(); MappingValidations checks = new MappingValidations(); var file = sheet.Cells[sheet.Dimension.Start.Row, sheet.Dimension.Start.Column, sheet.Dimension.Start.Row, sheet.Dimension.End.Column]; for (int i = sheet.Dimension.Start.Column - 1; i <= sheet.Dimension.End.Column - 1; i++) //To find Empty cells.(algo will be updated) { var value = ((object[, ])file.Value)[0, i]; if (value != null) { if (value.ToString().Trim().Replace(" ", "").ToLower() == "NSM".ToLower()) { indexer.NSM = i + 1; } if (value.ToString().Trim().Replace(" ", "").ToLower() == "ZSM".ToLower()) { indexer.ZSM = i + 1; } if (value.ToString().Trim().Replace(" ", "").ToLower() == "RSM".ToLower()) { indexer.RSM = i + 1; } if (value.ToString().Trim().Replace(" ", "").ToLower() == "ASM".ToLower()) { indexer.ASM = i + 1; } if (value.ToString().Trim().Replace(" ", "").ToLower() == "ESM".ToLower()) { indexer.ESM = i + 1; } } } warningError.AddRange(checks.HierarchyWarning(sheet, indexer.ESM, indexer.ASM, indexer.RSM, indexer.ZSM, indexer.NSM)); return(warningError); }
public List <ErrorTemplates> Checker(ExcelWorksheet sheet, List <FileHeadersBeatHierarchy> list1, List <FileHeadersLocationAddtion> list2, List <FileHeadersProductAddition> list3, List <FileHeadersBeatPlanAddition> list4) { List <ErrorTemplates> newError = new List <ErrorTemplates>(); columnIndex indexer = new columnIndex(); MappingValidations checks = new MappingValidations(); var file = sheet.Cells[sheet.Dimension.Start.Row, sheet.Dimension.Start.Column, sheet.Dimension.Start.Row, sheet.Dimension.End.Column]; for (int i = sheet.Dimension.Start.Column - 1; i <= sheet.Dimension.End.Column - 1; i++) //To find Empty cells.(algo will be updated) { var value = ((object[, ])file.Value)[0, i]; if (value != null) { if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == ("NSM").ToLower()) { indexer.NSM = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == ("NSMZone").ToLower()) { indexer.NSMZone = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == ("NSMEmailId").ToLower()) { indexer.NSMEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == ("NSMSecondaryEmailId").ToLower()) { indexer.NSMSecondaryEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == ("ZSM").ToLower()) { indexer.ZSM = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == ("ZSMZone").ToLower()) { indexer.ZSMZone = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == ("ZSMEmailId").ToLower()) { indexer.ZSMEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == ("ZSMSecondaryEmailId").ToLower()) { indexer.ZSMSecondaryEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == ("RSM").ToLower()) { indexer.RSM = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "RSMZone".ToLower()) { indexer.RSMZone = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "RSMEmailId".ToLower()) { indexer.RSMEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "RSMSecondaryEmailId".ToLower()) { indexer.RSMSecondaryEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ASM".ToLower()) { indexer.ASM = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ASMZone".ToLower()) { indexer.ASMZone = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ASMEmailId".ToLower()) { indexer.ASMEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ASMSecondaryEmailId".ToLower()) { indexer.ASMSecondaryEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ESM".ToLower()) { indexer.ESM = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ESMZone".ToLower()) { indexer.ESMZone = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ESMEmailId".ToLower()) { indexer.ESMEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ESMSecondaryEmailId".ToLower()) { indexer.ESMSecondaryEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ESMContactNumber".ToLower()) { indexer.ESMContactNumber = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ESMHQ".ToLower()) { indexer.ESMHQ = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ESMErpId".ToLower()) { indexer.ESMErpId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "FinalBeatName".ToLower()) { indexer.FinalBeatName = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "BeatErpId".ToLower()) { indexer.BeatErpId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "BeatDistrict".ToLower()) { indexer.BeatDistrict = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "BeatState".ToLower()) { indexer.BeatState = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "BeatZone".ToLower()) { indexer.BeatZone = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "DistributorName".ToLower()) { indexer.DistributorName = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "DistributorLocation".ToLower()) { indexer.DistributorLocation = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "DistributorErpId".ToLower()) { indexer.DistributorErpId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "DistributorEmailId".ToLower()) { indexer.DistributorEmailId = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ShopName".ToLower()) { indexer.ShopName = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ShopErpId".ToLower()) { indexer.ShopName = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "PrimaryCategory".ToLower()) { indexer.PrimaryCategory = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "SecondaryCategory".ToLower()) { indexer.SecondaryCategory = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "Product".ToLower()) { indexer.Product = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "Variant".ToLower()) { indexer.Variant = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "Price".ToLower()) { indexer.Price = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "Unit".ToLower()) { indexer.Unit = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "DisplayCategory".ToLower()) { indexer.DisplayCategory = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "Image".ToLower()) { indexer.Image = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "Description".ToLower()) { indexer.Description = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "StandardUnitConversionFactor".ToLower()) { indexer.StandardUnitConversionFactor = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "StandardUnit".ToLower()) { indexer.StandardUnit = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ProductCode".ToLower()) { indexer.ProductCode = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "VariantCode".ToLower()) { indexer.VariantCode = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "ProductCategory".ToLower()) { indexer.ProductCategory = i + 1; } if (((object[, ])file.Value)[0, i].ToString().Trim().Replace(" ", "").ToLower() == "BeatDay".ToLower()) { indexer.BeatDay = i + 1; } } } //hierarchy break if (list1 != null) { foreach (var item in list1) { if (item.NSM == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "NSM"; temp.Row = item.Row; newError.Add(temp); } if (item.NSMEmailId == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "NSMEmaialId"; temp.Row = item.Row; newError.Add(temp); } if (item.ZSM == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "ZSM"; temp.Row = item.Row; newError.Add(temp); } if (item.ZSMEmailId == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "ZSMEmailId"; temp.Row = item.Row; newError.Add(temp); } if (item.RSM == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "RSM"; temp.Row = item.Row; newError.Add(temp); } if (item.RSMEmailId == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "RSMEmaiilId"; temp.Row = item.Row; newError.Add(temp); } if (item.ASM == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "ASM"; temp.Row = item.Row; newError.Add(temp); } if (item.ASMEmailId == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "ASMEmaiId"; temp.Row = item.Row; newError.Add(temp); } if (item.ESM == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "ESM"; temp.Row = item.Row; newError.Add(temp); } if (item.DistributorName == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "DistributorName"; temp.Row = item.Row; newError.Add(temp); } if (item.ESMContactNumber == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "ESMContactNumber"; temp.Row = item.Row; newError.Add(temp); } } newError.AddRange(checks.HierarchyError(sheet, indexer.ESM, indexer.ASM, indexer.RSM, indexer.ZSM, indexer.NSM)); //Phone Digits checking newError.AddRange(checks.CheckPhoneDigit(sheet, indexer.ESMContactNumber)); //Relationship Check var query1 = list1.GroupBy(x => x.NSM, x => new Mapping { c1 = x.NSMZone, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query1, indexer.NSM, indexer.NSMZone, "NSM", "NSMZone")); //Nsm to Nsm EmailID var query2 = list1.GroupBy(x => x.NSM, x => new Mapping { c1 = x.NSMEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query2, indexer.NSM, indexer.NSMEmailId, "NSM", "NSMEmailId")); //Nsm to Secondary EmailID var query3 = list1.GroupBy(x => x.NSM, x => new Mapping { c1 = x.NSMSecondaryEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query3, indexer.NSM, indexer.NSMSecondaryEmailId, "NSM", "NSMSecondaryEmailId")); //Nsm to Zsm var query4 = list1.GroupBy(x => x.NSM, x => new Mapping { c1 = x.ZSM, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query4, indexer.NSM, indexer.ZSM, "NSM", "ZSM")); //Zsm to Zsm Zone var query5 = list1.GroupBy(x => x.ZSM, x => new Mapping { c1 = x.ZSMZone, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query5, indexer.ZSM, indexer.ZSMZone, "ZSM", "ZSMZone")); //Zsm to Zsm EmailId var query6 = list1.GroupBy(x => x.ZSM, x => new Mapping { c1 = x.ZSMEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query6, indexer.ZSM, indexer.ZSMEmailId, "ZSM", "ZSMEmailId")); //Zsm to Zsm Secondary Email ID var query7 = list1.GroupBy(x => x.ZSM, x => new Mapping { c1 = x.ZSMSecondaryEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query7, indexer.ZSM, indexer.ZSMSecondaryEmailId, "ZSM", "ZSMSecondaryEmailId")); //Zsm to Rsm var query8 = list1.GroupBy(x => x.ZSM, x => new Mapping { c1 = x.RSM, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query8, indexer.ZSM, indexer.RSM, "ZSM", "RSM")); //Rsm to Rsm Zone var query9 = list1.GroupBy(x => x.RSM, x => new Mapping { c1 = x.RSMZone, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query9, indexer.RSM, indexer.RSMZone, "RSM", "RSMZone")); //Rsm to Rsm EmailId var query10 = list1.GroupBy(x => x.RSM, x => new Mapping { c1 = x.RSMEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query10, indexer.RSM, indexer.RSMEmailId, "RSM", "RSMEmailId")); //Rsm to Rsm SecondaryEmailId var query11 = list1.GroupBy(x => x.RSM, x => new Mapping { c1 = x.RSMSecondaryEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query11, indexer.RSM, indexer.RSMSecondaryEmailId, "RSM", "RSMSecondaryEmailId")); //Rsm to Asm var query12 = list1.GroupBy(x => x.RSM, x => new Mapping { c1 = x.ASM, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query12, indexer.RSM, indexer.ASM, "RSM", "ASM")); //Asm to Asm Zone var query13 = list1.GroupBy(x => x.ASM, x => new Mapping { c1 = x.ASMZone, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query13, indexer.ASM, indexer.ASMZone, "ASM", "ASMZone")); //Asm to Asm EmailId var query14 = list1.GroupBy(x => x.ASM, x => new Mapping { c1 = x.ASMEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query14, indexer.ASM, indexer.ASMEmailId, "ASM", "ASMEmailId")); //Asm to Secondary EmailId var query15 = list1.GroupBy(x => x.ASM, x => new Mapping { c1 = x.ASMSecondaryEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query15, indexer.ASM, indexer.ASMSecondaryEmailId, "ASM", "ASMSecondaryEmailId")); //Asm to Esm var query16 = list1.GroupBy(x => x.ASM, x => new Mapping { c1 = x.ESM, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query16, indexer.ASM, indexer.ESM, "ASM", "ESM")); //Esm to Esm Zone var query17 = list1.GroupBy(x => x.ESM, x => new Mapping { c1 = x.ESMZone, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query17, indexer.ESM, indexer.ESMZone, "ESM", "ESMZone")); //Esm to Esm EmailId var query18 = list1.GroupBy(x => x.ESM, x => new Mapping { c1 = x.ESMEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query18, indexer.ESM, indexer.ESMEmailId, "ESM", "ESMEmailId")); //Esm to Esm Secondary EmailId var query19 = list1.GroupBy(x => x.ESM, x => new Mapping { c1 = x.ESMSecondaryEmailId, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query19, indexer.ESM, indexer.ESMSecondaryEmailId, "ESM", "ESMSecondaryEmailId")); //Esm to Esm HQ var query20 = list1.GroupBy(x => x.ESM, x => new Mapping { c1 = x.ESMHQ, row = x.Row }).ToList(); newError.AddRange(checks.AttributeMapping(query20, indexer.ESM, indexer.ESMHQ, "ESM", "ESMHQ")); //ESM to ESMErpId var query21 = list1.GroupBy(x => x.ESM, x => new Mapping { c1 = x.ESMErpId, row = x.Row }).ToList(); newError.AddRange(checks.One2OneValidationCheck(query21, indexer.ESM, indexer.ESMErpId, "ESM", "ESMErpId")); //ESM to ESMContact Number var query22 = list1.GroupBy(x => x.ESM, x => new Mapping { c1 = x.ESMContactNumber, row = x.Row }).ToList(); newError.AddRange(checks.One2OneValidationCheck(query22, indexer.ESM, indexer.ESMContactNumber, "ESM", "ESMContactNumber")); //BeatDistrict to FinalBeatName var query23 = list1.GroupBy(x => x.BeatDistrict, x => new Mapping { c1 = x.FinalBeatName, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query23, indexer.BeatDistrict, indexer.FinalBeatName, "BeatDistrict", "FinalBeatName")); //BeatState FinalBeatName var query24 = list1.GroupBy(x => x.BeatState, x => new Mapping { c1 = x.FinalBeatName, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query24, indexer.BeatState, indexer.FinalBeatName, "BeatState", "FinalBeatName")); //BeatZone to FinalBeatName var query25 = list1.GroupBy(x => x.BeatZone, x => new Mapping { c1 = x.FinalBeatName, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query25, indexer.BeatZone, indexer.FinalBeatName, "BeatZone", "FinalBeatName")); //BeatName to BeatErpId var query_25 = list1.GroupBy(x => x.FinalBeatName, x => new Mapping { c1 = x.BeatErpId, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query_25, indexer.FinalBeatName, indexer.BeatErpId, "FinalBeatName", "BeatErpId")); //FinalBeatName to DistributorName var query26 = list1.GroupBy(x => x.DistributorName, x => new Mapping { c1 = x.FinalBeatName, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query26, indexer.DistributorName, indexer.FinalBeatName, "DistributorName", "FinalBeatName")); //FinalBeatName to DistributorLocation var query27 = list1.GroupBy(x => x.FinalBeatName, x => new Mapping { c1 = x.DistributorLocation, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query27, indexer.DistributorLocation, indexer.FinalBeatName, "DistributorLocation", "FinalBeatName")); //FinalBeatName to DistributorLocation var query28 = list1.GroupBy(x => x.FinalBeatName, x => new Mapping { c1 = x.DistributorEmailId, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query28, indexer.DistributorEmailId, indexer.FinalBeatName, "DistributorEmailId", "FinalBeatName")); //DistributorName to DistributorErpId var query29 = list1.GroupBy(x => x.DistributorName, x => new Mapping { c1 = x.DistributorErpId, row = x.Row }).ToList(); newError.AddRange(checks.One2OneValidationCheck(query29, indexer.DistributorName, indexer.DistributorErpId, "DistributorName", "DistributorErpId")); //Emails Check newError.AddRange(checks.EmailCheck(sheet, indexer.NSMEmailId, "NSMEmailId")); newError.AddRange(checks.EmailCheck(sheet, indexer.NSMSecondaryEmailId, "NSMSecondaryEmailId")); newError.AddRange(checks.EmailCheck(sheet, indexer.ZSMEmailId, "ZSMEmailId")); newError.AddRange(checks.EmailCheck(sheet, indexer.ZSMSecondaryEmailId, "ZSMSecondaryEmailId")); newError.AddRange(checks.EmailCheck(sheet, indexer.RSMEmailId, "RSMEmailId")); newError.AddRange(checks.EmailCheck(sheet, indexer.ZSMSecondaryEmailId, "RSMSecondaryEmailId")); newError.AddRange(checks.EmailCheck(sheet, indexer.ASMEmailId, "ASMEmailId")); newError.AddRange(checks.EmailCheck(sheet, indexer.ASMSecondaryEmailId, "ASMSecondaryEmailId")); newError.AddRange(checks.EmailCheck(sheet, indexer.ESMEmailId, "ESMEmailId")); newError.AddRange(checks.EmailCheck(sheet, indexer.ESMSecondaryEmailId, "ESMSecondaryEmailId")); newError.AddRange(checks.CheckStateAndDistrict(sheet, indexer.BeatState, indexer.BeatDistrict)); //Unique ErpId Random rnd = new Random(); var query30 = list1.Select(x => new Mapping { c1 = x.BeatErpId ?? rnd.Next(0, 100000).ToString(), row = x.Row }).GroupBy(y => y.c1).Where(y => y.Count() > 1).ToList(); newError.AddRange(checks.Unique(query30, indexer.BeatErpId, "BeatErpId")); var query31 = list1.Select(x => new Mapping { c1 = x.ESMErpId ?? rnd.Next(0, 100000).ToString(), row = x.Row }).GroupBy(y => y.c1).Where(y => y.Count() > 1).ToList(); newError.AddRange(checks.Unique(query31, indexer.ESMErpId, "ESMErpId")); } //Checks For Location Addition if (list2 != null) { foreach (var item in list2) { if (item.FinalBeatName == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "FinalBeatNamae"; temp.Row = item.Row; newError.Add(temp); } if (item.ShopName == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "ShopName"; temp.Row = item.Row; newError.Add(temp); } if (item.MarketName == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "MarketName"; temp.Row = item.Row; newError.Add(temp); } if (item.City == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "City"; temp.Row = item.Row; newError.Add(temp); } if (item.State == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "State"; temp.Row = item.Row; newError.Add(temp); } if (item.Country == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "Country"; temp.Row = item.Row; newError.Add(temp); } } Random rnd = new Random(); // var query= list1.GroupBy(x => x.DistributorName, x => new Mapping { c1 = x.DistributorErpId, row = x.Row }).ToList(); var query31 = list2.Select(x => new Mapping { c1 = x.ShopCode ?? rnd.Next(0, 100000).ToString(), row = x.Row }).GroupBy(y => y.c1).Where(y => y.Count() > 1).ToList(); // newError.AddRange(checks.One2OneValidationCheck(query, indexer.ShopName, indexer.FinalBeatName, "ShopName", "ShopErpId")); newError.AddRange(checks.Unique(query31, indexer.ShopErpId, "ShopErpId")); List <Mapping> mapList = new List <Mapping>(); foreach (var item in list2) { Mapping map = new Mapping(); map.c1 = item.ShopName + item.Address + item.MarketName + item.City; map.row = item.Row; mapList.Add(map); } var query32 = mapList.Select(x => new Mapping { c1 = x.c1 ?? rnd.Next(0, 100000).ToString(), row = x.row }).GroupBy(y => y.c1).Where(y => y.Count() > 1).ToList(); newError.AddRange(checks.Unique(query32, 1, "ShopName,Address,MarketName,City")); } // Beat State and District //Product Addtion if (list3 != null) { foreach (var item in list3) { if (item.PrimaryCategory == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "PrimaryCategory"; temp.Row = item.Row; newError.Add(temp); } if (item.SecondaryCategory == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "SecondaryCategory"; temp.Row = item.Row; newError.Add(temp); } if (item.Product == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Character Length Error"; temp.Field_1 = "Product"; temp.Row = item.Row; newError.Add(temp); } if (item.Price == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "Price"; temp.Row = item.Row; newError.Add(temp); } if (item.Unit == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "Unit"; temp.Row = item.Row; newError.Add(temp); } } var query1 = list3.GroupBy(x => x.PrimaryCategory, x => new Mapping { c1 = x.SecondaryCategory, row = x.Row }).ToList(); var query2 = list3.GroupBy(x => x.SecondaryCategory, x => new Mapping { c1 = x.DisplayCategory, row = x.Row }).ToList(); var query3 = list3.GroupBy(x => x.DisplayCategory, x => new Mapping { c1 = x.Product, row = x.Row }).ToList(); var query5 = list3.GroupBy(x => x.ProductCode, x => new Mapping { c1 = x.VariantCode, row = x.Row }).ToList(); var query6 = list3.GroupBy(x => x.Product, x => new Mapping { c1 = x.Variant, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query1, indexer.PrimaryCategory, indexer.SecondaryCategory, "PrimaryCategory", "SecondaryCategory")); newError.AddRange(checks.One2ManyValidationCheck(query2, indexer.SecondaryCategory, indexer.DisplayCategory, "SecondaryCategory", "DisplayCategory")); newError.AddRange(checks.One2ManyValidationCheck(query3, indexer.DisplayCategory, indexer.Product, "DisplayCategory", "Product")); newError.AddRange(checks.One2OneValidationCheck(query5, indexer.ProductCode, indexer.VariantCode, "ProductCode", "VariantCode")); newError.AddRange(checks.UniqueProductVariant(query6, indexer.Product, indexer.Variant)); } if (list4 != null) { foreach (var item in list4) { if (item.ESM == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "ESM"; temp.Row = item.Row; newError.Add(temp); } if (item.FinalBeatName == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "FinalBeatName"; temp.Row = item.Row; newError.Add(temp); } if (item.BeatPlanStartDate == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "BeatPlanStartDate"; temp.Row = item.Row; newError.Add(temp); } if (item.BeatPeriod == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "BeatPeriod"; temp.Row = item.Row; newError.Add(temp); } if (item.BeatDay == "") { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Null Entry"; temp.Field_1 = "BeatDay"; temp.Row = item.Row; newError.Add(temp); } try { if (int.Parse(item.BeatPeriod) < 1) { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Beat period cannot be less than 1"; temp.Field_1 = "BeatPeriod"; temp.Row = item.Row; newError.Add(temp); } } catch { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = " BeatDay must be integer"; temp.Field_1 = "BeatDay"; temp.Row = item.Row; newError.Add(temp); } try { if (int.Parse(item.BeatDay) > int.Parse(item.BeatPeriod)) { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = "Beat period cannot be less than 1"; temp.Field_1 = "BeatPeriod"; temp.Row = item.Row; newError.Add(temp); } } catch { ErrorTemplates temp = new ErrorTemplates(); temp.ErrorType = " BeatDay must be integer"; temp.Field_1 = "BeatDay"; temp.Row = item.Row; newError.Add(temp); } } var query = list4.GroupBy(x => x.BeatDay, x => new Mapping { c1 = x.FinalBeatName, row = x.Row }).ToList(); newError.AddRange(checks.One2ManyValidationCheck(query, indexer.BeatDay, indexer.FinalBeatName, "BeatDay", "FinalBeatName")); } return(newError); }