public BuyerDetailViewModel(Buyer selectedBuyer)
        {
            Products          = new ObservableCollection <ProductsAnalyse>();
            SelectedBuyerName = selectedBuyer.Name;
            var countOfProducts = selectedBuyer.Product.Count();

            for (int i = 0; i < countOfProducts; i++)
            {
                if (selectedBuyer.Purchased[i] == 0 && selectedBuyer.Profits[i] == 0)
                {
                    continue;
                }
                else
                {
                    var newProduct = new ProductsAnalyse()
                    {
                        NameOfProduct  = selectedBuyer.Product[i],
                        SumOfPurchased = selectedBuyer.Purchased[i],
                        SumOfReturned  = selectedBuyer.Returned[i],
                        Sales          = selectedBuyer.Purchased[i] - selectedBuyer.Returned[i],
                        SumOfProfits   = selectedBuyer.Profits[i],
                    };
                    Products.Add(newProduct);
                }
            }
        }
        public ProductDetailAnalyseViewModel(ProductsAnalyse selectedProductsAnalyse, List <Buyer> listOfBuyers)
        {
            ProductDetailAnalyse = new ObservableCollection <ProductDetailAnalyse>();
            SelectedProductName  = selectedProductsAnalyse.NameOfProduct;


            var numberOfDiffrentPrices = 0;
            var indexOfProduct         = SetIndexOfProductFromBuyersList(listOfBuyers.FirstOrDefault());
            var listOfPrices           = CreateListOfPrices(listOfBuyers, indexOfProduct);

            var listOfDiffrentPrices = listOfPrices.Distinct().OrderByDescending(x => x).ToList();

            numberOfDiffrentPrices = listOfDiffrentPrices.Count();

            ProductDetailAnalyse = CreateListOfProductDetailAnalyse(numberOfDiffrentPrices, indexOfProduct, listOfDiffrentPrices, listOfBuyers);
        }
        public ObservableCollection <ProductsAnalyse> ComputeProductsAnalyseViewModel(List <Buyer> listOfBuyers)
        {
            ObservableCollection <ProductsAnalyse> allProductAnalyse = new ObservableCollection <ProductsAnalyse>();

            if (listOfBuyers.Count() != 0)
            {
                var ListOfProducts  = listOfBuyers.FirstOrDefault().Product;
                var countOfProducts = ListOfProducts.Count();
                var countOfBuyers   = listOfBuyers.Count();

                for (int i = 0; i < countOfProducts; i++)
                {
                    double sumOfPrusched  = 0;
                    double sumOfPReturned = 0;
                    double sumOfProfits   = 0;
                    var    nameOfProduct  = ListOfProducts[i];

                    for (int j = 0; j < countOfBuyers; j++)
                    {
                        sumOfPrusched  += listOfBuyers[j].Purchased[i];
                        sumOfPReturned += listOfBuyers[j].Returned[i];
                        sumOfProfits   += listOfBuyers[j].Profits[i];
                    }
                    double sales = sumOfPrusched - sumOfPReturned;

                    var productAnalyse = new ProductsAnalyse()
                    {
                        NameOfProduct  = nameOfProduct,
                        SumOfPurchased = sumOfPrusched,
                        SumOfReturned  = sumOfPReturned,
                        Sales          = sales,
                        SumOfProfits   = sumOfProfits
                    };

                    allProductAnalyse.Add(productAnalyse);
                }
            }
            return(allProductAnalyse);
        }
 public static void SetProductToProductDetailAnalyseViewModel(ProductsAnalyse selectedProductsAnalyse, List <Buyer> listOfBuyers)
 {
     ProductDetailAnalyseViewModel = new ProductDetailAnalyseViewModel(selectedProductsAnalyse, listOfBuyers);
 }