public void AddGroupDescriptions(List<GroupDescriptionModel> itemList, string entityConnectionString, string instanceIdentifier, out List<GroupDescriptionModel> listOfIncorrectRecords, out List<GroupDescriptionModel> listOfCorrectRecords, out List<GroupDescriptionModel> listOfDuplicateRecords, out List<GroupDescriptionModel> listOfEditedRecords)
{
listOfIncorrectRecords = new List<GroupDescriptionModel>();
listOfCorrectRecords = new List<GroupDescriptionModel>();
listOfDuplicateRecords = new List<GroupDescriptionModel>();
listOfEditedRecords = new List<GroupDescriptionModel>();
var context = new ODM_1_1_1EFModel.ODM_1_1_1Entities(entityConnectionString);
var maxCount = itemList.Count;
var count = 0;
BusinessObjectsUtils.UpdateCachedprocessStatusMessage(instanceIdentifier, CacheName, String.Format(Ressources.IMPORT_STATUS_PROCESSING, count, maxCount));
foreach (var item in itemList)
{
try
{
BusinessObjectsUtils.UpdateCachedprocessStatusMessage(instanceIdentifier, CacheName, String.Format(Ressources.IMPORT_STATUS_PROCESSING, count, maxCount));
count++;
var model = new GroupDescription();
var listOfErrors = new List<ErrorModel>();
bool isRejected = false;
//GroupDescription
if (!string.IsNullOrWhiteSpace(item.GroupDescription))
{
if (RepositoryUtils.containsSpecialCharacters(item.GroupDescription))
{
var err = new ErrorModel("AddGroupDescriptions", string.Format(Ressources.IMPORT_VALUE_INVALIDCHARACTERS, "GroupDescription")); listOfErrors.Add(err); isRejected = true;
}
else
{
model.GroupDescription1 = item.GroupDescription;
}
}
else
{
var err = new ErrorModel("AddGroupDescriptions", string.Format(Ressources.IMPORT_VALUE_CANNOTBEEMPTY, "GroupDescription")); listOfErrors.Add(err); isRejected = true;
}
if (isRejected)
{
var sb = new StringBuilder();
foreach (var er in listOfErrors)
{
sb.Append(er.ErrorMessage + ";");
}
item.Errors = sb.ToString();
listOfIncorrectRecords.Add(item);
continue;
}
//lookup duplicates
var existingItem = context.GroupDescriptions.Where(a => a.GroupDescription1 == model.GroupDescription1
).FirstOrDefault();
if (existingItem == null)
{
context.GroupDescriptions.Add(model);
//context.SaveChanges();
listOfCorrectRecords.Add(item);
}
else
{
//no editing possible no unique field in upload
listOfDuplicateRecords.Add(item);
}
}
catch (Exception ex)
{
listOfIncorrectRecords.Add(item);
}
}
return;
}