Exemplo n.º 1
0
        /// <summary>
        /// Metoda która sprawdza czy dany login i hasło pasują do jakiegokolwiek użytkownika w pliku JSON i bazie danych.
        /// </summary>
        /// <param name="usersData"></param>
        /// <param name="login"></param>
        /// <param name="password"></param>
        private void CheckUser(UsersData usersData, string login, string password)
        {
            foreach (var item in usersData.Users)
            {
                if (login.Equals(item.Login) && password.Equals(item.Password))
                {
                    // Pobiera loginy z bazy i daje do nowej listy.
                    var allLogins = new List <string>();
                    using (var context = new myShopContext())
                    {
                        foreach (var logins in context.Clients)
                        {
                            allLogins.Add(logins.Login);
                        }
                    }

                    // Sprawdza czy któryś login pasuje do podanego przez użytkownika.
                    if (allLogins.Any(logs => logs.Equals(item.Login)))
                    {
                        // Odpalenie nowej formatki Sklep
                        Hide();
                        var form = new MainForm(item.Login);
                        form.Location      = this.Location;
                        form.StartPosition = FormStartPosition.CenterScreen;
                        form.FormClosing  += delegate { this.Close(); };
                        form.Show();
                        return;
                    }
                }
            }
            MessageBox.Show("Nie ma takiego konta!", "Problem!?");
        }
Exemplo n.º 2
0
        public MainForm(string login)
        {
            Login = login;

            InitializeComponent();
            ControlSetter(null);

            _totalPrice     = 0.0F;
            _charts         = new List <Chart>();
            _productsImages = new Dictionary <int, Image>();

            using (var context = new myShopContext())
            {
                _myOrders = context
                            .Orders.
                            Where(x => x.IdClient == context
                                  .Clients
                                  .Where(z => z.Login.Equals(MainForm.Login))
                                  .FirstOrDefault().IdClient).OrderByDescending(desc => desc.IdOrder).ToList();

                _me = context.Clients.Where(l => l.Login.Equals(MainForm.Login)).FirstOrDefault();

                _categories = context.Categories.ToList();

                _allProducts = context.Products.ToList();
            }

            InitializeAllImages();
            profileUserControl1.SetValues();
            shoppingUserControl1.InitializeListBoxCategory();
            shoppingUserControl1.InitializeProducts();
            historyUserControl1.InitializeAllOrders();
        }
