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");
}
}