public iatiactivityContainer GetNotMappedActivities(string dp)
{
var q = (from a in dbContext.Activities
let isNotMapped = (a.ProjectId ?? 0) == 0 && (a.MappedProjectId ?? 0) == 0 && (a.MappedTrustFundId ?? 0) == 0
where a.OrgId == dp && a.AssignedOrgId == dp && isNotMapped && a.IsIgnore != true
orderby a.IatiIdentifier
select new ActivityModel
{
IatiActivity = a.IatiActivity,
OrgId = a.OrgId,
ProjectId = a.ProjectId,
MappedProjectId = a.MappedProjectId,
MappedTrustFundId = a.MappedTrustFundId,
IsInclude = a.IsInclude
}).ToList();
var iatiActivities = ParseXMLAndResolve(q);
foreach (var activity in iatiActivities)
{
LoadChildActivities(activity);
}
var aimsActivities = GetNotMappedAimsProjects(dp);
//since IATIIdentifier does not fully match between AIMS and IATI
foreach (var act in aimsActivities)
{
var mathcedIatiactivity = iatiActivities.Find(i => i.IatiIdentifier.Replace("-", "").EndsWith(act.IatiIdentifier.Replace("-", "")) ||
(i.hierarchy == 2 ? false : i.IatiIdentifier.Contains(act.IatiIdentifier)));
if (act.IatiIdentifier != mathcedIatiactivity?.IatiIdentifier)
act.OriginalIatiIdentifier = mathcedIatiactivity?.IatiIdentifier;
}
return new iatiactivityContainer
{
iatiActivities = iatiActivities,
AimsProjects = aimsActivities
};
}