Example #1
0
        public void TestToDictionaryWhenDuplicateKeysException()
        {
            var productList = new ProductsList().GetProducts();

            var prodToAdd = new ProductsList.Product
            {
                ID          = 6,
                Name        = "Deodorant",
                Price       = 6,
                Ingredients = new List <ProductsList.Ingredient> {
                    new ProductsList.Ingredient {
                        Name = "Fresh"
                    }, new ProductsList.Ingredient {
                        Name = "Parfum4"
                    }
                }
            };

            productList.Add(prodToAdd);

            Func <ProductsList.Product, int>    myKeyFunc     = (x) => x.ID;
            Func <ProductsList.Product, string> myElementFunc = (x) => x.Name;

            var dictionary = Assert.Throws <ArgumentException>(() => LinqFunctions.ToDictionary(productList, p => myKeyFunc(p), z => myElementFunc(z)));

            Assert.Equal("An item with the same key has already been added. Key: 6", dictionary.Message);
        }
        public async Task Init()
        {
            if (ProductTypesList.Count == 0)
            {
                var productTypesList = await _productTypesService.Get <List <ProductTypes> >(null);

                ProductTypesList.Add(new ProductTypes("All"));
                foreach (var item in productTypesList)
                {
                    ProductTypesList.Add(item);
                }
            }

            if (SelectedProductTypes != null)
            {
                ProductsSearchRequest searchRequest = new ProductsSearchRequest();
                if (SelectedProductTypes.Name == "All")
                {
                    searchRequest = null;
                }
                else
                {
                    searchRequest.ProductTypeId = SelectedProductTypes.Id;
                }
                var list = await _service.Get <IEnumerable <Products> >(searchRequest);

                ProductsList.Clear();
                foreach (var item in list)
                {
                    ProductsList.Add(item);
                }
            }
        }
Example #3
0
 public static bool LoadProducts()
 {
     try
     {
         ProductsList.Clear();
         using (var sr = new StreamReader(FilePath))
         {
             var deSerializer = new XmlSerializer(typeof(ObservableCollection<Product>));
             var tmpCollection =
                 (ObservableCollection<Product>) deSerializer.Deserialize(sr);
             foreach (var item in tmpCollection)
             {
                 ProductsList.Add(item);
             }
             return true;
         }
     }
     catch (Exception ex)
     {
         if (ex is FileNotFoundException)
         {
             var sw = new StreamWriter(FilePath);
         }
         MessageBox.Show(ex.Message);
         return false;
     }
 }
Example #4
0
        public async Task RefresProductsAsync()
        {
            var data = await ProductService.GetProductsAsync();

            ProductsList.Clear();
            foreach (var item in data)
            {
                ProductsList.Add(item);
            }
        }
Example #5
0
        public Offer(Product NewProduct, User <string> User)
        {
            productsList = new List <Product>();
            ProductsList.Add(NewProduct);

            Random rnd = new Random();

            offerNumber = rnd.Next();
            state       = OfferState.New;
            this.user   = User;
        }
        public async Task SearchedProducts(string serachBar)
        {
            ProductsSearchRequest request = new ProductsSearchRequest
            {
                ProductName = serachBar
            };

            ProductsList.Clear();
            var list = await _service.Get <IEnumerable <Model.Products> >(request);

            foreach (var item in list)
            {
                ProductsList.Add(item);
            }
        }
        public async Task ListProducts()
        {
            APIResponse response = await GetProducts.ExecuteStrategy(null);

            if (response.IsSuccess)
            {
                var jsonSerializerSettings = new JsonSerializerSettings();
                jsonSerializerSettings.MissingMemberHandling = MissingMemberHandling.Ignore;
                Products = JsonConvert.DeserializeObject <List <ProductModel> >(response.Response, jsonSerializerSettings);
                foreach (var p in Products)
                {
                    p.UnitPriceString = p.UnitPrice.ToString("N0");
                    ProductsList.Add(p);
                }
            }
            else
            {
                Exception e;
            }
        }
