AppActs.Client.Service.ReportService.GetGraphWithApplicationCompare C# (CSharp) Method

GetGraphWithApplicationCompare() public method

Gets the graph with application compare.
public GetGraphWithApplicationCompare ( System.Guid graphGuid, System.Guid applicationId, System.DateTime dateStart, System.DateTime dateEnd ) : Guid>.GraphWithTabularCompare
graphGuid System.Guid
applicationId System.Guid
dateStart System.DateTime
dateEnd System.DateTime
return Guid>.GraphWithTabularCompare
        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;
        }