Beispiel #1
0
        static void Main(string[] args)
        {
            using (adAgencyContext db = new adAgencyContext())
            {
                DbInitializator.Initialize(db);

                Console.WriteLine("Первое задание");
                Print("Выборка записей таблицы Рекламы", db.Advedirsments.ToArray());
                Print("Выборка записей таблицы Заказчики", db.Customers.ToArray());

                Console.WriteLine("\nВторое задание\n");

                Print("Выборка с ограничением из таблицы Рекламы", db.Advedirsments.Where(a => a.AdvedirsmentsId == db.Advedirsments.First().AdvedirsmentsId).ToArray());
                Console.WriteLine("\nТретье задание\n");

                var query1 = from o in db.Orders
                             group o.OrderCost by o.CustomersId into gr
                             select new
                {
                    customersId = gr.Key,
                    Сумма       = gr.Sum()
                };
                Print("Выборка с суммой стоимости заказов по клиентам:", query1.ToArray());
                Console.WriteLine("\nЧетвёртое задание\n");

                var query2 = from o in db.Orders
                             join c in db.Customers
                             on o.CustomersId equals c.CustomersId
                             orderby c.CustomerName descending
                             select new
                {
                    Заказчик         = c.CustomerName,
                    Дата_соглашения  = o.DateOrder,
                    Стоимость_заказа = o.OrderCost
                };

                Print("Выборка по полям двух таблиц связи один-ко-многим:", query2.ToArray());
                Console.WriteLine("\nПятое задание\n");

                DateTime day    = new DateTime(2018, 1, 1);
                var      query3 = from o in db.Orders
                                  join c in db.Customers
                                  on o.CustomersId equals c.CustomersId
                                  where (o.DateBegin >= day)
                                  orderby c.CustomerName descending
                                  select new
                {
                    Заказчик         = c.CustomerName,
                    Дата_соглашения  = o.DateOrder,
                    Стоимость_заказа = o.OrderCost
                };

                Print("Выборка с ограничением по полям двух таблиц связи один-ко-многим:", query3.ToArray());
                Console.WriteLine("\nШестое задание\n");

                // Создать новую рекламу
                Advedirsments ad = new Advedirsments
                {
                    AdvedirsmentsId = 6,
                    AdType          = "SMS-реклама",
                    AdDescription   = "Реклама распространяется клиентам через SMS"
                };
                // Создать нового заказчика
                Customers customer = new Customers
                {
                    CustomerName      = "БургерКинг",
                    CustomerAddress   = "ул. Северная 7",
                    CustomerTelephone = "380-65-87"
                };
                db.Advedirsments.Add(ad);
                db.Customers.Add(customer);
                db.SaveChanges();
                Print("Таблица рекламы после вставки: ", db.Advedirsments.ToArray());
                Print("\nТаблица заказчики после вставки: ", db.Advedirsments.ToArray());

                Console.WriteLine("\nСедьмое задание\n");

                DateTime today = DateTime.Now.Date;
                //создать новый заказ
                Orders order = new Orders
                {
                    AdvedirsmentsId = 1,
                    CustomersId     = 3,
                    OrderCost       = 1000,
                    EmployeeId      = 5,
                    Location        = "ул. Набережная",
                    DateOrder       = today.AddDays(-15),
                    DateBegin       = today.AddDays(10),
                    DateEnd         = today.AddDays(30),
                    PaymentStatus   = true
                };
                db.Orders.Add(order);
                db.SaveChanges();
                Print("Таблица заказы после вставки: ", db.Orders.ToArray());

                Console.WriteLine("\nВосьмое задание\n");

                var adDel = db.Advedirsments.Where(a => a.AdvedirsmentsId == 6);
                db.Advedirsments.RemoveRange(adDel);
                db.SaveChanges();
                Print("Таблица рекламы после удаления записи: ", db.Advedirsments.ToArray());

                Console.WriteLine("\nДевятое задание\n");

                db.Orders.Remove(db.Orders.ToArray()[10]);
                db.SaveChanges();
                Print("Таблица заказы после удаления записи: ", db.Advedirsments.ToArray());

                db.Orders.SingleOrDefault(o => o.OrdersId == db.Orders.First().OrdersId).OrderCost += 3000;
                db.SaveChanges();
                Print("Обновлённая таблица заказы", db.Orders.ToArray());

                Console.ReadKey();
            }
        }
