public static void SetFieldMappingPreferences(List<ProjectFieldMapModel> projectFieldMapModel, ProjectFieldMapModel generalPreferences) { //set general or activity preferences foreach (var mapModel in projectFieldMapModel) { var activityPreference = new AimsDbIatiDAL().GetFieldMappingPreferenceActivity(mapModel.iatiActivity.IatiIdentifier); var fields = mapModel.Fields.ToList(); fields.AddRange(mapModel.TransactionFields); foreach (var field in fields) { //get GetFieldMappingPreferenceActivity for this field var activityFieldSource = activityPreference.Find(f => f.FieldName == field.Field); if (activityFieldSource != null) { field.IsSourceIATI = activityFieldSource.IsSourceIATI; } else // apply general preferences { var generalFieldSource = generalPreferences.Fields.Find(f => f.Field == field.Field); if (generalFieldSource != null) field.IsSourceIATI = generalFieldSource.IsSourceIATI; } } } }
/// <summary> /// Save Data To DB /// </summary> /// <param name="returnResult2"></param> private void SaveToDB(tblFundSource fundSource, AIMS_BD_IATI.Library.Parser.ParserIATIv2.iatiactivity[] iatiactivityArray) { int counter = 1; int successfullySavedActivityCounter = 0; int totalActivity = iatiactivityArray.Count(); Logger.Write("INFO: " + "Total Activity found: " + totalActivity); Console.WriteLine(); if (totalActivity > 0) { foreach (var iatiactivityItem in iatiactivityArray) { try { var Activity = new Activity(); Activity.OrgId = Activity.AssignedOrgId = fundSource.IATICode;// iatiactivityItem.reportingorg?.@ref; Activity.IatiIdentifier = iatiactivityItem.IatiIdentifier; Activity.Hierarchy = iatiactivityItem.hierarchy; using (StringWriter ww = new StringWriter()) { iatiactivitySerealizer.Serialize(ww, iatiactivityItem); Activity.IatiActivity = ww.ToString(); } successfullySavedActivityCounter += new AimsDbIatiDAL().SaveAtivity(Activity, iatiactivityItem, fundSource) == 1 ? 1 : 0; Console.Write("\r Activity Counter: {0} ", counter++); } catch (DbEntityValidationException ex) { string messages = ""; foreach (var validationErrors in ex.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { messages += string.Format("\nProperty: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } Logger.WriteToDbAndFile(ex, LogType.ValidationError, fundSource.IATICode, iatiactivityItem.IatiIdentifier, messages); } catch (Exception ex) { Logger.WriteToDbAndFile(ex, LogType.Error, fundSource.IATICode, iatiactivityItem.IatiIdentifier); } } Logger.Write("INFO: " + successfullySavedActivityCounter + " activities are stored in Database"); } }