Exemplo n.º 3
0
        /// <summary>
        /// Statyczna metoda do Update zalogowanego klienta wywoływana z ProfileUserControl.
        /// </summary>
        /// <param name="newClient"></param>
        public static void ChangeClient(Client newClient)
        {
            using (var context = new myShopContext())
            {
                // Znajduje klienta obecnie zalogowanego po jego ID.
                var clientToUpdate = context.Clients.Where(f => f.IdClient == _me.IdClient).FirstOrDefault();

                if (clientToUpdate != null)
                {
                    clientToUpdate.Login       = newClient.Login;
                    clientToUpdate.FirstName   = newClient.FirstName;
                    clientToUpdate.LastName    = newClient.LastName;
                    clientToUpdate.City        = newClient.City;
                    clientToUpdate.Street      = newClient.Street;
                    clientToUpdate.Mail        = newClient.Mail;
                    clientToUpdate.Phone       = newClient.Phone;
                    clientToUpdate.ZIP         = newClient.ZIP;
                    clientToUpdate.Voivodeship = newClient.Voivodeship;
                    clientToUpdate.HouseNumber = newClient.HouseNumber;
                    clientToUpdate.MoneySpent  = newClient.MoneySpent;
                    clientToUpdate.Points      = newClient.Points;
                }
                context.SaveChanges();

                newClient.IdClient = _me.IdClient;
                _me           = newClient;
                _changeClient = true;
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Metoda która polega na stworzeniu nowego zamówienia, dodaniu do niego pozycji,
        /// ceny całkowitej. W przypadku zamówień uaktualnia zamówienia użytkownika,
        /// zmiena ilość produktów w magazynie.
        /// </summary>
        /// <param name="order"></param>
        public static void MakeOrder(Order order)
        {
            using (var context = new myShopContext())
            {
                // Stworzenie zamówienia w bazie żeby powstało ID.
                context.Orders.Add(order);
                context.SaveChanges();

                // Znalezienie tego zamówienia i jego ID a następnie dodanie wszystkich pozycji i update ceny całkowitej.
                var findThisOrder = context.Orders.OrderByDescending(x => x.IdOrder).FirstOrDefault();
                foreach (var item in _charts)
                {
                    findThisOrder.Charts.Add(item);
                }
                findThisOrder.TotalPrice = _totalPrice;
                context.SaveChanges();

                // Pobranie aktualnej listy zamówień tego użytkownika
                _myOrders = context
                            .Orders.
                            Where(x => x.IdClient == context
                                  .Clients
                                  .Where(z => z.Login.Equals(MainForm.Login))
                                  .FirstOrDefault().IdClient).OrderByDescending(desc => desc.IdOrder).ToList();

                // Update ilości i sprzedanych produktów w magazynie.
                foreach (var item in _charts)
                {
                    var tempProduct = context.Products.Where(p => p.IdProduct == item.IdProduct).FirstOrDefault();
                    tempProduct.UnitsInStock -= item.Units;
                    tempProduct.UnitsSold    += item.Units;
                }

                // Uaktualnienie listy produktów
                _allProducts = context.Products.ToList();

                // Update Klienta i jego wydanych pieniędzy i punktów.
                var clnt = context.Clients.Where(id => id.Login.Equals(Login)).FirstOrDefault();
                clnt.MoneySpent = _myOrders.Select(s => s.TotalPrice).Sum();
                clnt.Points     = Convert.ToInt32(clnt.MoneySpent / 1000.0f + 10.0f);
                ChangeClient(clnt);

                context.SaveChanges();
            }
            _historyChange = true;
        }
        public static void DatabaseInitializer()
        {
            using (var context = new myShopContext())
            {
                //Kategorie
                context.Categories.Add(new Model.Category
                {
                    Name        = "Procesor",
                    Description = "CPU do komputerów stacjonarnych."
                });
                context.Categories.Add(new Model.Category
                {
                    Name        = "Karta Graficzna",
                    Description = "GPU do komputerów stacjonarnych."
                });
                context.Categories.Add(new Model.Category
                {
                    Name        = "Laptop",
                    Description = "Przenośne urządzenia do pracy i rozrywki."
                });
                context.Categories.Add(new Model.Category
                {
                    Name        = "RAM",
                    Description = "Pamięć komputera przeznaczona do wykorzystania w chwili pracy."
                });
                context.Categories.Add(new Model.Category
                {
                    Name        = "Dysk Twardy",
                    Description = "Pamięć masowa przeznaczona do gromadzenia danych i zapisywania."
                });
                context.SaveChanges();

                // Produkty
                context.Products.Add(new Model.Product
                {
                    Name         = "Nitro 5",
                    Discontinued = false,
                    Manufacturer = "Acer",
                    UnitsInStock = 12,
                    UnitPrice    = 3200,
                    UnitsOrdered = 5,
                    UnitsSold    = 512,
                    IdCategory   = context.Categories.Where(cat => cat.Name.Equals("Laptop")).FirstOrDefault().IdCategory,
                    ImageUrl     = "https://i.ebayimg.com/images/g/xZYAAOSwzcpdijv8/s-l1600.jpg"
                });
                context.Products.Add(new Model.Product
                {
                    Name         = "MacBook",
                    Discontinued = false,
                    Manufacturer = "Apple",
                    UnitsInStock = 5,
                    UnitPrice    = 4000,
                    UnitsOrdered = 2,
                    UnitsSold    = 100,
                    IdCategory   = context.Categories.Where(cat => cat.Name.Equals("Laptop")).FirstOrDefault().IdCategory,
                    ImageUrl     = "https://image.ceneostatic.pl/data/products/66886711/i-apple-macbook-pro-15-4-i7-16gb-512gb-macos-silver-mr972ze-a.jpg"
                });
                context.Products.Add(new Model.Product
                {
                    Name         = "i5-8300H",
                    Discontinued = false,
                    Manufacturer = "Intel",
                    UnitsInStock = 10,
                    UnitPrice    = 600,
                    UnitsOrdered = 20,
                    UnitsSold    = 600,
                    IdCategory   = context.Categories.Where(cat => cat.Name.Equals("Procesor")).FirstOrDefault().IdCategory,
                    ImageUrl     = "https://www.notebookcheck.pl/fileadmin/_processed_/a/e/csm_8th_Gen_Intel_Core_i5_Badge_ee07502dbf.jpg"
                });
                context.Products.Add(new Model.Product
                {
                    Name         = "GTX 1050",
                    Discontinued = false,
                    Manufacturer = "Nvidia",
                    UnitsInStock = 50,
                    UnitPrice    = 800,
                    UnitsOrdered = 90,
                    UnitsSold    = 1500,
                    IdCategory   = context.Categories.Where(cat => cat.Name.Equals("Karta Graficzna")).FirstOrDefault().IdCategory,
                    ImageUrl     = "https://images.morele.net/i1064/975580_0_i1064.jpg"
                });
                context.Products.Add(new Model.Product
                {
                    Name         = "Predator RGB 8GB DDR4",
                    Discontinued = false,
                    Manufacturer = "HyperX",
                    UnitsInStock = 14,
                    UnitPrice    = 1000,
                    UnitsOrdered = 20,
                    UnitsSold    = 200,
                    IdCategory   = context.Categories.Where(cat => cat.Name.Equals("RAM")).FirstOrDefault().IdCategory,
                    ImageUrl     = "https://image.ceneostatic.pl/data/products/62977095/i-hyperx-predator-rgb-8gb-ddr4-2933mhz-cl15-hx429c15pb3a8.jpg"
                });
                context.Products.Add(new Model.Product
                {
                    Name         = "Dysk CX 400",
                    Discontinued = false,
                    Manufacturer = "GOODRAM",
                    UnitsInStock = 29,
                    UnitPrice    = 500,
                    UnitsOrdered = 3,
                    UnitsSold    = 18,
                    IdCategory   = context.Categories.Where(cat => cat.Name.Equals("Dysk Twardy")).FirstOrDefault().IdCategory,
                    ImageUrl     = "https://www.mediaexpert.pl/media/cache/gallery/product/1/198/252/686/bqwt8jfi/images/13/1389913/Dysk-GOODRAM-CX400-512GB-skos.jpg"
                });
                context.SaveChanges();

                // Klient
                context.Clients.Add(new Model.Client
                {
                    Login       = "******",
                    City        = "Katowice",
                    FirstName   = "John",
                    LastName    = "Doe",
                    Phone       = "123-456-789",
                    Mail        = "*****@*****.**",
                    ZIP         = "43-000",
                    Street      = "Villowa",
                    HouseNumber = "12B/2",
                    Points      = 150,
                    MoneySpent  = 3200,
                    Voivodeship = "Śląsk",
                });
                context.Clients.Add(new Model.Client
                {
                    Login       = "******",
                    City        = "Łodygowice",
                    FirstName   = "Piotr",
                    LastName    = "Tom",
                    Phone       = "111-222-333",
                    Mail        = "*****@*****.**",
                    ZIP         = "43-300",
                    Street      = "Villowa",
                    HouseNumber = "1232E/13",
                    Points      = 2000,
                    MoneySpent  = 5000,
                    Voivodeship = "Śląsk",
                });
                context.SaveChanges();

                //Zamówienie #1
                context.Orders.Add(new Model.Order
                {
                    IdClient         = context.Clients.Where(a => a.Login.Equals("user")).FirstOrDefault().IdClient,
                    OrderDate        = DateTime.Now.AddDays(-50),
                    OrderName        = "Zamówienie user #1",
                    OrderStreet      = "Villowa",
                    OrderHouseNumber = "12B/2",
                    OrderCity        = "Katowice",
                    OrderVoivodeship = "Śląsk",
                    OrderZIP         = "43-000",
                    TotalPrice       = 3575,
                });
                context.SaveChanges();

                // Koszyk #1
                context.Charts.Add(new Model.Chart
                {
                    IdOrder   = context.Orders.Where(z => z.IdOrder == 1).FirstOrDefault().IdOrder,
                    IdProduct = context.Products.Where(x => x.Name.Equals("Nitro 5")).FirstOrDefault().IdProduct,
                    Units     = 1,
                    Price     = 3200,
                    Discount  = 0.0F,
                });
                context.Charts.Add(new Model.Chart
                {
                    IdOrder   = context.Orders.Where(z => z.IdOrder == 1).FirstOrDefault().IdOrder,
                    IdProduct = context.Products.Where(x => x.Name.Equals("Dysk CX 400")).FirstOrDefault().IdProduct,
                    Units     = 1,
                    Price     = 375,
                    Discount  = 0.25F,
                });
                context.SaveChanges();

                //Zamówienie #2
                context.Orders.Add(new Model.Order
                {
                    IdClient         = context.Clients.Where(a => a.Login.Equals("user")).FirstOrDefault().IdClient,
                    OrderDate        = DateTime.Now.AddDays(-10),
                    OrderName        = "Zamówienie user #2",
                    OrderStreet      = "Villowa",
                    OrderHouseNumber = "12B/2",
                    OrderCity        = "Katowice",
                    OrderVoivodeship = "Śląsk",
                    OrderZIP         = "43-000",
                    TotalPrice       = 8000,
                });
                context.SaveChanges();

                // Koszyk #2
                context.Charts.Add(new Model.Chart
                {
                    IdOrder   = context.Orders.Where(z => z.IdOrder == 2).FirstOrDefault().IdOrder,
                    IdProduct = context.Products.Where(x => x.Name.Equals("MacBook")).FirstOrDefault().IdProduct,
                    Units     = 2,
                    Price     = 8000,
                    Discount  = 0.0F,
                });
                context.SaveChanges();
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Przycisk sprawdza i analizuje podane dane czy są prawidłowe.
        /// Kiedy wszystko się zgadza to dodaje użytkownika do pliku JSON a następnie do bazy danych.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSignUp_Click(object sender, EventArgs e)
        {
            var log   = tBoxLogin.Text;
            var pass  = tBoxPassword.Text;
            var pass2 = tBoxPassword2.Text;

            var list = JsonConvert.DeserializeObject <UsersData>(File.ReadAllText("UsersData.json"));

            bool newLogin       = list.Users.Any(z => z.Login == log) ? false : true;
            bool areSamePasword = pass.Equals(pass2) && !string.IsNullOrEmpty(pass) && !string.IsNullOrWhiteSpace(pass) ? true : false;

            if (newLogin && !string.IsNullOrEmpty(log))
            {
                if (chckBox.Checked)
                {
                    if (areSamePasword)
                    {
                        list.Users.Add(new User
                        {
                            Login    = log,
                            Password = pass
                        });

                        // Dodanie nowego klienta do bazy danych żeby mógł się logować.
                        using (var contextAdd = new myShopContext())
                        {
                            contextAdd.Clients.Add(new Model.Client
                            {
                                Login       = log,
                                FirstName   = "-",
                                LastName    = "-",
                                Street      = "-",
                                HouseNumber = "-",
                                City        = "-",
                                Voivodeship = "-",
                                ZIP         = "-",
                                Points      = 0,
                                MoneySpent  = 0.0F,
                                Phone       = "-",
                                Mail        = "-"
                            });
                            contextAdd.SaveChanges();
                        }
                        var convertedJson = JsonConvert.SerializeObject(list, Formatting.Indented);
                        File.WriteAllText("UsersData.json", convertedJson);

                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Podane hasła nie zgadzają się!", "Błąd tworzenia nowego profilu.");
                    }
                }
                else
                {
                    MessageBox.Show("Musisz potwierdzić zapoznanie się z regulaminem!", "Błąd tworzenia nowego profilu.");
                }
            }
            else
            {
                MessageBox.Show("Login już zajęty. Wybierz inny.", "Błąd tworzenia nowego profilu.");
            }
        }