예제 #1
0
 public double GetTotalAsync(int cartId)
 {
     myHandler = new BusinessLogicHandler();
     IEnumerable<Book> myBooks = myHandler.GetBooks();
     IEnumerable<Technology> myGadget = myHandler.GetTechnology();
     IEnumerable<CartItem> myItems;
     double final = 0;
     myItems = GetCartItemsAsync(cartId);
     if (myItems != null)
     {
         if (myBooks != null )
         {
             var totalBook = from item in myItems
                         join bi in myBooks on item.ProductID equals bi.ProductID
                         where item.ProductID == bi.ProductID
                         select (item.Quantity * bi.SellingPrice);
             final = (double)totalBook.Sum();
             if (myGadget != null)
             {
                 var total = from item in myItems
                             join gadget in myGadget on item.ProductID equals gadget.ProductID
                             where gadget.ProductID == item.ProductID
                             select (item.Quantity * gadget.SellingPrice);
                 final += (double)total.Sum();
             }
         }
         return Math.Round(final, 2);
     }
     else
         return 0.00;
 }
예제 #2
0
 public ActionResult AdminIndex(int? page)
 {
     myHandler = new BusinessLogicHandler();
     List<Book> myBookList = new List<Book>();
     myBookList = myHandler.GetBooks();
     myBookList.OrderBy(m => m.DateAdded);
     IEnumerable<BookCategory> myType = myHandler.GetBookCategoryList();
     ViewBag.BookTypeBag = myType;
     return View(myBookList.ToList().ToPagedList(page ?? 1, 20));
 }
예제 #3
0
 public ActionResult Delete(int ProductID)
 {
     AddNewBookViewModel model = new AddNewBookViewModel();
     model.books = new Book();
     model.books = book;
     myHandler = new BusinessLogicHandler();
     model.books = myHandler.GetBooks().Single(bk => bk.ProductID == ProductID);
     return View(model);
 }
예제 #4
0
        public ActionResult Index()
        {
            #region Prep Utilities

            BusinessLogicHandler myHandler = new BusinessLogicHandler();
            AdminIndexViewModel model = new AdminIndexViewModel();
            model.BookSales = new List<CategorySalesPie>();
            model.DeviceSales = new List<CategorySalesPie>();

            #endregion

            #region Get Book Data

            IEnumerable<InvoiceItem> soldItems = myHandler.Sales();
            IEnumerable<Book> books = myHandler.GetBooks();
            IEnumerable<BookCategory> categories = myHandler.GetBookCategoryList();

            #endregion

            #region Get Device Data
            IEnumerable<TechCategory> DeviceCategories = myHandler.GetTechnologyTypeList();
            IEnumerable<Technology> Devices = myHandler.GetTechnology();
            #endregion

            #region Build Book Data Set

            var dataSet = from soldT in soldItems
                          join book in books on soldT.ProductID equals book.ProductID
                          join category in categories on book.BookCategoryID equals category.BookCategoryID
                          select new { soldT.Price, soldT.Quantity, category.CategoryName };
            List<string> names = new List<string>();
            foreach (var item in dataSet)
            {
                if (names.Contains(item.CategoryName))
                {
                    CategorySalesPie pie = new CategorySalesPie();
                    pie.Category = item.CategoryName;
                    pie = model.BookSales.SingleOrDefault(m => m.Category == item.CategoryName);
                    int x = model.BookSales.IndexOf(pie);
                    if(x > -1)
                    {
                        model.BookSales[x].TotalSales += model.BookSales[x].TotalSales + (item.Price * item.Quantity);
                    }
                }
                else
                {
                    CategorySalesPie modelItem = new CategorySalesPie();
                    names.Add(item.CategoryName);
                    modelItem.Category = item.CategoryName;
                    modelItem.TotalSales = (item.Price * item.Quantity);
                    model.BookSales.Add(modelItem);
                }

            }

            #region Trial

            System.Web.Script.Serialization.JavaScriptSerializer oSerializer =
                new System.Web.Script.Serialization.JavaScriptSerializer();

            #endregion

            //model.chartData = oSerializer.Serialize(model.BookSales.ToArray());
            //model.chartData =  JsonConvert.SerializeObject(model.BookSales.ToArray());
            //model.chartData = JsonConvert.SerializeObject(model.oData);
            #endregion

            #region Build Device Data Set

            var DeviceDataSet = from soldT in soldItems
                                join device in Devices on soldT.ProductID equals device.ProductID
                                join category in DeviceCategories on device.TechCategoryID equals category.TechCategoryID
                                select new { soldT.Price, soldT.Quantity, category.CategoryName };
            List<string> namesList = new List<string>();
            foreach (var item in DeviceDataSet)
            {
                if (namesList.Contains(item.CategoryName))
                {
                    CategorySalesPie pie = new CategorySalesPie();
                    pie.Category = item.CategoryName;
                    pie = model.DeviceSales.SingleOrDefault(m => m.Category == item.CategoryName);
                    int x = model.DeviceSales.IndexOf(pie);
                    if (x > -1)
                    {
                        model.DeviceSales[x].TotalSales += model.DeviceSales[x].TotalSales + (item.Price * item.Quantity);
                    }
                }
                else
                {
                    CategorySalesPie modelItem = new CategorySalesPie();
                    namesList.Add(item.CategoryName);
                    modelItem.Category = item.CategoryName;
                    modelItem.TotalSales = (item.Price * item.Quantity);
                    model.DeviceSales.Add(modelItem);
                }

            }

            #endregion

            return View(model);
        }