Example #8
0
        private void InAddClick()
        {
            ProductsList.Add(new Meal {
                Name     = NewMeal.Name,
                Kcal     = NewMeal.Kcal,
                Proteins = NewMeal.Proteins,
                Fat      = NewMeal.Fat,
                Carbs    = NewMeal.Carbs
            });

            OnPropertyChanged(nameof(ProductsList));

            NewMeal.Name     = "";
            NewMeal.Kcal     = 0;
            NewMeal.Proteins = 0;
            NewMeal.Fat      = 0;
            NewMeal.Carbs    = 0;

            IfAddProduct = false;
        }
        public async Task ListProducts()
        {
            var         savedList = new List <Tuple <long, int> >(Settings.listProductsCart);
            List <long> ids       = new List <long>();

            foreach (var idItem in savedList)
            {
                ids.Add(idItem.Item1);
            }
            ShoppingCartModel productsIds = new ShoppingCartModel()
            {
                IdProducts = ids
            };
            APIResponse response = await PostList.ExecuteStrategy(productsIds);

            if (response.IsSuccess)
            {
                Products  = JsonConvert.DeserializeObject <List <ShoppingCartShowModel> >(response.Response);
                savedList = new List <Tuple <long, int> >(savedList.OrderBy(x => x.Item1));
                int cnt = 0;
                foreach (var product in Products)
                {
                    var items = savedList.ElementAt(cnt);
                    product.QuantitySelected = items.Item2;
                    product.UnitPriceString  = product.UnitPrice.ToString("N0");
                    ProductsList.Add(product);
                    Total += (items.Item2 * product.UnitPrice);
                    cnt   += 1;
                }

                TotalString = Total.ToString("N0");
                //await ShowProductsOfCart();
            }
            else
            {
                Exception e;
            }
        }
        public void InsertProduct(Product product, string productType, string CategoryName)
        {
            bool isAdded = false;

            for (int i = 0; i < Categories.Count; i++)
            {
                if (Categories[i].CategoryName.Equals(CategoryName))
                {
                    isAdded = true;
                    Categories[i].Insert(product, productType);
                    ProductsList.Add(product);
                }
            }

            if (!isAdded)
            {
                CategoryBST category = new CategoryBST();
                category.CategoryName = CategoryName;
                category.Insert(product, productType);
                Categories.Add(category);
                ProductsList.Add(product);
            }
        }
        public async Task Init()
        {
            var user = await _usersService.GetById <Model.Users>(User.Id);

            UserAddress = await _userAddresssesService.GetById <Model.UserAddresses>(user.UserAddressId);

            Country     = UserAddress.Country;
            City        = UserAddress.City;
            AddressName = UserAddress.AddressName;

            ProductsList.Clear();
            foreach (var item in CartService.Cart)
            {
                ProductsList.Add(item.Value);
            }
            foreach (var item in ProductsList)
            {
                Total    += item.Product.Price * item.Quantity;
                Discount += item.Quantity;
            }
            if (Discount > 100)
            {
                Discount = 50;
            }
            if (Discount < 20)
            {
                Discount = 0;
            }
            else
            {
                Discount /= 2;
            }

            TotalNoPDV = Total;
            Total     -= (Discount / 100 * Total);
            Total     += 5;
        }
Example #12
0
 public static void AddProduct(Product newProduct)
 {
     ProductsList.Add(newProduct);
     SaveProducts();
 }
Example #13
0
 public void AddProduct(Product product)
 {
     ProductsList.Add(product);
     NumberOfProducts = ProductsList.Count;
 }
        public MainViewModel()
        {
            //自宅PCかどうか確認して
            string machineName = Environment.MachineName;

            if (machineName == "NAOTAB")
            {
                for (int i = 0; i < 10; i++)
                {
                    var product = new Product()
                    {
                        ProductNo   = "sam-ple-" + i,
                        ProductName = "これはサンプルです" + i,
                        StockQTY    = i * 10,
                        ModDate     = DateTime.Today.ToString("yyyy/MM/dd"),
                        ModTime     = DateTime.Now.ToString("HH:mm:ss")
                    };

                    ProductsList.Add(product);
                }
                return;
            }


            DBManager dBManager = new DBManager();
            var       sqlstr    = @"select * from TEST.T_STOCK;";

            try
            {
                SqlDataReader dr = dBManager.ExecuteQuery(sqlstr);
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        var product = new Product()
                        {
                            ProductNo   = dr["CODE"].ToString(),
                            ProductName = dr["Name"].ToString(),
                            StockQTY    = (int)dr["QTY"],
                            ModDate     = DateTime.Today.ToString("yyyy/MM/dd"),
                            ModTime     = DateTime.Now.ToString("HH:mm:ss"),
                        };

                        ProductsList.Add(product);
                    }
                }


                dr.Close();
            }
            catch (Exception exc)
            {
                Debug.WriteLine(exc.Message);
            }
            finally
            {
                dBManager.Close();
            }



            //var db = new AppDbContext();
            //var http = new System.Net.Http.HttpClient();

            ////フィードを適当なサイトから取得
            //foreach (var targetUrl in
            //    new[] {
            //        "http://www3.asahi.com/rss/index.rdf",
            //        "http://rss.rssad.jp/rss/codezine/new/20/index.xml",
            //    })

            //{
            //    //フィードxmlをDL & Parse
            //    //xmlは名前空間で面倒が生じないよう名前空間情報を除染
            //    var rssTxt = http.GetStringAsync(targetUrl).Result;
            //    var rss = System.Xml.Linq.XElement.Parse(rssTxt);
            //    foreach (var item in rss.Descendants())
            //        item.Name = item.Name.LocalName;


            //    //フィードの記事をModelオブジェクトへ移し替える
            //    var articles = rss
            //        .Descendants("item")
            //        .Select(item =>
            //            new Article()
            //            {
            //                Title = item.Element("title").Value,
            //                LinkUrl = item.Element("link").Value,
            //                Description = item.Element("description").Value,
            //                ChannelTitle = rss.Element("channel").Element("title").Value,
            //            });

            //    //DBに未追加の記事をDBへ保存する
            //    foreach (var item in articles)
            //    {
            //        if (db.Article.Any(_ => _.LinkUrl == item.LinkUrl))
            //            continue;

            //        Console.WriteLine(item.Title);
            //        db.Article.Add(item);
            //    }
            //    //DBへの保存を確定
            //    db.SaveChanges();
            //    Console.WriteLine("終了");
            //    Console.Read();

            //}
        }
