private static string ExtractValue(ReportColumn reportColumn, Proposal proposal, bool forExport)
{
var result = string.Empty;
if (!reportColumn.IsProperty)
{
var answer = proposal.Answers.Where(a => a.Question.Name == reportColumn.Name).FirstOrDefault();
if (answer != null)
{
result = answer.Answer;
}
}
else
{
if (reportColumn.Name == StaticValues.Report_Submitted)
{
result = proposal.IsSubmitted.ToString();
}
else if (reportColumn.Name == StaticValues.Report_Approved)
{
result = proposal.IsApproved.ToString();
}
else if(reportColumn.Name == StaticValues.Report_Sequence)
{
result = proposal.Sequence.ToString();
}
else if (reportColumn.Name == StaticValues.Report_Investigators)
{
var sb = new StringBuilder();
foreach (var investigator in proposal.Investigators.OrderByDescending(a => a.IsPrimary))
{
var temp = new List<string>();
if(!forExport)
{
temp.Add(investigator.Name.Replace(" ", " "));
}
else
{
temp.Add(investigator.Name);
}
if(!string.IsNullOrEmpty(investigator.Position))
{
if (!forExport)
{
temp.Add(investigator.Position.Replace(" ", " "));
}
else
{
temp.Add(investigator.Position);
}
}
if(!string.IsNullOrEmpty(investigator.Institution))
{
if (!forExport)
{
temp.Add(investigator.Institution.Replace(" ", " "));
}
else
{
temp.Add(investigator.Institution);
}
}
if(investigator.IsPrimary)
{
temp.Add("Primary");
}
if (forExport)
{
sb.AppendLine(string.Join("/", temp));
}
else
{
sb.AppendLine(string.Join("/", temp));
}
}
result = sb.ToString();
}
else if (reportColumn.Name == StaticValues.Report_Denied)
{
result = proposal.IsDenied.ToString();
}
else if (reportColumn.Name == StaticValues.Report_RequestedAmount)
{
result = proposal.RequestedAmount.ToString();
}
else if (reportColumn.Name == StaticValues.Report_AwardedAmount)
{
result = proposal.ApprovedAmount.ToString();
}
else if(reportColumn.Name == StaticValues.Report_Comments)
{
var comments = proposal.Comments.FirstOrDefault();
if (comments != null)
{
result = comments.Text;
}
}
}
return result;
}