private FundraisingMenuResult GetResult(CihProject cihProject)
{
MdmProject p = _mdmSS.GetProjectForHubId(cihProject.Id.ToString());
// Relationship data
BuDivReg buDivsRegions = _relations.GetMdmBusinessUnitsRelated(p);
List<String> gc = _relations.GetMdmGlobalChallenges(p).Select(r => r.Name).Distinct().ToList();
List<string> regs = buDivsRegions.Regs.Select(r => r.Name).Distinct().ToList();
List<string> countries = _relations.GetMdmCountries(p).Select(r => r.Name).Distinct().ToList();
// Contact data
Person programContact = cihProject.ProgramContact != null
? _persons.FindPersonWithPersonId(Convert.ToInt32(cihProject.ProgramContact)) : null;
Person philanthropyContact = cihProject.PhilanthropyContact != null
? _persons.FindPersonWithPersonId(Convert.ToInt32(cihProject.PhilanthropyContact)) : null;
List<String> projectKeywords = new List<String>();
projectKeywords = _keywords.GetProjectKeywords(Convert.ToInt32(cihProject.Id)).Select(r => r.Keyword).ToList();
List<FundraisingNeedDto> fundraisingNeeds = _fundraisingNeeds.GetProjectFundraisingNeeds(cihProject.Id);
// Packages: Either a list or we use the default package from the database.
List<Package> pkgs = _packages.GetPackagesForHubId(cihProject.Id);
if (pkgs.Count == 0)
{
List<Package> defaultPackageList = new List<Package>();
Package defaultPackage = _packages.GetDefaultPackage();
if (defaultPackage != null)
defaultPackageList.Add(defaultPackage);
pkgs = defaultPackageList;
}
List<ProjectPackageDto> pkgDto;
pkgDto = pkgs.Select(r => GetProjectPackageDto(cihProject.Id, r, true)).ToList();
return new FundraisingMenuResult()
{
// Column items.
ProjectName = p.Name,
ProjectBriefDescription = p.Description,
GlobalChallenge = gc,
Region = regs,
Country = countries,
ProjectPackage = pkgDto,
ProgramContact = programContact == null ? null : new Person()
{
PersonName = programContact.PersonName,
Email = programContact.Email,
PhoneNumber = programContact.PhoneNumber,
PhoneNumberToday = programContact.PhoneNumberToday
},
PhilanthropyContact = philanthropyContact == null ? null : new Person()
{
PersonName = philanthropyContact.PersonName,
Email = philanthropyContact.Email,
PhoneNumber = philanthropyContact.PhoneNumber,
PhoneNumberToday = philanthropyContact.PhoneNumberToday
},
HubId = StringOrEmpty(p.HubId),
ProjectKeyword = projectKeywords,
ProjectFundraisingNeed = fundraisingNeeds
};
}