Example #15
0
        private void AddBtn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                CheckoutProductViewModel viewModel;
                var textBoxContent = CodeAndQuantityTxt.Text;
                //Добавяне на продукт
                if (Regex.Match(textBoxContent, @"^\d+\*{1}\d+$").Success&& textBoxContent != "*+")
                {
                    var  splittedText = textBoxContent.Split('*').ToList();
                    bool n            = false;
                    foreach (var text in splittedText)
                    {
                        if (String.IsNullOrEmpty(text))
                        {
                            n = true;
                        }
                    }
                    if (!n)
                    {
                        var itemIdOrBarcode = 0;
                        int length          = (int)(Math.Log10(int.MaxValue) + 1);

                        if (splittedText[1].Length < length)
                        {
                            itemIdOrBarcode = int.Parse(splittedText[1]);
                        }

                        var item = dBContext.Products.AsNoTracking().FirstOrDefault(p => p.Id == itemIdOrBarcode || p.Barcode == splittedText[1]);
                        if (item == null || item.IsDeleted)
                        {
                            SystemSounds.Hand.Play();
                            MessageBox.Show($"Няма такъв продукт с id/barcode {itemIdOrBarcode}!");
                            throw new Exception($"Няма такъв продукт с id/barcode {itemIdOrBarcode}!");
                        }
                        var itemQuantity = decimal.Parse(splittedText[0]);
                        totalPrice = item.Price * itemQuantity;
                        viewModel  = new CheckoutProductViewModel()
                        {
                            Barcode    = item.Barcode,
                            Id         = item.Id,
                            Measure    = item.Measure,
                            Name       = item.Name,
                            Price      = item.Price,
                            Quantity   = itemQuantity,
                            TotalPrice = totalPrice
                        };

                        Products.Add(item);
                        ProductsList.Add(viewModel);
                        ProductsListGrid.ItemsSource = ProductsList;

                        totalPrice = ProductsList.Sum(x => x.TotalPrice);

                        TotalPriceTxt.Text = totalPrice.ToString();
                        log.Info($"Product {viewModel.Name} with quantity {viewModel.Quantity} added to the bill.");
                    }
                    else
                    {
                        SystemSounds.Hand.Play();
                    }
                }
                //Изтриване на последен добавен продукт
                else if (textBoxContent == "--")
                {
                    var newEventArgs = new RoutedEventArgs(Button.ClickEvent);
                    ClearLastBtn.RaiseEvent(newEventArgs);
                }
                //Завършване на продажба
                else if (textBoxContent == "*+")
                {
                    var newEventArgs = new RoutedEventArgs(Button.ClickEvent);
                    FinishBtn.RaiseEvent(newEventArgs);
                }
                //Дневен отчет
                else if (textBoxContent == "/////")
                {
                    DailyFile.SaveDailyFile();
                }
                else if (textBoxContent == "*+*")
                {
                    var newEventArgs = new RoutedEventArgs(Button.ClickEvent);
                    BillBtn.RaiseEvent(newEventArgs);
                }
                else
                {
                    SystemSounds.Hand.Play();
                }
            }
            catch (Exception ex)
            {
                log.Error(ex.InnerException);
            }
            finally
            {
                CodeAndQuantityTxt.Text = string.Empty;
            }
        }
Example #16
0
 public void Add(Product NewProduct)
 {
     ProductsList.Add(NewProduct);
 }