public BaseApiController() { uow = new SandlerUnitOfWork(new SandlerRepositoryProvider(new RepositoryFactories()), new SandlerDBContext()); CurrentUser = new UserModel(RequestContext.Principal.Identity.Name); CurrentUser.Load(uow); //_contextProvider = new EFContextProvider<SandlerDBEntities>(); }
public new void LoadChart(UserModel currentUser) { try { this.DrillChartIds = (this.DrillOverride) ? this.Id.ToString() : this.DrillChartIds; int colorIndex = 0; //UserEntities userEntities; Sandler.Web.Queries.ChartQueries queries = new Sandler.Web.Queries.ChartQueries(uow); switch (this.Id) { // case ChartID.ReturnOnTrainingInvestment: // int ROIAdjustmentFactor = int.Parse(ConfigurationManager.AppSettings["ROIAdjustmentFactor"]); // GapAnalysisRepository reposiroty = new GapAnalysisRepository(); // GATracker gaTracker = reposiroty.GetGATrackerById(int.Parse(SearchParameter)); // double year1ExpVal, year2ExpVal, year3ExpVal, year1AF, year2AF, year3AF; // year1ExpVal = Convert.ToDouble(gaTracker.Year1.Value); // year2ExpVal = Convert.ToDouble(gaTracker.Year2.Value); // year3ExpVal = Convert.ToDouble(gaTracker.Year3.Value); // year1AF = GetFactorValue(year1ExpVal); // year2AF = GetFactorValue(year2ExpVal); // year3AF = GetFactorValue(year3ExpVal); // double scVal, seVal, sqVal, tcsVal, qaVal, ebgVal; // double year1Savings, year1ROIBalance, year2Savings, year2ROIBalance, year3Savings, year3ROIBalance; // string year1ROIPercent, year2ROIPercent, year3ROIPercent; // //Year1 Calculations // scVal = (year1ExpVal * (gaTracker.ToBeSalesCycleTimePercentVal.Value - gaTracker.AsIsSalesCycleTimePercentVal.Value) * ROIAdjustmentFactor * year1AF) / 10000; // seVal = (year1ExpVal * (gaTracker.ToBeSalesEfficiencyPercentVal.Value - gaTracker.AsIsSalesEfficiencyPercentVal.Value) * ROIAdjustmentFactor * year1AF) / 10000; // sqVal = (year1ExpVal * (gaTracker.ToBeSalesQualificationPercentVal.Value - gaTracker.AsIsSalesQualificationPercentVal.Value) * ROIAdjustmentFactor * year1AF) / 10000; // tcsVal = (year1ExpVal * (gaTracker.ToBeSalesRepRetentionPercentVal.Value - gaTracker.AsIsSalesRepRetentionPercentVal.Value) * ROIAdjustmentFactor * year1AF) / 10000; // qaVal = (year1ExpVal * (gaTracker.ToBeQuotaAchievementPercentVal.Value - gaTracker.AsIsQuotaAchievementPercentVal.Value) * ROIAdjustmentFactor * year1AF) / 10000; // ebgVal = (year1ExpVal * (gaTracker.ToBeTrngBenefitsPercentVal.Value - gaTracker.AsIsTrngBenefitsPercentVal.Value) * ROIAdjustmentFactor * year1AF) / 10000; // year1Savings = scVal + seVal + sqVal + tcsVal + qaVal + ebgVal; // year1ROIBalance = year1Savings - year1ExpVal; // year1ROIPercent = ((year1Savings / year1ExpVal * 100)).ToString(); // //Year2 Calculations // scVal = ((year2ExpVal * scVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptSalesCycleTime) / 100)) / year1ExpVal) * year2AF; // seVal = ((year2ExpVal * seVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptSalesEfficiency) / 100)) / year1ExpVal) * year2AF; // sqVal = ((year2ExpVal * sqVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptSalesQualfn) / 100)) / year1ExpVal) * year2AF; // tcsVal = ((year2ExpVal * tcsVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptSalesRepRetention) / 100)) / year1ExpVal) * year2AF; // qaVal = ((year2ExpVal * qaVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptQuotaAcht) / 100)) / year1ExpVal) * year2AF; // ebgVal = ((year2ExpVal * ebgVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptTrngBenefits) / 100)) / year1ExpVal) * year2AF; // year2Savings = scVal + seVal + sqVal + tcsVal + qaVal + ebgVal; // year2ROIBalance = year2Savings - year2ExpVal; // year2ROIPercent = ((year2Savings / year2ExpVal * 100)).ToString(); // //Year3 Calculations // scVal = ((year3ExpVal * scVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptSalesCycleTime) / 100)) / year2ExpVal) * year3AF; // seVal = ((year3ExpVal * seVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptSalesEfficiency) / 100)) / year2ExpVal) * year3AF; // sqVal = ((year3ExpVal * sqVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptSalesQualfn) / 100)) / year2ExpVal) * year3AF; // tcsVal = ((year3ExpVal * tcsVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptSalesRepRetention) / 100)) / year2ExpVal) * year3AF; // qaVal = ((year3ExpVal * qaVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptQuotaAcht) / 100)) / year2ExpVal) * year3AF; // ebgVal = ((year3ExpVal * ebgVal * (1 + Convert.ToDouble(gaTracker.DesiredAnnualImptTrngBenefits) / 100)) / year2ExpVal) * year3AF; // year3Savings = scVal + seVal + sqVal + tcsVal + qaVal + ebgVal; // year3ROIBalance = year3Savings - year3ExpVal; // year3ROIPercent = ((year3Savings / year3ExpVal * 100)).ToString(); // this.SetsCollection.Add(new SetValue { Color = "#008000", Label = "Year1", Value = year1ROIPercent }); // this.SetsCollection.Add(new SetValue { Color = "#008000", Label = "Year2", Value = year2ROIPercent }); // this.SetsCollection.Add(new SetValue { Color = "#008000", Label = "Year3", Value = year3ROIPercent }); // break; // #region FranchiseeReports Logic case ChartID.AverageLengthTimeActiveClientsByIndustry: try { var AverageLengthTimeActiveClientsByIndustry = queries.AverageLengthTimeActiveClientsByIndustry(currentUser).ToList(); //IndustryTypeRepository industrySource = new IndustryTypeRepository(); foreach (var record in uow.Repository<Tbl_IndustryType>().GetAll().Where(r => r.IsActive == true).AsEnumerable()) { try { foreach (var d in AverageLengthTimeActiveClientsByIndustry) { if (record.IndustryTypeName == d.IndustryTypeName) { this.SetsCollection.Add(new SetValue { Color = record.ColorCode, Label = record.IndustryTypeName, Value = d.Count.ToString("#"), Link = (currentUser.Role == SandlerRoles.Client) ? "" : ChartHelper.GeneratePageLink("", this.DrillChartIds) }); break; } } } catch (System.InvalidOperationException ex) { } colorIndex++; } } catch (Exception ex) { throw new Exception("Error in ChartID.AverageLengthTimeActiveClientsByIndustry:" + ex.Message); } break; // #endregion // default: // break; } } catch (Exception ex) { throw ex; } }
//protected readonly EFContextProvider<SandlerDBEntities> _contextProvider; public BaseApiController(IUnitOfWork _uow) { uow = _uow; CurrentUser = new UserModel(RequestContext.Principal.Identity.Name); CurrentUser.Load(_uow); }
public void LoadChart(UserModel currentUser) { try { this.DrillChartIds = (this.DrillOverride) ? this.Id.ToString() : this.DrillChartIds; List<ChartParameter> chartParams = null; ChartDataSet lastDs = null; ChartQueries queries = new ChartQueries(uow); //AppointmentSourceRepository appointmentSource; //ProductTypesRepository productTypesSource; IEnumerable<Tbl_ProductType> products; string searchForNewCompany, searchCompanies, franchiseeName, regionName, countryName; int yearToProcess, monthToProcess; switch ((ChartID)Enum.Parse(typeof(ChartID), this.Id.ToString(), true)) { // #region ProductsReports Logic // case ChartID.ProductMarginContributionByProductByMonth: // productTypesSource = new ProductTypesRepository(); // if (currentUser.Role == SandlerRoles.FranchiseeOwner || currentUser.Role == SandlerRoles.FranchiseeUser) // products = productTypesSource.GetWithFranchiseeId(currentUser.FranchiseeID); // else // products = productTypesSource.GetAll(); // foreach (var record in products.Where(r => r.IsActive == true).AsEnumerable()) // { // this.Categories.Add(new Category { Label = record.ProductTypeName }); // } // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "-2", Color = "3300ff" }); // chartParams.Add(new ChartParameter { Value = "-1", Color = "ff6600" }); // chartParams.Add(new ChartParameter { Value = "0", Color = "32df00" }); // foreach (ChartParameter parameter in chartParams) // { // try // { // IEnumerable<SandlerModels.DataIntegration.ProductTypeVM> productSalesCollection = queries.GetProductSalesByMonth(currentUser, DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month); // if (productSalesCollection != null) // { // var productSales = from record in productSalesCollection // select new { Category = record.ProductTypeName, Value = record.AvgPrice }; // this.DataSetCollection.Add(new ChartDataSet { Color = parameter.Color, SeriesName = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // foreach (Category category in this.Categories) // { // lastDs = this.DataSetCollection.Last(); // lastDs.SetsCollection.Add(new SetValue { Label = category.Label, Link = ChartHelper.GeneratePageLink(lastDs.SeriesName, this.DrillChartIds) }); // } // foreach (var record in productSales) // { // foreach (SetValue set in lastDs.SetsCollection) // { // if (set.Label == record.Category) // set.Value = record.Value.ToString(); // } // } // } // } // catch (Exception ex) // { // throw new Exception("Error in ChartID.ProductMarginContributionByProductByMonth:" + ex.Message); // } // //} // } // break; // case ChartID.FirstSaleProductValueByProductByMonth: // productTypesSource = new ProductTypesRepository(); // if (currentUser.Role == SandlerRoles.FranchiseeOwner || currentUser.Role == SandlerRoles.FranchiseeUser) // products = productTypesSource.GetWithFranchiseeId(currentUser.FranchiseeID); // else // products = productTypesSource.GetAll(); // foreach (var record in products.Where(r => r.IsActive == true).AsEnumerable()) // { // this.Categories.Add(new Category { Label = record.ProductTypeName }); // } // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "-2", Color = "3300ff" }); // chartParams.Add(new ChartParameter { Value = "-1", Color = "ff6600" }); // chartParams.Add(new ChartParameter { Value = "0", Color = "32df00" }); // foreach (ChartParameter parameter in chartParams) // { // try // { // IEnumerable<SandlerModels.DataIntegration.ProductTypeVM> productSalesCollection = queries.GetProductFirstSalesByMonth(currentUser, DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month); // if (productSalesCollection != null) // { // var productSales = from record in productSalesCollection // select new { Category = record.ProductTypeName, Value = record.AvgPrice }; // this.DataSetCollection.Add(new ChartDataSet { Color = parameter.Color, SeriesName = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // foreach (Category category in this.Categories) // { // lastDs = this.DataSetCollection.Last(); // lastDs.SetsCollection.Add(new SetValue { Label = category.Label, Link = ChartHelper.GeneratePageLink(lastDs.SeriesName, this.DrillChartIds) }); // } // foreach (var record in productSales) // { // foreach (SetValue set in lastDs.SetsCollection) // { // if (set.Label == record.Category) // set.Value = record.Value.ToString(); // } // } // } // } // catch (Exception ex) // { // throw new Exception("Error in ChartID.FirstSaleProductValueByProductByMonth:" + ex.Message); // } // //} // } // break; // case ChartID.ProductSoldToCompanyByProductByMonth: // string companyName; // try // { // companyName = new CompaniesRepository().GetById(long.Parse(SearchParameter)).COMPANYNAME; // this.Caption = this.Caption.Replace("Company Name", companyName); // productTypesSource = new ProductTypesRepository(); // if (currentUser.Role == SandlerRoles.FranchiseeOwner || currentUser.Role == SandlerRoles.FranchiseeUser) // products = productTypesSource.GetWithFranchiseeId(currentUser.FranchiseeID); // else // products = productTypesSource.GetAll(); // foreach (var record in products.Where(r => r.IsActive == true).AsEnumerable()) // { // this.Categories.Add(new Category { Label = record.ProductTypeName }); // } // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "-2", Color = "3300ff" }); // chartParams.Add(new ChartParameter { Value = "-1", Color = "ff6600" }); // chartParams.Add(new ChartParameter { Value = "0", Color = "32df00" }); // foreach (ChartParameter parameter in chartParams) // { // IEnumerable<SandlerModels.DataIntegration.ProductTypeVM> productSalesCollection = queries.GetProductSoldByCompanyByMonth(currentUser, DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month, int.Parse(this.SearchParameter)); // if (productSalesCollection != null) // { // var productSales = from record in productSalesCollection // select new { Category = record.ProductTypeName, Qty = record.Count }; // this.DataSetCollection.Add(new ChartDataSet { Color = parameter.Color, SeriesName = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // foreach (Category category in this.Categories) // { // lastDs = this.DataSetCollection.Last(); // lastDs.SetsCollection.Add(new SetValue { Label = category.Label, Link = ChartHelper.GeneratePageLink(lastDs.SeriesName, this.DrillChartIds, "SoldByCompany.aspx?searchParameter=" + this.SearchParameter + "&") }); // } // foreach (var record in productSales) // { // foreach (SetValue set in lastDs.SetsCollection) // { // if (set.Label == record.Category) // set.Value = record.Qty.ToString(); // } // } // } // } // } // catch (Exception ex) // { // throw new Exception("Error in ChartID.ProductSoldToCompanyByProductByMonth:" + ex.Message); // } // break; // case ChartID.ProductSoldBySalesRepByProductByMonth: // this.Caption = this.Caption.Replace("Sales Rep", this.SearchParameter); // productTypesSource = new ProductTypesRepository(); // if (currentUser.Role == SandlerRoles.FranchiseeOwner || currentUser.Role == SandlerRoles.FranchiseeUser) // products = productTypesSource.GetWithFranchiseeId(currentUser.FranchiseeID); // else // products = productTypesSource.GetAll(); // foreach (var record in products.Where(r => r.IsActive == true).AsEnumerable()) // { // this.Categories.Add(new Category { Label = record.ProductTypeName }); // } // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "-2", Color = "3300ff" }); // chartParams.Add(new ChartParameter { Value = "-1", Color = "ff6600" }); // chartParams.Add(new ChartParameter { Value = "0", Color = "32df00" }); // foreach (ChartParameter parameter in chartParams) // { // try // { // IEnumerable<SandlerModels.DataIntegration.ProductTypeVM> productSalesCollection = queries.GetProductSoldBySalesRepByMonth(currentUser, DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month, this.SearchParameter); // if (productSalesCollection != null) // { // var productSales = from record in productSalesCollection // select new { Category = record.ProductTypeName, Qty = record.Count }; // this.DataSetCollection.Add(new ChartDataSet { Color = parameter.Color, SeriesName = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // foreach (Category category in this.Categories) // { // lastDs = this.DataSetCollection.Last(); // lastDs.SetsCollection.Add(new SetValue { Label = category.Label, Link = ChartHelper.GeneratePageLink(lastDs.SeriesName, this.DrillChartIds, "SoldByCompanySalesRep.aspx?searchParameter=" + this.SearchParameter + "&") }); // } // foreach (var record in productSales) // { // foreach (SetValue set in lastDs.SetsCollection) // { // if (set.Label == record.Category) // set.Value = record.Qty.ToString(); // } // } // } // } // catch (Exception ex) // { // throw new Exception("Error in ChartID.ProductSoldToCompanyByProductByMonth:" + ex.Message); // } // //} // } // break; // #endregion // #region ClientReports Logic // case ChartID.SalesTotalsByMonthQty: // string[] monthNames = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthNames; // foreach (string monthName in monthNames) // writing out // { // if (!string.IsNullOrEmpty(monthName)) // this.Categories.Add(new Category { Label = monthName.Substring(0, 3) }); // } // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = (DateTime.Now.Year - 2).ToString(), Color = "3300ff" }); // chartParams.Add(new ChartParameter { Value = (DateTime.Now.Year - 1).ToString(), Color = "ff6600" }); // chartParams.Add(new ChartParameter { Value = DateTime.Now.Year.ToString(), Color = "32df00" }); // IEnumerable<SandlerModels.DataIntegration.SalesTotalByMonthVM> salesTotalData; // foreach (ChartParameter parameter in chartParams) // { // try // { // salesTotalData = queries.GetSalesTotalByYear(currentUser, int.Parse(parameter.Value)); // if (salesTotalData != null) // { // var salesDataForAYear = from opportunity in salesTotalData // group opportunity by new { opportunity.CloseDate.Month } // into grp // select new { Count = grp.Count(), MonthName = ChartHelper.GetMonthName(grp.Key.Month) }; // this.DataSetCollection.Add(new ChartDataSet { Color = parameter.Color, SeriesName = parameter.Value }); // foreach (Category category in this.Categories) // { // lastDs = this.DataSetCollection.Last(); // lastDs.SetsCollection.Add(new SetValue { Label = category.Label }); // } // foreach (var record in salesDataForAYear) // { // foreach (SetValue set in lastDs.SetsCollection) // { // if (set.Label == record.MonthName) // set.Value = record.Count.ToString(); // } // } // } // salesTotalData = null; // } // catch (Exception ex) // { // } // } // break; // case ChartID.CostOfSale: // IEnumerable<SandlerModels.DataIntegration.CostOfSaleVM> costofsaleData = queries.GetCostOfSale(currentUser); // this.DataSetCollection.Add(new ChartDataSet { Color = "0000FF", SeriesName = "Profit" });//0000FF blue // this.DataSetCollection.Add(new ChartDataSet { Color = "FF8C00", SeriesName = "Cost" });//FF8C00 darkorange // this.DataSetCollection.Add(new ChartDataSet { Color = "32CD32", SeriesName = "Revenue" });//32CD32 Lime green // foreach (SandlerModels.DataIntegration.CostOfSaleVM cosRecord in costofsaleData) // { // this.Categories.Add(new Category { Label = cosRecord.ProductName }); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = cosRecord.Profit.ToString() }); // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = cosRecord.Cost.ToString() }); // this.DataSetCollection[2].SetsCollection.Add(new SetValue { Value = cosRecord.Revenue.ToString() }); // } // break; // #endregion // #region BenchmarkReports Logic // case ChartID.BenchmarkSalesRepFranchisee: // try // { // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "-2" }); // chartParams.Add(new ChartParameter { Value = "-1" }); // chartParams.Add(new ChartParameter { Value = "0" }); // franchiseeName = new FranchiseeRepository().GetById(currentUser.FranchiseeID).Name; // Caption = Caption.Replace("Sales Rep", SearchParameter).Replace("Name", franchiseeName); // IEnumerable<SandlerModels.DataIntegration.BenchMarkVM> salesRepToFranchiseeData; // this.DataSetCollection.Add(new ChartDataSet { Color = "4F94CD", SeriesName = "Franchisee" });//4F94CD steelblue3 // this.DataSetCollection.Add(new ChartDataSet { Color = "FF8C00", SeriesName = "Rep" });//FF8C00 darkorange // Double totalValue = 0.0; // Double otherSalesRepsTotals = 0.0; // Double salesRepValue = 0.0; // foreach (ChartParameter parameter in chartParams) // { // salesRepToFranchiseeData = queries.GetBenchMarkSalesRepToFranchiseeByMonth(currentUser, DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month); // totalValue = salesRepToFranchiseeData.Sum(r => r.Value); // this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // otherSalesRepsTotals = (from record in salesRepToFranchiseeData.Where(r => r.KeyGroupId != SearchParameter) // select record).Sum(r => r.Value); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = ((otherSalesRepsTotals / totalValue) * 100).ToString("f2"), Link = ChartHelper.GeneratePageLink(DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM"), this.DrillChartIds, "SalesRepToFranchisee.aspx?searchParameter=" + this.SearchParameter + "&") }); // SandlerModels.DataIntegration.BenchMarkVM repRecord = salesRepToFranchiseeData.Where(r => r.KeyGroupId == SearchParameter).SingleOrDefault(); // salesRepValue = (repRecord == null) ? 0.0 : repRecord.Value; // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = ((salesRepValue / totalValue) * 100).ToString("f2"), Link = ChartHelper.GeneratePageLink(DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM"), this.DrillChartIds, "SalesRepToFranchisee.aspx?searchParameter=" + this.SearchParameter + "&") }); // } // } // catch (Exception ex) // { // throw new Exception("Exception in ChartID.BenchmarkSalesRepFranchisee:" + ex.Message); // } // break; // case ChartID.BenchmarkFranchiseeRegion: // try // { // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "-2" }); // chartParams.Add(new ChartParameter { Value = "-1" }); // chartParams.Add(new ChartParameter { Value = "0" }); // franchiseeName = new FranchiseeRepository().GetById(int.Parse(SearchParameter)).Name; // regionName = new RegionRepository().GetById(currentUser.RegionID).Name; // Caption = Caption.Replace("Region Name", regionName).Replace("Franchisee Name", franchiseeName); // IEnumerable<SandlerModels.DataIntegration.BenchMarkVM> salesFranchiseeToRegionsData; // this.DataSetCollection.Add(new ChartDataSet { Color = "32df00", SeriesName = "Region" }); // this.DataSetCollection.Add(new ChartDataSet { Color = "4F94CD", SeriesName = "Franchisee" }); // Double totalValue = 0.0; // Double otherFranchiseesTotals = 0.0; // Double franchiseeValue = 0.0; // foreach (ChartParameter parameter in chartParams) // { // salesFranchiseeToRegionsData = queries.GetBenchMarkFranchiseeToRegionsByMonth(currentUser, DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month); // totalValue = salesFranchiseeToRegionsData.Sum(r => r.Value); // this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // otherFranchiseesTotals = (from record in salesFranchiseeToRegionsData.Where(r => r.KeyGroupId != SearchParameter) // select record).Sum(r => r.Value); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = ((otherFranchiseesTotals / totalValue) * 100).ToString("f2"), Link = ChartHelper.GeneratePageLink(DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM"), this.DrillChartIds, "FranchiseeToRegion.aspx?searchParameter=" + this.SearchParameter + "&") }); // SandlerModels.DataIntegration.BenchMarkVM franchiseeRecord = salesFranchiseeToRegionsData.Where(r => r.KeyGroupId == SearchParameter).SingleOrDefault(); // franchiseeValue = (franchiseeRecord == null) ? 0.0 : franchiseeRecord.Value; // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = ((franchiseeValue / totalValue) * 100).ToString("f2"), Link = ChartHelper.GeneratePageLink(DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM"), this.DrillChartIds, "FranchiseeToRegion.aspx?searchParameter=" + this.SearchParameter + "&") }); // } // } // catch (Exception ex) // { // throw new Exception("Exception in ChartID.BenchmarkFranchiseeRegion:" + ex.Message); // } // break; // case ChartID.BenchmarkRegionCountry: // try // { // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "-2" }); // chartParams.Add(new ChartParameter { Value = "-1" }); // chartParams.Add(new ChartParameter { Value = "0" }); // regionName = new RegionRepository().GetById(int.Parse(SearchParameter)).Name; // countryName = new CountryRepository().GetById(currentUser.CountryID).Name; // Caption = Caption.Replace("Region Name", regionName).Replace("Country Name", countryName); // IEnumerable<SandlerModels.DataIntegration.BenchMarkVM> salesRegionToCountryData; // this.DataSetCollection.Add(new ChartDataSet { Color = "800080", SeriesName = "Country" });//800080 -- Purple // this.DataSetCollection.Add(new ChartDataSet { Color = "32df00", SeriesName = "Region" }); // Double totalValue = 0.0; // Double otherRegionsTotal = 0.0; // Double regionValue = 0.0; // foreach (ChartParameter parameter in chartParams) // { // salesRegionToCountryData = queries.GetBenchMarkRegionToCountryByMonth(currentUser, DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month); // totalValue = salesRegionToCountryData.Sum(r => r.Value); // this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // otherRegionsTotal = (from record in salesRegionToCountryData.Where(r => r.KeyGroupId != SearchParameter) // select record).Sum(r => r.Value); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = ((otherRegionsTotal / totalValue) * 100).ToString("f2"), Link = ChartHelper.GeneratePageLink(DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM"), this.DrillChartIds, "RegionToCountry.aspx?searchParameter=" + this.SearchParameter + "&") }); // SandlerModels.DataIntegration.BenchMarkVM regionRecord = salesRegionToCountryData.Where(r => r.KeyGroupId == SearchParameter).SingleOrDefault(); // regionValue = (regionRecord == null) ? 0.0 : regionRecord.Value; // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = ((regionValue / totalValue) * 100).ToString("f2"), Link = ChartHelper.GeneratePageLink(DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM"), this.DrillChartIds, "RegionToCountry.aspx?searchParameter=" + this.SearchParameter + "&") }); // } // } // catch (Exception ex) // { // throw new Exception("Exception in ChartID.BenchmarkRegionCountry:" + ex.Message); // } // break; // case ChartID.BenchmarkCountryAll: // try // { // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "-2" }); // chartParams.Add(new ChartParameter { Value = "-1" }); // chartParams.Add(new ChartParameter { Value = "0" }); // countryName = new CountryRepository().GetById(int.Parse(SearchParameter)).Name; // Caption = Caption.Replace("Country Name", countryName); // IEnumerable<SandlerModels.DataIntegration.BenchMarkVM> salesCountryAllData; // this.DataSetCollection.Add(new ChartDataSet { Color = "800080", SeriesName = "All" });//800080 -- Purple // this.DataSetCollection.Add(new ChartDataSet { Color = "00CED1", SeriesName = "Country" });//00CED1 -- darkturquoise // Double totalValue = 0.0; // Double otherCountriesTotal = 0.0; // Double countryValue = 0.0; // foreach (ChartParameter parameter in chartParams) // { // salesCountryAllData = queries.GetBenchMarkCountryAllByMonth(DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month); // totalValue = salesCountryAllData.Sum(r => r.Value); // this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // otherCountriesTotal = (from record in salesCountryAllData.Where(r => r.KeyGroupId != SearchParameter) // select record).Sum(r => r.Value); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = ((otherCountriesTotal / totalValue) * 100).ToString("f2"), Link = ChartHelper.GeneratePageLink(DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM"), this.DrillChartIds, "CountryToAll.aspx?searchParameter=" + this.SearchParameter + "&") }); // SandlerModels.DataIntegration.BenchMarkVM franchiseeRecord = salesCountryAllData.Where(r => r.KeyGroupId == SearchParameter).SingleOrDefault(); // countryValue = (franchiseeRecord == null) ? 0.0 : franchiseeRecord.Value; // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = ((countryValue / totalValue) * 100).ToString("f2"), Link = ChartHelper.GeneratePageLink(DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM"), this.DrillChartIds, "CountryToAll.aspx?searchParameter=" + this.SearchParameter + "&") }); // } // } // catch (Exception ex) // { // throw new Exception("Exception in ChartID.BenchmarkCountryAll:" + ex.Message); // } // break; // #endregion // #region AdHocReports logic // case ChartID.ClosedSalesAnalysis: // productTypesSource = new ProductTypesRepository(); // if (currentUser.Role == SandlerRoles.FranchiseeOwner || currentUser.Role == SandlerRoles.FranchiseeUser) // products = productTypesSource.GetWithFranchiseeId(currentUser.FranchiseeID); // else // products = productTypesSource.GetAll(); // if (this.SubType == ChartSubType.SalesValueOppSource || this.SubType == ChartSubType.SalesQuantityOppSource) // { // foreach (var record in new OppSourceeRepository().GetAll()) // { // this.Categories.Add(new Category { Label = record.Name }); // } // } // else if (this.SubType == ChartSubType.SalesValueOpportunityType || this.SubType == ChartSubType.SalesQuantityOpportunityType) // { // foreach (var record in new OpprtunityTypesRepository().GetAll()) // { // this.Categories.Add(new Category { Label = record.Name }); // } // } // else // { // foreach (var record in products.Where(r => r.IsActive == true).AsEnumerable()) // { // this.Categories.Add(new Category { Label = record.ProductTypeName }); // } // } // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "-2", Color = "8A4B08" }); // chartParams.Add(new ChartParameter { Value = "-1", Color = "0000FF" }); // chartParams.Add(new ChartParameter { Value = "0", Color = "ff9966" }); // searchForNewCompany = (HttpContext.Current.Session["searchForNewCompany"] == null) ? "" : HttpContext.Current.Session["searchForNewCompany"].ToString(); // searchCompanies = (HttpContext.Current.Session["searchCompanies"] == null) ? "" : HttpContext.Current.Session["searchCompanies"].ToString(); // foreach (ChartParameter parameter in chartParams) // { // try // { // if (this.SubType == ChartSubType.ProductsSoldBySalesValue) // this.Caption = "Sales Value By Product (By Month)"; // if (this.SubType == ChartSubType.ProductsSoldBySalesQuantity) // this.Caption = "Sales Quantity By Product (By Month)"; // if (this.SubType == ChartSubType.SalesValueOppSource) // this.Caption = "Sales Value By Opportunity Source (By Month)"; // if (this.SubType == ChartSubType.SalesQuantityOppSource) // this.Caption = "Sales Quantity By Opportunity Source (By Month)"; // if (this.SubType == ChartSubType.SalesValueOpportunityType) // this.Caption = "Sales Value By Opportunity Type (By Month)"; // if (this.SubType == ChartSubType.SalesQuantityOpportunityType) // this.Caption = "Sales Quantity By Opportunity Type (By Month)"; // IEnumerable<SandlerModels.DataIntegration.ClosedSalesVM> productTypeVMCollection = queries.GetClosedSalesAnalysis(currentUser, DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month, this.SubType.ToString(), searchForNewCompany, searchCompanies); // if (productTypeVMCollection != null) // { // var clientsWithProducts = from record in productTypeVMCollection // select new { Category = record.Name, SalesValue = record.AvgPrice, SalesQuantity = record.Count }; // this.DataSetCollection.Add(new ChartDataSet { Color = parameter.Color, SeriesName = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // string link = ""; // foreach (Category category in this.Categories) // { // lastDs = this.DataSetCollection.Last(); // link = string.Format("{0}?{1}={2}&{3}={4}&SubType={5}", "ClosedSalesAnalysis.aspx", ConfigurationManager.AppSettings["QueryStringParamDrillChartIDs"], this.DrillChartIds, ConfigurationManager.AppSettings["QueryStringParamDrillBy"], lastDs.SeriesName, this.SubType.ToString()); // //lastDs.SetsCollection.Add(new SetValue { Label = category.Label, Link = ChartHelper.GeneratePageLink(lastDs.SeriesName, this.DrillChartIds, this.SubType.ToString()) }); // lastDs.SetsCollection.Add(new SetValue { Label = category.Label, Link = link }); // } // foreach (var record in clientsWithProducts) // { // foreach (SetValue set in lastDs.SetsCollection) // { // if (set.Label == record.Category) // { // if (this.SubType.ToString().Contains("Value")) // { // set.Value = record.SalesValue.ToString(); // } // if (this.SubType.ToString().Contains("Quantity")) // { // set.Value = record.SalesQuantity.ToString(); // } // } // } // } // } // } // catch (Exception ex) // { // throw new Exception("Error in ChartID.NewClientsByProductTypeMonth:" + ex.Message); // } // } // //} // break; // case ChartID.PipelineOpportunityAnalysis: // productTypesSource = new ProductTypesRepository(); // if (currentUser.Role == SandlerRoles.FranchiseeOwner || currentUser.Role == SandlerRoles.FranchiseeUser) // products = productTypesSource.GetWithFranchiseeId(currentUser.FranchiseeID); // else // products = productTypesSource.GetAll(); // if (this.SubType == ChartSubType.SalesValueOppSource || this.SubType == ChartSubType.SalesQuantityOppSource) // { // foreach (var record in new OppSourceeRepository().GetAll()) // { // this.Categories.Add(new Category { Label = record.Name }); // } // } // else if (this.SubType == ChartSubType.SalesValueOpportunityType || this.SubType == ChartSubType.SalesQuantityOpportunityType) // { // foreach (var record in new OpprtunityTypesRepository().GetAll()) // { // this.Categories.Add(new Category { Label = record.Name }); // } // } // else // { // foreach (var record in products.Where(r => r.IsActive == true).AsEnumerable()) // { // this.Categories.Add(new Category { Label = record.ProductTypeName }); // } // } // chartParams = new List<ChartParameter>(); // chartParams.Add(new ChartParameter { Value = "0", Color = "8A4B08" }); // chartParams.Add(new ChartParameter { Value = "1", Color = "0000FF" }); // chartParams.Add(new ChartParameter { Value = "2", Color = "ff9966" }); // searchForNewCompany = (HttpContext.Current.Session["searchForNewCompany"] == null) ? "" : HttpContext.Current.Session["searchForNewCompany"].ToString(); // searchCompanies = (HttpContext.Current.Session["searchCompanies"] == null) ? "" : HttpContext.Current.Session["searchCompanies"].ToString(); // foreach (ChartParameter parameter in chartParams) // { // try // { // if (this.SubType == ChartSubType.ProductsSoldBySalesValue) // this.Caption = "Sales Value By Product (By Month)"; // if (this.SubType == ChartSubType.ProductsSoldBySalesQuantity) // this.Caption = "Sales Quantity By Product (By Month)"; // if (this.SubType == ChartSubType.SalesValueOppSource) // this.Caption = "Sales Value By Opportunity Source (By Month)"; // if (this.SubType == ChartSubType.SalesQuantityOppSource) // this.Caption = "Sales Quantity By Opportunity Source (By Month)"; // if (this.SubType == ChartSubType.SalesValueOpportunityType) // this.Caption = "Sales Value By Opportunity Type (By Month)"; // if (this.SubType == ChartSubType.SalesQuantityOpportunityType) // this.Caption = "Sales Quantity By Opportunity Type (By Month)"; // IEnumerable<SandlerModels.DataIntegration.PipelineOppAnalysisVM> productTypeVMCollection = queries.GetPipelineOpportunityAnalysis(currentUser, DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month, this.SubType.ToString(), searchForNewCompany, searchCompanies); // if (productTypeVMCollection != null) // { // var clientsWithProducts = from record in productTypeVMCollection // select new { Category = record.Name, SalesValue = record.AvgPrice, SalesQuantity = record.Count }; // this.DataSetCollection.Add(new ChartDataSet { Color = parameter.Color, SeriesName = DateTime.Now.AddMonths(int.Parse(parameter.Value)).ToString("MMM") }); // string link = ""; // foreach (Category category in this.Categories) // { // lastDs = this.DataSetCollection.Last(); // link = string.Format("{0}?{1}={2}&{3}={4}&SubType={5}", "PipelineOppAnalysis.aspx", ConfigurationManager.AppSettings["QueryStringParamDrillChartIDs"], this.DrillChartIds, ConfigurationManager.AppSettings["QueryStringParamDrillBy"], lastDs.SeriesName, this.SubType.ToString()); // lastDs.SetsCollection.Add(new SetValue { Label = category.Label, Link = link }); // } // foreach (var record in clientsWithProducts) // { // foreach (SetValue set in lastDs.SetsCollection) // { // if (set.Label == record.Category) // { // if (this.SubType.ToString().Contains("Value")) // { // set.Value = record.SalesValue.ToString(); // } // if (this.SubType.ToString().Contains("Quantity")) // { // set.Value = record.SalesQuantity.ToString(); // } // } // } // } // } // } // catch (Exception ex) // { // throw new Exception("Error in ChartID.PipelineOpportunityAnalysis:" + ex.Message); // } // } // //} // break; // #endregion // #region FranchiseeReports Logic case ChartID.NewAppointmentsBySourceMonth: this.Categories = (from record in uow.Repository<Tbl_AppointmentsSource>().GetAll().Where(r => r.IsActive == true) select new Category { Label = record.ApptSourceName }).ToList<Category>(); chartParams = MonthYearCombinations; if (chartParams != null) { if (chartParams.Count == 0) { MonthYearCombinations = null; chartParams.Add(new ChartParameter { Value = "-2", Color = "3300ff" }); chartParams.Add(new ChartParameter { Value = "-1", Color = "ff6600" }); chartParams.Add(new ChartParameter { Value = "0", Color = "32df00" }); } } foreach (ChartParameter parameter in chartParams) { try { yearToProcess = (string.IsNullOrEmpty(parameter.YearVal)) ? ((DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month > DateTime.Now.Month) ? DateTime.Now.AddYears(-1).Year : DateTime.Now.Year) : int.Parse(parameter.YearVal); monthToProcess = (MonthYearCombinations == null) ? DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month : int.Parse(parameter.Value); IEnumerable<AppointmentSourceVM> appointmentSourceVMcollection = queries.GetNewAppointmentSource(currentUser, monthToProcess, yearToProcess); if (appointmentSourceVMcollection != null) { var newAppointments = from record in appointmentSourceVMcollection select new { Category = record.SourceName, Count = record.Count }; this.DataSetCollection.Add(new ChartDataSet { Color = parameter.Color, SeriesName = ChartHelper.GetMonthName(monthToProcess) + " (" + yearToProcess.ToString() + ")" }); foreach (Category category in this.Categories) { lastDs = this.DataSetCollection.Last(); lastDs.SetsCollection.Add(new SetValue { Label = category.Label, Link = (currentUser.Role == SandlerRoles.Client) ? "" : ChartHelper.GeneratePageLink(ChartHelper.GetMonthName(monthToProcess), this.DrillChartIds) }); } foreach (var record in newAppointments) { foreach (SetValue set in lastDs.SetsCollection) { if (set.Label == record.Category) set.Value = record.Count.ToString(); } } } } catch (Exception ex) { throw new Exception("Error in ChartID.NewAppointmentsBySourceMonth:" + ex.Message); } //} } break; case ChartID.NewClientsByProductTypeMonth: //productTypesSource = new ProductTypesRepository(); if (currentUser.Role == SandlerRoles.FranchiseeOwner || currentUser.Role == SandlerRoles.FranchiseeUser) products = uow.Repository<Tbl_ProductType>().GetAll().Where(r=>(r.FranchiseeId == 0 || r.FranchiseeId == currentUser.FranchiseeID) && r.IsActive == true);//productTypesSource.GetWithFranchiseeId(currentUser.FranchiseeID); else products = uow.Repository<Tbl_ProductType>().GetAll();//productTypesSource.GetAll(); foreach (var record in products.Where(r => r.IsActive == true).AsEnumerable()) { this.Categories.Add(new Category { Label = record.ProductTypeName }); } chartParams = MonthYearCombinations; if (chartParams != null) { if (chartParams.Count == 0) { MonthYearCombinations = null; chartParams.Add(new ChartParameter { Value = "-2", Color = "8A4B08" }); chartParams.Add(new ChartParameter { Value = "-1", Color = "0000FF" }); chartParams.Add(new ChartParameter { Value = "0", Color = "ff9966" }); } } foreach (ChartParameter parameter in chartParams) { try { yearToProcess = (string.IsNullOrEmpty(parameter.YearVal)) ? ((DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month > DateTime.Now.Month) ? DateTime.Now.AddYears(-1).Year : DateTime.Now.Year) : int.Parse(parameter.YearVal); monthToProcess = (MonthYearCombinations == null) ? DateTime.Now.AddMonths(int.Parse(parameter.Value)).Month : int.Parse(parameter.Value); IEnumerable<ProductTypeVM> productTypeVMCollection = queries.GetNewClientsByProductType(currentUser, monthToProcess, yearToProcess); if (productTypeVMCollection != null) { var newClientsByProducts = from record in productTypeVMCollection select new { Category = record.ProductTypeName, Count = record.Count }; this.DataSetCollection.Add(new ChartDataSet { Color = parameter.Color, SeriesName = ChartHelper.GetMonthName(monthToProcess) + " (" + yearToProcess.ToString() + ")" }); foreach (Category category in this.Categories) { lastDs = this.DataSetCollection.Last(); lastDs.SetsCollection.Add(new SetValue { Label = category.Label, Link = (currentUser.Role == SandlerRoles.Client) ? "" : ChartHelper.GeneratePageLink(ChartHelper.GetMonthName(monthToProcess), this.DrillChartIds) }); } foreach (var record in newClientsByProducts) { foreach (SetValue set in lastDs.SetsCollection) { if (set.Label == record.Category) set.Value = record.Count.ToString(); } } } } catch (Exception ex) { throw new Exception("Error in ChartID.NewClientsByProductTypeMonth:" + ex.Message); } } //} break; case ChartID.NewClientQuantityAverageContractPriceByMonth: foreach (ChartParameter param in MonthYearCombinations) { this.Categories.Add(new Category { Label = ChartHelper.GetMonthName(int.Parse(param.Value)) }); } if (this.Categories.Count == 0) { this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(-2).ToString("MMM") }); this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(-1).ToString("MMM") }); this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(0).ToString("MMM") }); } this.DataSetCollection.Add(new ChartDataSet { Color = "0000FF", SeriesName = "New Clients" }); this.DataSetCollection.Add(new ChartDataSet { Color = "ff6600", SeriesName = "Ave Contract Price" }); foreach (Category catagory in this.Categories) { try { yearToProcess = (DateTime.ParseExact(catagory.Label, "MMM", null).Month > DateTime.Now.Month) ? DateTime.Now.AddYears(-1).Year : DateTime.Now.Year; monthToProcess = DateTime.ParseExact(catagory.Label, "MMM", null).Month; int newClients = queries.GetNewClientCount(currentUser, monthToProcess, yearToProcess); decimal aveContractPrice = queries.GetAveContractPrice(currentUser, monthToProcess, yearToProcess); if (newClients > 0 && aveContractPrice > 0) { this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = newClients.ToString(), Link = (currentUser.Role == SandlerRoles.Client) ? "" : ChartHelper.GeneratePageLink(catagory.Label, this.DrillChartIds) }); this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = (aveContractPrice / 5).ToString(), Link = (currentUser.Role == SandlerRoles.Client) ? "" : ChartHelper.GeneratePageLink(catagory.Label, this.DrillChartIds) }); } else { this.DataSetCollection[0].SetsCollection.Add(new SetValue()); this.DataSetCollection[1].SetsCollection.Add(new SetValue()); } if (MonthYearCombinations != null) //Check CustomChart reports request { //After done process category change its label with month and year combination catagory.Label = catagory.Label + "(" + yearToProcess.ToString() + ")"; } } catch (System.InvalidOperationException) { } } break; case ChartID.ClassHeadcountByCourseIndustryMonth: this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(-2).ToString("MMM") }); this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(-1).ToString("MMM") }); this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(0).ToString("MMM") }); this.DataSetCollection.Add(new ChartDataSet { Color = "ff6600", SeriesName = "Course" }); this.DataSetCollection.Add(new ChartDataSet { Color = "32df00", SeriesName = "Industry" }); foreach (Category catagory in this.Categories) { try { int classHeadCountsCourse = queries.GetClassHeadCountsCourse(currentUser, DateTime.ParseExact(catagory.Label, "MMM", null).Month); int classHeadCountsIndustry =queries.GetClassHeadCountsIndustry(currentUser, DateTime.ParseExact(catagory.Label, "MMM", null).Month); //if (classHeadCountsCourse > 0 && classHeadCountsIndustry > 0) //{ this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = (classHeadCountsCourse > 0) ? classHeadCountsCourse.ToString() : "", Link = (currentUser.Role == SandlerRoles.Client) ? "" : (classHeadCountsCourse > 0) ? ChartHelper.GeneratePageLink(catagory.Label, this.DrillChartIds) : "" }); this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = (classHeadCountsIndustry > 0) ? classHeadCountsIndustry.ToString() : "", Link = (currentUser.Role == SandlerRoles.Client) ? "" : (classHeadCountsIndustry > 0) ? ChartHelper.GeneratePageLink(catagory.Label, this.DrillChartIds) : "" }); //} } catch (System.InvalidOperationException) { } } //} break; case ChartID.ActualDollarsBookedComparisonGoal: this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(-4).ToString("MMM") }); this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(-3).ToString("MMM") }); this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(-2).ToString("MMM") }); this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(-1).ToString("MMM") }); this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(0).ToString("MMM") }); this.Categories.Add(new Category { Label = DateTime.Now.AddMonths(1).ToString("MMM") }); this.DataSetCollection.Add(new ChartDataSet { Color = "0066ff", SeriesName = "$$Booked" }); this.DataSetCollection.Add(new ChartDataSet { Color = "ffff99", SeriesName = "% of Goal" }); foreach (Category catagory in this.Categories) { try { decimal actualDollarsBooked = queries.GetActualDollarsBooked(currentUser, DateTime.ParseExact(catagory.Label, "MMM", null).Month); decimal goalOfDollarsBooked = queries.GetGoalOfDollarsBooked(currentUser, DateTime.ParseExact(catagory.Label, "MMM", null).Month); //if (actualDollarsBooked > 0 && goalOfDollarsBooked > 0) //{ this.DataSetCollection[0].SetsCollection.Add(new SetValue { Label = catagory.Label, Value = actualDollarsBooked.ToString(), Link = (currentUser.Role == SandlerRoles.Client) ? "" : ChartHelper.GeneratePageLink("", this.DrillChartIds) }); this.DataSetCollection[1].SetsCollection.Add(new SetValue { Label = catagory.Label, Value = ((Convert.ToDouble(actualDollarsBooked) / Convert.ToDouble(goalOfDollarsBooked)) * 100).ToString("#.##"), Link = (currentUser.Role == SandlerRoles.Client) ? "" : ChartHelper.GeneratePageLink("", this.DrillChartIds) }); //} } catch (System.InvalidOperationException) { } } break; // #endregion // case ChartID.GapAnalysis: // this.Categories.Add(new Category { Label = "Sales Cycle Time" }); // this.Categories.Add(new Category { Label = "Sales Efficiency" }); // this.Categories.Add(new Category { Label = "Sales Qualification" }); // this.Categories.Add(new Category { Label = "Sales Rep Retention" }); // this.Categories.Add(new Category { Label = "Quota Achievement" }); // this.Categories.Add(new Category { Label = "Sandler Trng Benefits" }); // GATracker gaRecord = null; // GapAnalysisRepository gaData = new GapAnalysisRepository(); // this.DataSetCollection.Add(new ChartDataSet { Color = "0000FF", SeriesName = "As-Is" }); // this.DataSetCollection.Add(new ChartDataSet { Color = "8A4B08", SeriesName = "To-Be" }); // gaRecord = gaData.GetGATrackerById(int.Parse(SearchParameter)); // if (gaRecord != null) // { // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = gaRecord.AsIsSalesCycleTimePercentVal.Value.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = gaRecord.AsIsSalesEfficiencyPercentVal.Value.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = gaRecord.AsIsSalesQualificationPercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = gaRecord.AsIsSalesRepRetentionPercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = gaRecord.AsIsQuotaAchievementPercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[0].SetsCollection.Add(new SetValue { Value = gaRecord.AsIsTrngBenefitsPercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = gaRecord.ToBeSalesCycleTimePercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = gaRecord.ToBeSalesEfficiencyPercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = gaRecord.ToBeSalesQualificationPercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = gaRecord.ToBeSalesRepRetentionPercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = gaRecord.ToBeQuotaAchievementPercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // this.DataSetCollection[1].SetsCollection.Add(new SetValue { Value = gaRecord.ToBeTrngBenefitsPercentVal.ToString(), Link = "GapAnalysisCreate.aspx" }); // } // break; // default: // break; } } catch (Exception ex) { throw ex; } }