public IChart Get(string strChartId, string strDrillBy, string strUserName, string strSearchParameter)
        {
            ChartID idSelected;
            IChart chartToLoad = null;
            TBL_CHART dbChart = null;
            ChartRepository cR = null;

            idSelected = (ChartID)Enum.Parse(typeof(ChartID), strChartId, true);

            cR = new ChartRepository();
            dbChart = cR.GetAll().Where(c => c.ChartID == strChartId && c.IsActive == true).SingleOrDefault();

            if (dbChart.TypeOfChart == "Chart")
            {
                chartToLoad = new Chart() { BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = idSelected, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs, DrillOverride = false, DrillBy = (string.IsNullOrEmpty(strDrillBy)) ? "" : strDrillBy };
                chartToLoad.LoadChart();
                chartToLoad.CreateChart();
            }
            else if (dbChart.TypeOfChart == "PieChart")
            {
                chartToLoad = new PieChart() { BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = idSelected, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs, DrillOverride = false, DrillBy = (string.IsNullOrEmpty(strDrillBy)) ? "" : strDrillBy };
                ((PieChart)chartToLoad).LoadChart();
                ((PieChart)chartToLoad).CreateChart();
            }
            else if (dbChart.TypeOfChart == "BarChart")
            {
                chartToLoad = new BarChart() { BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = idSelected, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs, DrillOverride = false, DrillBy = (string.IsNullOrEmpty(strDrillBy)) ? "" : strDrillBy };
                ((BarChart)chartToLoad).LoadChart();
                ((BarChart)chartToLoad).CreateChart();
            }
            return chartToLoad;
        }
        public ActionResult ShowChart()
        {
            IEnumerable <Chart> chartData;

            using (MySqlConnection conn = DBUtils.GetConnection())
            {
                ChartRepository repo = new ChartRepository(conn);
                chartData = repo.GetAll();
            }
            return(PartialView("ChartView", chartData));
        }
    private void PlotGraphs()
    {
        try
        {
            ChartID idSelected;
            IChart chartToLoad;

            foreach (Control control in Page.Master.FindControl("MainContent").Controls)
            {
                if (control.GetType().Name == "ChartLiteral")
                {
                    SandlerControls.ChartLiteral literalControl = control as SandlerControls.ChartLiteral;
                    literalControl.Text = "";

                    idSelected = (ChartID)Enum.Parse(typeof(ChartID), literalControl.ID, true);

                    ChartRepository cR = new ChartRepository();
                    SandlerModels.TBL_CHART dbChart = cR.GetAll().Where(c => c.ChartID == literalControl.ID && c.IsActive == true).SingleOrDefault();

                    if (dbChart.TypeOfChart == "Chart")
                    {
                        chartToLoad = new Chart() { BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = idSelected, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs };
                        chartToLoad.LoadChart(CurrentUser);
                        chartToLoad.CreateChart();
                        literalControl.Text = FusionCharts.RenderChart(@"FusionChartLib/" + ((Chart)chartToLoad).SWF, "", ((Chart)chartToLoad).ChartXML, literalControl.ID, literalControl.Width, literalControl.Height, false, true);
                    }
                    else if (dbChart.TypeOfChart == "PieChart")
                    {
                        chartToLoad = new PieChart() { BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = idSelected, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs };
                        ((PieChart)chartToLoad).LoadChart(CurrentUser);
                        ((PieChart)chartToLoad).CreateChart();

                        literalControl.Text = FusionCharts.RenderChart(@"FusionChartLib/" + ((PieChart)chartToLoad).SWF, "", ((PieChart)chartToLoad).ChartXML, literalControl.ID, literalControl.Width, literalControl.Height, false, true);
                    }
                    else if (dbChart.TypeOfChart == "BarChart")
                    {
                        chartToLoad = new BarChart() { BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = idSelected, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs };
                        ((BarChart)chartToLoad).LoadChart(CurrentUser);
                        ((BarChart)chartToLoad).CreateChart();
                        literalControl.Text = FusionCharts.RenderChart(@"FusionChartLib/" + ((BarChart)chartToLoad).SWF, "", ((BarChart)chartToLoad).ChartXML, literalControl.ID, literalControl.Width, literalControl.Height, false, true); ;
                    }

                }
            }

        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
        public IChart Get(string id, string strChartIds, string strChartSubType, string strDrillBy, string strUserName, string strSearchParameter, [System.Web.Http.ModelBinding.ModelBinder] List<ChartParameter> monthYearCombinations)
        {
            string[] chartIds = strChartIds.Split(new char[] { '_' });
            string chartSubtype = strChartSubType;
            ChartID idSelected;
            ChartRepository cR;
            SandlerModels.TBL_CHART dbChart;
            IChart chartToLoad = null;
            UserModel CurrentUser;
            CurrentUser = new UserModel(strUserName);
            new UserDataModel().Load(CurrentUser);
            foreach (string chartId in chartIds)
            {

                idSelected = (ChartID)Enum.Parse(typeof(ChartID), chartId, true);

                cR = new ChartRepository();
                dbChart = cR.GetAll().Where(c => c.ChartID == chartId && c.IsActive == true).SingleOrDefault();

                if (dbChart.TypeOfChart == "Chart")
                {
                    chartToLoad = new Chart() { SearchParameter = strSearchParameter, SubType = string.IsNullOrEmpty(chartSubtype) ? ChartSubType.NoSubType : (ChartSubType)Enum.Parse(typeof(ChartSubType), chartSubtype), BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = idSelected, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs, DrillOverride = false, DrillBy = (string.IsNullOrEmpty(strDrillBy)) ? "" : strDrillBy, MonthYearCombinations = monthYearCombinations };
                    chartToLoad.LoadChart(CurrentUser);
                    chartToLoad.CreateChart();
                }
                else if (dbChart.TypeOfChart == "PieChart")
                {
                    chartToLoad = new PieChart() { SearchParameter = strSearchParameter, SubType = string.IsNullOrEmpty(chartSubtype) ? ChartSubType.NoSubType : (ChartSubType)Enum.Parse(typeof(ChartSubType), chartSubtype), BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = idSelected, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs, DrillOverride = false, DrillBy = (string.IsNullOrEmpty(strDrillBy)) ? "" : strDrillBy };
                    ((PieChart)chartToLoad).LoadChart(CurrentUser);
                    ((PieChart)chartToLoad).CreateChart();
                }
                else if (dbChart.TypeOfChart == "BarChart")
                {
                    chartToLoad = new BarChart() { SearchParameter = strSearchParameter, SubType = string.IsNullOrEmpty(chartSubtype) ? ChartSubType.NoSubType : (ChartSubType)Enum.Parse(typeof(ChartSubType), chartSubtype), BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = idSelected, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs, DrillOverride = false, DrillBy = (string.IsNullOrEmpty(strDrillBy)) ? "" : strDrillBy };
                    ((BarChart)chartToLoad).LoadChart(CurrentUser);
                    ((BarChart)chartToLoad).CreateChart();
                }
            }
            return chartToLoad;
        }
    private void PlotSecondIterationGraph(string chartId, string drillBy, string subType)
    {
        SandlerControls.ChartLiteral chartLiteral = new SandlerControls.ChartLiteral();
        chartLiteral.ID = "chartLiteralClosedSalesAnalysis";
        chartLiteral.Width = "80%";
        chartLiteral.Height = "450";

        ChartRepository cR = new ChartRepository();
        SandlerModels.TBL_CHART dbChart = cR.GetAll().Where(c => c.ChartID == chartId && c.IsActive == true).SingleOrDefault();

        PieChart chartToLoad = new PieChart() { SubType = (ChartSubType)Enum.Parse(typeof(ChartSubType), subType), BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = ChartID.ClosedSalesAnalysisBySource, enableRotation = dbChart.EnableRotation, DrillChartIds = dbChart.DrillLevelChartIDs, DrillOverride = false, DrillBy = drillBy};
        chartToLoad.LoadChart(CurrentUser);
        chartToLoad.CreateChart();

        chartLiteral.Text = FusionCharts.RenderChart(Page.ResolveClientUrl("~/FusionChartLib/" + chartToLoad.SWF), "", ((PieChart)chartToLoad).ChartXML, chartLiteral.ID, chartLiteral.Width, chartLiteral.Height, false, true);
        (plotChart.ContentTemplateContainer.FindControl("chartPanel") as Panel).Controls.Add(chartLiteral);
    }
    private void PlotFirstIterationGraph()
    {
        ChartSubType subType;
        subType = GetAnalysisSubType();
        Session["searchForNewCompany"] = GetNewCompanySelection();
        Session["searchCompanies"] = GetCompaniesSelection();

        SandlerControls.ChartLiteral chartLiteral = new SandlerControls.ChartLiteral();
        chartLiteral.ID = "chartLiteralClosedSalesAnalysis";
        chartLiteral.Width = "80%";
        chartLiteral.Height = "450";

        ChartRepository cR = new ChartRepository();
        SandlerModels.TBL_CHART dbChart = cR.GetAll().Where(c => c.ChartID == "ClosedSalesAnalysis" && c.IsActive == true).SingleOrDefault();

        Chart chartToLoad = new Chart() { SubType = subType, BGAlpha = dbChart.BgAlpha, BGColor = dbChart.BgColor, CanvasBGAlpha = dbChart.CanvasBgAlpha, CanvasBGColor = dbChart.CanvasBgColor, Caption = dbChart.Caption, SWF = dbChart.SWFile, NumberSuffix = dbChart.NumberSuffix, PieRadius = dbChart.PieRadius, showLabels = dbChart.ShowLabels, showLegend = dbChart.ShowLegend, XaxisName = dbChart.XaxisName, YaxisName = dbChart.YaxisName, Id = ChartID.ClosedSalesAnalysis, enableRotation = dbChart.EnableRotation, DrillChartIds = (string.IsNullOrEmpty(dbChart.DrillLevelChartIDs)) ? "" : dbChart.DrillLevelChartIDs, DrillOverride = false, DrillBy = "" };
        chartToLoad.LoadChart(CurrentUser);
        chartToLoad.CreateChart();

        chartLiteral.Text = FusionCharts.RenderChart(Page.ResolveClientUrl("~/FusionChartLib/" + chartToLoad.SWF), "", chartToLoad.ChartXML, "ClosedSalesAnalysis", chartLiteral.Width, chartLiteral.Height, false, true);
        (plotChart.ContentTemplateContainer.FindControl("chartPanel") as Panel).Controls.Add(chartLiteral);
    }