public ResponseModel <List <ManageEmployeeListViewModel> > ValidateFileData(IEnumerable <DataRow> datalist) { ResponseModel <List <ManageEmployeeListViewModel> > response = new ResponseModel <List <ManageEmployeeListViewModel> >(); response.Entity = new List <ManageEmployeeListViewModel>(); StringBuilder sbError = new StringBuilder(); List <int> skipedRows = new List <int>(); int rowNum = 2; if (datalist != null && datalist.Any()) { foreach (DataRow row in datalist) { sbError.Length = 0; StringBuilder validationError = new StringBuilder(); ManageEmployeeListViewModel employeeData = new ManageEmployeeListViewModel() { FullName = row[0] != DBNull.Value ? row[0].ToString() : "", // DateOfBirth = row[1] != DBNull.Value ? Convert.ToDateTime(row[1]) : (DateTime?)null, //Gender = row[2] != DBNull.Value ? row[2].ToString() : "", //Salary = row[3] != DBNull.Value ? Convert.ToDecimal(row[3]) : (Decimal?)null, Designation = row[4] != DBNull.Value ? row[4].ToString() : "" }; if (row[0] != DBNull.Value || row[1] != DBNull.Value || row[2] != DBNull.Value || row[3] != DBNull.Value || row[4] != DBNull.Value) { if (row[0] == DBNull.Value) { validationError.Append(" FullName is Blank."); } if (row[1] == DBNull.Value) { validationError.Append(" DateOfBirth is Blank."); } else { string[] dateFormats = { "dd.MM.yyyy hh:mm:ss tt", "dd-MM-yyyy hh:mm:ss tt", "dd/MM/yyyy hh:mm:ss tt", "MM/dd/yyyy hh:mm:ss tt", "M/d/yyyy hh:mm:ss tt", "yyyy/MM/dd hh:mm:ss tt", "dd-MM-yyyy hh:mm:ss tt", "yyyy-MM-dd hh:mm:ss tt", "MM-dd-yyyy hh:mm:ss tt" }; if (IsValidDate(row[1].ToString(), dateFormats)) { employeeData.DateOfBirth = row[1] != DBNull.Value ? Convert.ToDateTime(row[1]) : (DateTime?)null; } else { validationError.Append(" Invalid Date Format in DateOfBirth."); } } if (row[2] == DBNull.Value) { validationError.Append(" Gender is Blank."); } else { string gender = row[2] != DBNull.Value ? row[2].ToString() : ""; _genderRepository.Find(x => x.IsDeleted == false && x.Name == gender).Select(y => y.Id); employeeData.Gender = _genderRepository.Find(x => x.IsDeleted == false && x.Name == gender).Select(y => y.Id).FirstOrDefault(); } if (row[3] == DBNull.Value) { validationError.Append(" Salary is Blank."); } else { if (IsDecimal(row[3].ToString())) { employeeData.Salary = row[3] != DBNull.Value ? Convert.ToDecimal(row[3]) : (Decimal?)null; } else { validationError.Append(" Salary is not in numeric."); } } if (row[4] == DBNull.Value) { validationError.Append(" Designation is Blank."); } if (validationError.Length > 0) { sbError.Append("Row: " + rowNum); sbError.Append(validationError); response.ExcelValidationError.Add(sbError.ToString()); response.Validation = false; } else { response.Entity.Add(employeeData); } } else { skipedRows.Add(rowNum); } rowNum++; } if (skipedRows.Count > 0) { response.SkipedRow = string.Join(",", skipedRows); } } return(response); }