Exemplo n.º 1
0
        public ActionResult GetDateBasedChartImage(DateBasedFilterType filterType, DateBasedChartType chartType, DateTime startDate, DateTime endDate, Guid filterId)
        {
            IList <DateBasedStatistics> stats;

            switch (filterType)
            {
            case DateBasedFilterType.Regions:
                stats = _statisticsManager.GetRegionStatistics(startDate.ToUniversalTime(), endDate.ToUniversalTime().AddDays(1.0), filterId);
                break;

            case DateBasedFilterType.SipAccounts:
                stats = _statisticsManager.GetSipStatistics(startDate.ToUniversalTime(), endDate.ToUniversalTime().AddDays(1.0), filterId);
                break;

            default:
                stats = _statisticsManager.GetCodecTypeStatistics(startDate.ToUniversalTime(), endDate.ToUniversalTime().AddDays(1.0), filterId);
                break;
            }

            var chart = new Chart(800, 600)
                        .AddTitle(chartType == DateBasedChartType.NumberOfCalls ? Resources.Stats_Number_Of_Calls : Resources.Stats_Total_Call_Time_In_Minutes)
                        .SetXAxis(title: Resources.Date)
                        .AddSeries(
                chartType: "Column",
                xValue: stats.Select(s => s.Date.ToString("yyyy-MM-dd", CultureInfo.CreateSpecificCulture("sv-SE"))).ToArray(),
                yValues: stats.Select(s => chartType == DateBasedChartType.NumberOfCalls ? s.NumberOfCalls : s.TotaltTimeForCalls).ToArray())
            ;

            return(File(chart.GetBytes("png"), "image/png"));
        }
Exemplo n.º 2
0
        public ActionResult GetDateBasedCsv(DateBasedFilterType filterType, DateTime startDate, DateTime endDate, Guid filterId)
        {
            IList <DateBasedStatistics> stats;

            switch (filterType)
            {
            case DateBasedFilterType.Regions:
                stats = _statisticsManager.GetRegionStatistics(startDate.ToUniversalTime(), endDate.ToUniversalTime().AddDays(1.0), filterId);
                break;

            case DateBasedFilterType.SipAccounts:
                stats = _statisticsManager.GetSipStatistics(startDate.ToUniversalTime(), endDate.ToUniversalTime().AddDays(1.0), filterId);
                break;

            default:
                stats = _statisticsManager.GetCodecTypeStatistics(startDate.ToUniversalTime(), endDate.ToUniversalTime().AddDays(1.0), filterId);
                break;
            }

            var csv = new StringBuilder();

            csv.AddCsvValue(Resources.Date)
            .AddCsvSeparator()
            .AddCsvValue(Resources.Calls)
            .AddCsvSeparator()
            .AddCsvValue(Resources.Call_Time + "/" + Resources.Total)
            .AddCsvSeparator()
            .AddCsvValue(Resources.Call_Time + "/" + Resources.Average)
            .AddCsvSeparator()
            .AddCsvValue(Resources.Call_Time + "/" + Resources.Shortest)
            .AddCsvSeparator()
            .AddCsvValue(Resources.Call_Time + "/" + Resources.Longest)
            .AppendLine();
            var svCulture = CultureInfo.CreateSpecificCulture("sv-SE");

            foreach (var row in stats)
            {
                csv.AddCsvValue(row.Date.ToString("yyyy-MM-dd", svCulture))
                .AddCsvSeparator()
                .AddCsvValue(row.NumberOfCalls)
                .AddCsvSeparator()
                .AddCsvValue(row.TotaltTimeForCalls, 0, svCulture)
                .AddCsvSeparator()
                .AddCsvValue(row.AverageTime, 0, svCulture)
                .AddCsvSeparator()
                .AddCsvValue(row.MinCallTime, 0, svCulture)
                .AddCsvSeparator()
                .AddCsvValue(row.MaxCallTime, 0, svCulture)
                .AppendLine();
            }
            var encoding = Encoding.GetEncoding(1252);
            var prefix   = filterType == DateBasedFilterType.CodecTypes
                ? Resources.Codec_Type
                : filterType == DateBasedFilterType.SipAccounts ? Resources.Sip_Accounts : Resources.Region;

            return(File(encoding.GetBytes(csv.ToString()), "text/csv",
                        string.Format("{0}_{1:yyMMdd}_{2:yyMMdd}.csv", prefix, startDate, endDate)));
        }
Exemplo n.º 3
0
        public ActionResult GetDateBasedChart(DateBasedFilterType filterType, DateBasedChartType chartType, DateTime startDate, DateTime endDate, Guid filterId)
        {
            var model = new DateBasedChartModel
            {
                FilterType = filterType,
                ChartType  = chartType,
                EndDate    = endDate,
                FilterId   = filterId,
                StartDate  = startDate
            };

            return(PartialView(model));
        }