private Error[] CheckType(OutputRow row) { var result = new List<Error>(); if (string.IsNullOrEmpty(row.Type) || string.IsNullOrWhiteSpace(row.Type)) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Колонка <Тип> содержит пустое значение" }; result.Add(error); } else if (!SettingsProvider.AllowedTypes.Any(t => t.Name == row.Type) && row.Type != string.Empty) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Значение в колонке <Тип> не является стандартным" }; result.Add(error); } return result.ToArray(); }
private Error[] CheckRowWarnings(OutputRow row) { var result = new List<Error>(); var props = row.GetType().GetProperties(); foreach (var prop in props) { if (((string)prop.GetValue(row, null)) == string.Empty) { result.Add(new Error { Description = "Колонка <"+prop.Name+"> содержит пустое значение", RowNumber = RowsToExport.IndexOf(row) }); } else if (string.IsNullOrEmpty(row.Light) || string.IsNullOrWhiteSpace(row.Light)) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Колонка <Свет> содержит пустое значение" }; result.Add(error); } } return result.ToArray(); }
private Error[] CheckSize(OutputRow row) { var result = new List<Error>(); if (!SettingsProvider.AllowedSizes.Any(s => s.Name == row.Size) && row.Size != string.Empty) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Значение \"" + row.Size + "\" в колонке <Размер> не является стандартным" }; result.Add(error); } else if (string.IsNullOrWhiteSpace(row.Size) || string.IsNullOrEmpty(row.Size)) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Колонка <Размер> содержит пустое значение" }; result.Add(error); } else { var type = SettingsProvider.AllowedTypes.Where(c => c.Name == row.Type).FirstOrDefault(); if (type != null && !SettingsProvider.AllowedSizes.Where(r => r.FkTypeId == type.Id).ToArray().Any(s => s.Name == row.Size)) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Размер \"" + row.Size + "\" не принадлежит типу \" " + row.Type + "\"" }; result.Add(error); } } return result.ToArray(); }
private Error[] CheckRowErrors(OutputRow row) { var result = new List<Error>(); var totalErrors = new List<Error[]> { CheckCity(row), CheckRegion(row), CheckType(row), CheckSize(row), CheckLight(row), CheckSide(row), CheckCodeDoors(row) }; foreach (var errArray in totalErrors) { foreach (var err in errArray) { result.Add(err); } } return result.ToArray(); }
private Error[] CheckRegion(OutputRow row) { var result = new List<Error>(); if (!SettingsProvider.AllowedRegions.Any(r => r.Name == row.Region) && row.City != string.Empty && row.Region!=string.Empty) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Значение \"" + row.Region + "\" в колонке <Район> не является стандартным" }; result.Add(error); } else if (row.Region != string.Empty) { var city = SettingsProvider.AllowedCities.Where(c => c.Name == row.City).FirstOrDefault(); if (city != null && !SettingsProvider.AllowedRegions.Where(r => r.FkCityId == city.Id || r.FkCityId == null).ToArray().Any(r => r.Name == row.Region)) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Район \"" + row.Region + "\" не принадлежит городу \" " + row.City + "\"" }; result.Add(error); } } return result.ToArray(); }
private Error[] CheckLight(OutputRow row) { var result = new List<Error>(); if (!SettingsProvider.AllowedLights.Contains(row.Light) && row.Light != string.Empty) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Значение в колонке <Свет> не является стандартным" }; result.Add(error); } else if (string.IsNullOrEmpty(row.Light) || string.IsNullOrWhiteSpace(row.Light)) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Колонка <Свет> содержит пустое значение" }; result.Add(error); } return result.ToArray(); }
private Error[] CheckCodeDoors(OutputRow row) { var result = new List<Error>(); //if (string.IsNullOrWhiteSpace(row.CodeDoors)) //{ // var error = new Error // { // RowNumber = RowsToExport.IndexOf(row), // Description = "Колонка <Код DOORS> содержит пустое значение." // }; // result.Add(error); //} //else //{ int res; if (!string.IsNullOrWhiteSpace(row.CodeDoors) && row.CodeDoors.Any(c => !(new char[] {'1','2','3','4','5','6','7','8','9','0'}.Contains(c)))) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Значение \"" + row.CodeDoors + "\" в колонке <Код DOORS> неверное. Должны содержаться только арабские цифры." }; result.Add(error); } //} return result.ToArray(); }
private Error[] CheckCity(OutputRow row) { var result = new List<Error>(); if (string.IsNullOrEmpty(row.City)||string.IsNullOrWhiteSpace(row.City)) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Колонка <Город> содержит пустое значение" }; result.Add(error); } else if (!SettingsProvider.AllowedCities.Any(c => c.Name == row.City) && row.City != string.Empty) { var error = new Error { RowNumber = RowsToExport.IndexOf(row), Description = "Значение \"" + row.City + "\" в колонке <Город> не является стандартным" }; result.Add(error); } return result.ToArray(); }