예제 #1
0
        private static void GetCustomersTest()
        {
            ICustomersService customersService = new FakeCustomersService();

            List <Customer> customers = customersService.Get();

            // snippet: foreach
            foreach (Customer customer in customers)
            {
                // snippet: cw
                Console.WriteLine(customer);

                // customersService.Calculate(customer);
            }
        }
예제 #2
0
        private static void CreateOrderTest()
        {
            Console.WriteLine("Witaj w naszym sklepie!");

            Console.WriteLine("Podaj id klienta:");
            int customerId = int.Parse(Console.ReadLine());

            Console.WriteLine("Podaj id produktu:");
            int productId = int.Parse(Console.ReadLine());

            Console.WriteLine("Podaj ilość:");
            int quantity = int.Parse(Console.ReadLine());

            // TODO: pobrac klienta i produkt ze zrodla danych

            ICustomersService customersService = new FakeCustomersService();
            IItemsService     itemsService     = new FakeItemsService();

            // Przygotowanie danych
            Generator.Generator generator = new Generator.Generator();
            var customers = generator.GetCustomers(100);

            customersService.Add(customers);

            var products = generator.GetProducts(50);
            var services = generator.GetServices(50);

            // połączenie zbiorów
            var items = products.OfType <Item>().Concat(services).ToList();

            itemsService.Add(items);


            // Pobranie
            Customer customer = customersService.Get(customerId);
            Item     item     = itemsService.Get(productId);

            Order order = new Order("ZA 001", customer);

            order.Details.Add(new OrderDetail(item, quantity));
        }
예제 #3
0
        private static Customer GetCustomer()
        {
            Write("Podaj NIP: ");
            string vatNumber = ReadLine();

            ICustomersService customersService = new FakeCustomersService();
            List <Customer>   customers        = customersService.Search(vatNumber);

            if (customers.Any())
            {
                WriteLine($"Znaleziono {customers.Count}");


                //foreach (Customer customer in customers)
                //{
                //    WriteLine($"{customers.IndexOf(customer)+1} \t- {customer}");
                //}

                customers.ForEach(customer => WriteLine($"{customers.IndexOf(customer) + 1} \t- {customer}"));

                Write("Podaj indeks");

                if (int.TryParse(ReadLine(), out int index))
                {
                    return(customers[index - 1]);
                }
                else
                {
                    Write("Błędna wartość");
                }
            }
            else
            {
                WriteLine("Nie znaleziono");
            }


            return(null);
        }
예제 #4
0
        static void Main(string[] args)
        {
            WriteLine("Hello World!");

            // Install-Package Microsoft.Extensions.Configuration
            // Install-Package Microsoft.Extensions.Configuration.FileExtensions
            // Install-Package Microsoft.Extensions.Configuration.Json
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            IConfigurationRoot configuration = builder.Build();

            WriteLine(configuration.GetConnectionString("ShopConnection"));

            // Install-Package Microsoft.Extensions.DependencyInjection
            ServiceCollection services = new ServiceCollection();

            services.AddTransient <ICustomersService, DbCustomersService>();
            services.AddTransient <IItemsService, DbItemsService>();

            // Install-Package Microsoft.EntityFrameworkCore.SqlServer
            services.AddDbContext <ShopContext>(options => options
                                                .UseSqlServer(configuration.GetConnectionString("ShopConnection")));

            ServiceProvider serviceProvider = services.BuildServiceProvider();

            // ICustomersService customersService = new FakeCustomersService();
            ICustomersService customersService = serviceProvider.GetService <ICustomersService>();

            var query = customersService.Get();


            var           items        = new FakeItemsService().Get();
            IItemsService itemsService = serviceProvider.GetService <IItemsService>();

            itemsService.AddRange(items);

            var customers = customersService.Search(new CustomerSearchCriteria {
                Country = "Poland"
            });

            var newCustomers = new FakeCustomersService().Get();

            foreach (var newCustomer in newCustomers)
            {
                customersService.Add(newCustomer);
            }


            LinqTest(customersService);


            // Uwaga: W przypadku float/double mimo dzielenia przez zero nie pojawi się błąd,
            // lecz przyjmie wartość infinity!
            double result = 2d / 0;

            Console.WriteLine(result);

            // DelegateTest();

            // Typ anonimowy
            // AnonymouseTypeTest();

            Customer customer = GetCustomer();

            var order = new Order(customer);

            Item item;

            do
            {
                item = GetItem();
                int quantity = GetQuantity();

                OrderDetail detail = new OrderDetail(item, quantity);

                order.AddDetail(detail);
            } while (item != null);

            // EnumTest(order);

            // ExtensionsMethodTest();

            GetCustomersTest();

            // GetItemsTest();

            #region Variable vs Reference Types

            VariableTest();
            StringTest();
            ReferenceTest();

            #endregion


            Helper.GreaterThanZero(100);
        }