public GraphWithTabularCompare<ApplicationMeta, Guid> GetGraphWithApplicationCompare(Guid graphGuid, Guid applicationId,
DateTime dateStart, DateTime dateEnd)
{
GraphWithTabularCompare<ApplicationMeta, Guid> graphWithApplicationCompare =
new GraphWithTabularCompare<ApplicationMeta, Guid>();
try
{
Application applicationMain = this.applicationRepository.Find(applicationId);
IEnumerable<Application> applicationsToCompare = this.applicationRepository.FindAll();
applicationsToCompare = applicationsToCompare.Where(x => x.Guid != applicationMain.Guid).ToList();
List<ApplicationMeta> applications = new List<ApplicationMeta>();
if (applicationsToCompare.Count() != 0)
{
applications = applicationsToCompare.Cast<ApplicationMeta>().ToList();
}
applications.Add(applicationMain);
graphWithApplicationCompare.Options = applications;
List<Guid> applicationsSelected = new List<Guid>();
if (applicationsToCompare.Count() != 0)
{
applicationsSelected = applicationsToCompare.Select(x => x.Guid).Take(2).ToList();
}
applicationsSelected.Add(applicationId);
graphWithApplicationCompare.Selected = applicationsSelected;
graphWithApplicationCompare.Consume(
this.GetGraphApplications(graphGuid, applicationId, applicationsSelected, dateStart, dateEnd)
);
}
catch (BaseException)
{
throw;
}
catch (Exception ex)
{
throw new ServiceLayerException(ex);
}
return graphWithApplicationCompare;
}