Beispiel #2
0
        public static void Initialize(adAgencyContext db)
        {
            db.Database.EnsureCreated();

            if (db.Advedirsments.Any())
            {
                return;   // База данных инициализирована
            }

            int    advedirsmentsNumber = 5;
            int    customersNumber     = 100;
            int    ordersNumber        = 100;
            string adType;
            string adDescription;
            string customerName;
            string customerAddress;
            string customerTelephone;

            Random randObj = new Random(1);

            //словарь типов рекламы
            string[] adTypes = { "Телевизионная", "Интернет-реклама", "Печатная", "Радио", "Уличная" };
            //словарь описание типов рекламы
            string[] adDescrip = { "Видеоролик, бегущая строка",          "реклама в Интернете, блогах, SMM",
                                   "реклама в газетах, наклейки, визтки", "реклама в радиовещании", "Баннеры" };
            //заполнение таблицы рекламы
            for (int advedirsmentId = 1; advedirsmentId <= advedirsmentsNumber; advedirsmentId++)
            {
                adType        = adTypes[advedirsmentId - 1];
                adDescription = adDescrip[advedirsmentId - 1];
                db.Advedirsments.Add(new Advedirsments {
                    AdType = adType, AdDescription = adDescription, AdvedirsmentsId = advedirsmentId
                });
            }
            //сохранение изменений в базу данных, связанную с объектом контекста
            db.SaveChanges();

            //словарь название заказчиков
            string[] custNames = { "LowAgency", "FedEx", "BSBank", "Samsung", "Unicredit", "MTS", "Bordeux" };
            //словарь адресов заказчиков
            string[] custAddress = { "ул. Пушкина 2",     "пр.Речицкий 80", "ул. Гагарина 38",
                                     "ул. Центральная 7", "ул. Киевская 7", "ул. Давыдовская 14",
                                     "ул. Б.Хмельницкого 80" };
            //словарь телефонов заказчиков
            string[] custTelehone = { "577-19-05", "303-23-68", "158-38-64", "190-65-87", "715-71-77" };
            //заполнение таблицы заказчики
            for (int customerId = 1; customerId <= customersNumber; customerId++)
            {
                customerName      = custNames[randObj.Next(custNames.Length)];
                customerAddress   = custAddress[randObj.Next(custAddress.Length)];
                customerTelephone = custTelehone[randObj.Next(custTelehone.Length)];
                db.Customers.Add(new Customers {
                    CustomerName = customerName, CustomerAddress = customerAddress, CustomerTelephone = customerTelephone
                });
            }
            //сохранение изменений в базу данных, связанную с объектом контекста
            db.SaveChanges();

            //массив id сотрудника
            int[] employesId = { 1, 2, 3, 4, 5 };
            //словарь рапсоложений реклам заказчика
            string[] locations = { "ул. Богданова", "пр. Речицкий",    "ул. Барыкина",  "ул. Машерова",
                                   "ул. Спартака",  "пр. Космонавтов", "ул. Ветеранов", "пл. Соборная" };

            for (int orderId = 1; orderId <= ordersNumber; orderId++)
            {
                int      advedirsmentId = randObj.Next(1, advedirsmentsNumber - 1);
                int      customerId     = randObj.Next(1, customersNumber - 1);
                int      orderCost      = randObj.Next(1000, 10000);
                int      employeerId    = employesId[randObj.Next(employesId.Length)];
                string   location       = locations[randObj.Next(locations.Length)];
                DateTime today          = DateTime.Now.Date;
                DateTime dateOrder      = today.AddDays(-orderId);
                DateTime dateBegin      = dateOrder.AddDays(randObj.Next(7));
                DateTime dateEnd        = dateBegin.AddDays(randObj.Next(7, 30));
                bool     paymentStatus;
                int      isPay = randObj.Next(0, 1);
                if (isPay == 1)
                {
                    paymentStatus = true;
                }
                else
                {
                    paymentStatus = false;
                }
                db.Orders.Add(new Orders {
                    DateOrder   = dateOrder, DateBegin = dateBegin, DateEnd = dateEnd,
                    Location    = location, OrderCost = orderCost, PaymentStatus = paymentStatus, EmployeeId = employeerId,
                    CustomersId = customerId, AdvedirsmentsId = advedirsmentId
                });
            }
            //сохранение изменений в базу данных, связанную с объектом контекста
            db.SaveChanges();
        }