public async Task <ProductCategorySalesReport> RetrieveProductCategorySalesReportAsync(
     ProductCategorySalesReport master,
     object[] salesmonth,
     CancellationToken cancellationToken = default)
 {
     return(await _genericService.Get <ProductCategorySalesReport>()
            .RetrieveReportAsync(master, salesmonth, cancellationToken));
 }
        private void queryBarReportByYear()
        {
            string salesYear = "2013";

            object[] yearMonth   = new object[12];
            object[] resultMonth = new object[12];

            //yearMonth[0] = subCategoryId;
            for (int month = 0; month < 12; month++)
            {
                yearMonth[month]   = salesYear + string.Format("{0:00}", month + 1);
                resultMonth[month] = string.Format("{0:00}", month + 1) + "/" + salesYear;
            }

            var master = new ProductCategorySalesReport();

            productCategorySalesReport = _reportService.RetrieveProductCategorySalesReport(master, yearMonth);
            ConvertDataForReport(productCategorySalesReport, resultMonth);
        }
        /// <summary>
        /// Convert the database data to report data
        /// </summary>
        /// <param name="productCategorySalesReport"></param>
        /// <param name="yearMonth"></param>
        private void ConvertDataForReport(ProductCategorySalesReport productCategorySalesReport, object[] yearMonth)
        {
            List <string> ProCategoryName = productCategorySalesReport.OrderReportMonth1
                                            .Select(x => x.ProductCategoryName).ToList();

            List <int> salesQtys = null;
            Dictionary <string, List <int> > result = new Dictionary <string, List <int> >();

            foreach (var name in ProCategoryName)
            {
                salesQtys = new List <int>();
                salesQtys.Add(productCategorySalesReport.OrderReportMonth1.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth2.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth3.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth4.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth5.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth6.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth7.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth8.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth9.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth10.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth11.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                salesQtys.Add(productCategorySalesReport.OrderReportMonth12.Where(x => x.ProductCategoryName.Equals(name)).FirstOrDefault().TotalSalesqty);
                result.Add(name, salesQtys);
            }

            string proCat    = JsonConvert.SerializeObject(ProCategoryName);
            string proCatQty = JsonConvert.SerializeObject(result
                                                           .Select(x => new
            {
                name = x.Key,
                type = "bar",
                data = x.Value
            }));

            categoryReportByYear.Json_ProductSaleMonth = JsonConvert.SerializeObject(yearMonth);
            categoryReportByYear.Json_ProductCategory  = proCat;
            categoryReportByYear.Json_ProductSaleSqty  = proCatQty;
        }
 public ProductCategorySalesReport RetrieveProductCategorySalesReport(
     ProductCategorySalesReport master, params object[] salesmonth)
 {
     return(_genericService.Get <ProductCategorySalesReport>().RetrieveReport(master, salesmonth));
 }