public ProjectMapModelMinified SubmitActivities(List<iatiactivityModel> relevantActivies)
{
if (relevantActivies != null)
{
UpdateActivities(relevantActivies, Sessions.activitiesContainer?.RelevantActivities);
}
var relevantActiviesSession = Sessions.activitiesContainer?.RelevantActivities;
//SetStatics();//since we have no access to session at library project, so we pass it in a static variables
var ProjectsOwnedByOther = relevantActiviesSession.FindAll(f => f.IATICode != Sessions.DP.ID);
relevantActiviesSession.RemoveAll(f => f.IATICode != Sessions.DP.ID);
var AimsProjects = Sessions.activitiesContainer?.AimsProjects;
var MatchedProjects = (GetMatchedProjects(relevantActiviesSession, AimsProjects)).ToList();
//for showing mathced projects side by side And field mapping later
var MatchedProjects2 = (from i in relevantActiviesSession
from a in AimsProjects.Where(k => i.OriginalIatiIdentifier == k.OriginalIatiIdentifier)
orderby i.IatiIdentifier
select new ProjectFieldMapModel(i, a)
).ToList();
var IatiActivityNotInAims = relevantActiviesSession.Except(MatchedProjects).ToList();
var AimsProjectNotInIati = AimsProjects
.ExceptBy(MatchedProjects, f => f.OriginalIatiIdentifier)
.ExceptBy(ProjectsOwnedByOther, f => f.OriginalIatiIdentifier)
.ToList();
var returnResult = new ProjectMapModel
{
MatchedProjects = MatchedProjects2,
IatiActivitiesNotInAims = IatiActivityNotInAims,
AimsProjectsNotInIati = AimsProjectNotInIati,
NewProjectsToAddInAims = new List<iatiactivity>(),
ProjectsOwnedByOther = ProjectsOwnedByOther
};
Sessions.ProjectMapModel = returnResult;
Sessions.CurrentStage = Stage.ShowProjects;
var r = ToMinifiedProjectMapModel(returnResult);
r.AimsProjectsDrpSrc = (from p in AimsProjects
select new LookupItem
{
ID = p.ProjectId,
Name = p.Title
}).ToList();
return r;
}