Exemple #1
0
        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;

                    }
                }


            }
        }
Exemple #2
0
        /// <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");
            }
        }