HydroServerToolsRepository.Repository.GroupDescriptionsRepository.AddGroupDescriptions C# (CSharp) Méthode

AddGroupDescriptions() public méthode

public AddGroupDescriptions ( List itemList, string entityConnectionString, string instanceIdentifier, List &listOfIncorrectRecords, List &listOfCorrectRecords, List &listOfDuplicateRecords, List &listOfEditedRecords ) : void
itemList List
entityConnectionString string
instanceIdentifier string
listOfIncorrectRecords List
listOfCorrectRecords List
listOfDuplicateRecords List
listOfEditedRecords List
Résultat void
        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;
        }