commit после сложного запроса
This commit is contained in:
parent
2d9db74bce
commit
594bfdaf5d
@ -55,7 +55,8 @@
|
|||||||
this.comboBoxWhat.Items.AddRange(new object[] {
|
this.comboBoxWhat.Items.AddRange(new object[] {
|
||||||
"Сотрудники",
|
"Сотрудники",
|
||||||
"Клиенты",
|
"Клиенты",
|
||||||
"Заказы"});
|
"Заказы",
|
||||||
|
"Сложный запрос"});
|
||||||
this.comboBoxWhat.Location = new System.Drawing.Point(68, 31);
|
this.comboBoxWhat.Location = new System.Drawing.Point(68, 31);
|
||||||
this.comboBoxWhat.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
this.comboBoxWhat.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
this.comboBoxWhat.Name = "comboBoxWhat";
|
this.comboBoxWhat.Name = "comboBoxWhat";
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using BeautySaloonContracts.BusinessLogicsContracts;
|
using BeautySaloonContracts.BusinessLogicsContracts;
|
||||||
using BeautySaloonContracts.SearchModels;
|
using BeautySaloonContracts.SearchModels;
|
||||||
using BeautySaloonContracts.ViewModels;
|
using BeautySaloonContracts.ViewModels;
|
||||||
|
using BeautySaloonDatabaseImplement;
|
||||||
using BeautySaloonDataModels;
|
using BeautySaloonDataModels;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@ -20,7 +21,7 @@ namespace BeautySaloonView
|
|||||||
private List<EmployeeViewModel>? EList;
|
private List<EmployeeViewModel>? EList;
|
||||||
private List<ClientViewModel>? CList;
|
private List<ClientViewModel>? CList;
|
||||||
private List<OrderViewModel>? OList;
|
private List<OrderViewModel>? OList;
|
||||||
public FormTest(IServiceLogic serviceLogic, IPositionLogic positionLogic,
|
public FormTest(IServiceLogic serviceLogic, IPositionLogic positionLogic,
|
||||||
IEmployeeLogic employeeLogic,
|
IEmployeeLogic employeeLogic,
|
||||||
IClientLogic clientLogic, IOrderLogic orderLogic)
|
IClientLogic clientLogic, IOrderLogic orderLogic)
|
||||||
{
|
{
|
||||||
@ -36,7 +37,7 @@ namespace BeautySaloonView
|
|||||||
string[] names = new string[] { "Захар", "Ева", "Сергей", "Максим", "Максимильян", "Лука", "Олег", "Мишель", "София", "Стела", "Аким", "Матвей", "Анисия", "Василий", "Лукьян", "Руслан", "Клара", "Андрей", "Мстислав", "Федот", "Олег", "Аркадий", "Ангелина", "Анжелика", "Стефания", "Мариам", "Дементий", "Андрон", "Даниил", "Адам", "Евдоким", "Валерий", "Дамир", "Фёдор", "Василиса", "Сафина", "Даниэль", "Дарина", "Мир", "Феофан", "Всеслава", "Инна", "Платон", "Ирина", "Рафаэль", "Милана", "Клавдий", "Лейла", "Роза", "Тимофей", "Пимен", "Модест", "Эмма", "Георгий", "Дарья", "Дмитрий", "Эрик", "Филипп", "Владилен", "Евсей", "Даниль", "Ростислав", "Тихон", "Тея", "Наум", "Виолетта", "Анатолий", "Рустам", "Юлия", "Дана", "Самсон", "Ариадна", "Ибрагим", "Светлана", "Инга", "Али", "Виталий", "Алисия", "Оксана", "Тимур", "Аида", "Камиль", "Иннокентий", "Элина", "Виктория", "Анна", "Амелия", "Япсина", "Эвелина", "Кира", "Артур", "Владлена", "Никифор", "Марина", "Артем", "Моисей", "Иван", "Лидия", "Трофим", "Игорь" };
|
string[] names = new string[] { "Захар", "Ева", "Сергей", "Максим", "Максимильян", "Лука", "Олег", "Мишель", "София", "Стела", "Аким", "Матвей", "Анисия", "Василий", "Лукьян", "Руслан", "Клара", "Андрей", "Мстислав", "Федот", "Олег", "Аркадий", "Ангелина", "Анжелика", "Стефания", "Мариам", "Дементий", "Андрон", "Даниил", "Адам", "Евдоким", "Валерий", "Дамир", "Фёдор", "Василиса", "Сафина", "Даниэль", "Дарина", "Мир", "Феофан", "Всеслава", "Инна", "Платон", "Ирина", "Рафаэль", "Милана", "Клавдий", "Лейла", "Роза", "Тимофей", "Пимен", "Модест", "Эмма", "Георгий", "Дарья", "Дмитрий", "Эрик", "Филипп", "Владилен", "Евсей", "Даниль", "Ростислав", "Тихон", "Тея", "Наум", "Виолетта", "Анатолий", "Рустам", "Юлия", "Дана", "Самсон", "Ариадна", "Ибрагим", "Светлана", "Инга", "Али", "Виталий", "Алисия", "Оксана", "Тимур", "Аида", "Камиль", "Иннокентий", "Элина", "Виктория", "Анна", "Амелия", "Япсина", "Эвелина", "Кира", "Артур", "Владлена", "Никифор", "Марина", "Артем", "Моисей", "Иван", "Лидия", "Трофим", "Игорь" };
|
||||||
string[] surnames = new string[] { "Пищальников", "Яхонтов", "Кочетов", "Ермилова", "Разбойникова", "Окулова", "Дудинова", "Добрынина", "Кучава", "Лазарев", "Егорова", "Ипатьев", "Байдавлетов", "Шалаганов", "Масмехов", "Шентеряков", "Юдачёв", "Дагина", "Лавлинский", "Гунин", "Яшвили", "Шуршалина", "Сомкина", "Бояринов", "Коленко", "Меншикова", "Бойков", "Ябловский", "Любова", "Ямпольский", "Фанина", "Молчанова", "Верещагин", "Окладников", "Чичерина", "Ключников", "Барышев", "Вятт", "Толбугин", "Радченко", "Веселкова", "Щавлева", "Слепынина", "Садков", "Барышников", "Бенедиктов", "Графова", "Мирнова", "Васильев", "Никишина", "Краснов", "Набатников", "Пронин", "Стрельцов", "Булка", "Саврасова", "Элиашева", "Канаев", "Кичеева", "Портнова", "Машарин", "Ларина", "Курганова", "Лапаева", "Яшуков", "Шлыков", "Арнаутова", "Ширяев", "Зуев", "Синдеева", "Трутнев", "Кошечкин", "Логинов", "Колпаков", "Бендлина", "Мурзакова", "Витинский", "Ратаева", "Щедрин", "Овощников", "Язвецова", "Крупин", "Седельников", "Юхтрица", "Лыков", "Смешной", "Пожарский", "Мичуев", "Шлиппенбах", "Татаринов", "Янютин", "Кулагина", "Семёнов", "Зверева", "Ивакин", "Бабинова", "Цейдлерин", "Сагадиев", "Истлентьев", "Деменока" };
|
string[] surnames = new string[] { "Пищальников", "Яхонтов", "Кочетов", "Ермилова", "Разбойникова", "Окулова", "Дудинова", "Добрынина", "Кучава", "Лазарев", "Егорова", "Ипатьев", "Байдавлетов", "Шалаганов", "Масмехов", "Шентеряков", "Юдачёв", "Дагина", "Лавлинский", "Гунин", "Яшвили", "Шуршалина", "Сомкина", "Бояринов", "Коленко", "Меншикова", "Бойков", "Ябловский", "Любова", "Ямпольский", "Фанина", "Молчанова", "Верещагин", "Окладников", "Чичерина", "Ключников", "Барышев", "Вятт", "Толбугин", "Радченко", "Веселкова", "Щавлева", "Слепынина", "Садков", "Барышников", "Бенедиктов", "Графова", "Мирнова", "Васильев", "Никишина", "Краснов", "Набатников", "Пронин", "Стрельцов", "Булка", "Саврасова", "Элиашева", "Канаев", "Кичеева", "Портнова", "Машарин", "Ларина", "Курганова", "Лапаева", "Яшуков", "Шлыков", "Арнаутова", "Ширяев", "Зуев", "Синдеева", "Трутнев", "Кошечкин", "Логинов", "Колпаков", "Бендлина", "Мурзакова", "Витинский", "Ратаева", "Щедрин", "Овощников", "Язвецова", "Крупин", "Седельников", "Юхтрица", "Лыков", "Смешной", "Пожарский", "Мичуев", "Шлиппенбах", "Татаринов", "Янютин", "Кулагина", "Семёнов", "Зверева", "Ивакин", "Бабинова", "Цейдлерин", "Сагадиев", "Истлентьев", "Деменока" };
|
||||||
string[] patronymics = new string[] { "Владимирович(на)", "Олегович(на)", "Александрович(на)", "Алексеевич(на)", "Генадьевич(на)", "Максимович(на)", "Павлович(на)", "Акимович(на)", "Лукьянович(на)", "Матвеевич(на)", "Адреевич(на)", "Федотович(на)", "Аркадий(на)", "Мстиславович(на)", "Федотович(на)", "Даниилович(на)", "Никитьевич(на)", "Евдокимович(на)", "Валерьевич(на)", "Дамирович(на)", "Клавдьевич(на)", "Мирович(на)", "Миронович(на)", "Платонович(на)", "Игоревич(на)", "Антонович(на)", "Валерьевич(на)", "Модестович(на)", "Тимофеевич(на)", "Владленович(на)", "Дмитриевич(на)", "Бенедиктович(на)", "Рустамович(на)", "Ростиславович(на)", "Николаевич(на)", "Данателович(на)", "Ибрагимович(на)", "Анатольевич(на)" };
|
string[] patronymics = new string[] { "Владимирович(на)", "Олегович(на)", "Александрович(на)", "Алексеевич(на)", "Генадьевич(на)", "Максимович(на)", "Павлович(на)", "Акимович(на)", "Лукьянович(на)", "Матвеевич(на)", "Адреевич(на)", "Федотович(на)", "Аркадий(на)", "Мстиславович(на)", "Федотович(на)", "Даниилович(на)", "Никитьевич(на)", "Евдокимович(на)", "Валерьевич(на)", "Дамирович(на)", "Клавдьевич(на)", "Мирович(на)", "Миронович(на)", "Платонович(на)", "Игоревич(на)", "Антонович(на)", "Валерьевич(на)", "Модестович(на)", "Тимофеевич(на)", "Владленович(на)", "Дмитриевич(на)", "Бенедиктович(на)", "Рустамович(на)", "Ростиславович(на)", "Николаевич(на)", "Данателович(на)", "Ибрагимович(на)", "Анатольевич(на)" };
|
||||||
string[] positions = new string[] { "Администратор","Продавец", "Парикмахер", "Мастер ногтевого сервиса", "Мастер по наращиванию ресниц", "Мастер депиляции", "Массажист", "Визажист", "Косметолог", "Мастер перманентного макияжа" };
|
string[] positions = new string[] { "Администратор", "Продавец", "Парикмахер", "Мастер ногтевого сервиса", "Мастер по наращиванию ресниц", "Мастер депиляции", "Массажист", "Визажист", "Косметолог", "Мастер перманентного макияжа" };
|
||||||
string[] services = new string[] { "Свадебные и вечерние прически", "Завивка и выпрямление волос", "Кератиновое разглаживание", "Долговременная укладка", "Брондирование и колорирование", "Мелирование и блондирование", "Каутеризация", "Ламинирование волос", "Амбре-окрашивание", "Укладки и тонирование", "Цветовой дизайн волос", "Женская, мужская и детская стрижка", "Уход за волосами и лечение волос", "Наращивание и окраска волос", "Биопилинг кожи головы", "Плетение косичек", "Аппаратный", "Классический мужской и детский", "Европейский", "Долгосрочное покрытие гель-лаками(ши-лаками)", "Горячие обвертывания", "Наращивание и коррекция ногтей гелем", "Парафинотерапия", "Артдизайн", "Spa-маникюр", "Отбеливание", "Укрепление натуральных ногтей", "Уход за руками", "Массаж рук", "Лимфодренаж", "Cолярий", "Криодеструкция", "Микродермообразия", "Криотерапия" };
|
string[] services = new string[] { "Свадебные и вечерние прически", "Завивка и выпрямление волос", "Кератиновое разглаживание", "Долговременная укладка", "Брондирование и колорирование", "Мелирование и блондирование", "Каутеризация", "Ламинирование волос", "Амбре-окрашивание", "Укладки и тонирование", "Цветовой дизайн волос", "Женская, мужская и детская стрижка", "Уход за волосами и лечение волос", "Наращивание и окраска волос", "Биопилинг кожи головы", "Плетение косичек", "Аппаратный", "Классический мужской и детский", "Европейский", "Долгосрочное покрытие гель-лаками(ши-лаками)", "Горячие обвертывания", "Наращивание и коррекция ногтей гелем", "Парафинотерапия", "Артдизайн", "Spa-маникюр", "Отбеливание", "Укрепление натуральных ногтей", "Уход за руками", "Массаж рук", "Лимфодренаж", "Cолярий", "Криодеструкция", "Микродермообразия", "Криотерапия" };
|
||||||
Random rd = new Random();
|
Random rd = new Random();
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
@ -47,7 +48,7 @@ namespace BeautySaloonView
|
|||||||
telNo = telNo.Append('8');
|
telNo = telNo.Append('8');
|
||||||
for (int i = 0; i < 10; i++)
|
for (int i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
number = rand.Next(1, 10);
|
number = rand.Next(1, 10);
|
||||||
telNo = telNo.Append(number.ToString());
|
telNo = telNo.Append(number.ToString());
|
||||||
}
|
}
|
||||||
return telNo.ToString();
|
return telNo.ToString();
|
||||||
@ -56,31 +57,31 @@ namespace BeautySaloonView
|
|||||||
{
|
{
|
||||||
DateTime start = new DateTime(1970, 1, 1);
|
DateTime start = new DateTime(1970, 1, 1);
|
||||||
int range = (DateTime.Today - start).Days;
|
int range = (DateTime.Today - start).Days;
|
||||||
return start.AddDays(rd.Next(range)).AddHours(rd.Next(0,24)).AddMinutes(rd.Next(0,60));
|
return start.AddDays(rd.Next(range)).AddHours(rd.Next(0, 24)).AddMinutes(rd.Next(0, 60));
|
||||||
}
|
}
|
||||||
private void ButtonAdd_Click(object sender, EventArgs e)
|
private void ButtonAdd_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SList?.Count == 0)
|
if (SList?.Count == 0)
|
||||||
foreach (string service in services)
|
foreach (string service in services)
|
||||||
{
|
|
||||||
var model = new ServiceBindingModel
|
|
||||||
{
|
{
|
||||||
Id = 0,
|
var model = new ServiceBindingModel
|
||||||
Name = service,
|
{
|
||||||
Price = rd.Next(1, 10001)
|
Id = 0,
|
||||||
};
|
Name = service,
|
||||||
_SLogic.Create(model);
|
Price = rd.Next(1, 10001)
|
||||||
|
};
|
||||||
|
_SLogic.Create(model);
|
||||||
}
|
}
|
||||||
if (PList?.Count == 0)
|
if (PList?.Count == 0)
|
||||||
foreach (string pos in positions)
|
foreach (string pos in positions)
|
||||||
{
|
|
||||||
var model = new PositionBindingModel
|
|
||||||
{
|
{
|
||||||
Id = 0,
|
var model = new PositionBindingModel
|
||||||
Name = pos
|
{
|
||||||
};
|
Id = 0,
|
||||||
_PLogic.Create(model);
|
Name = pos
|
||||||
}
|
};
|
||||||
|
_PLogic.Create(model);
|
||||||
|
}
|
||||||
switch (comboBoxQuery.SelectedItem)
|
switch (comboBoxQuery.SelectedItem)
|
||||||
{
|
{
|
||||||
case "Добавить":
|
case "Добавить":
|
||||||
@ -150,10 +151,10 @@ namespace BeautySaloonView
|
|||||||
{
|
{
|
||||||
Id = 0,
|
Id = 0,
|
||||||
Date = DateOnly.FromDateTime(RandomDate()),
|
Date = DateOnly.FromDateTime(RandomDate()),
|
||||||
Sum = rd.Next(1,10001),
|
Sum = rd.Next(1, 10001),
|
||||||
ClientId = CList?.ElementAt(rd.Next(1, CList.Count)).Id ?? 1,
|
ClientId = CList?.ElementAt(rd.Next(1, CList.Count)).Id ?? 1,
|
||||||
EmployeeId = EList?.ElementAt(rd.Next(1, EList.Count)).Id ?? 1,
|
EmployeeId = EList?.ElementAt(rd.Next(1, EList.Count)).Id ?? 1,
|
||||||
OrderServices = new() { { random,
|
OrderServices = new() { { random,
|
||||||
(TimeOnly.FromDateTime(RandomDate()),
|
(TimeOnly.FromDateTime(RandomDate()),
|
||||||
elem, EList?.ElementAt(rd.Next(1, EList.Count)).Id ?? 1) } }
|
elem, EList?.ElementAt(rd.Next(1, EList.Count)).Id ?? 1) } }
|
||||||
};
|
};
|
||||||
@ -206,6 +207,34 @@ namespace BeautySaloonView
|
|||||||
ts2.Milliseconds / 10);
|
ts2.Milliseconds / 10);
|
||||||
label.Text = ("Время: " + elapsedTime2);
|
label.Text = ("Время: " + elapsedTime2);
|
||||||
break;
|
break;
|
||||||
|
case "Сложный запрос":
|
||||||
|
Stopwatch stopwatch3 = new Stopwatch();
|
||||||
|
stopwatch3.Start();
|
||||||
|
using (NewdbContext db = new NewdbContext())
|
||||||
|
{
|
||||||
|
var users = (from o in db.Orders
|
||||||
|
join c in db.Clients on o.ClientId equals c.Id
|
||||||
|
join em in db.Employees on o.EmployeeId equals em.Id
|
||||||
|
join p in db.Positions on em.PositionId equals p.Id
|
||||||
|
where p.Name == "Продавец"
|
||||||
|
orderby o.Date descending, o.Sum descending
|
||||||
|
select new
|
||||||
|
{
|
||||||
|
Id = o.Id,
|
||||||
|
Client = c.Name + ' ' + c.Surname + ' ' + c.Patronymic,
|
||||||
|
Seller = em.Name + ' ' + em.Surname + ' ' + em.Patronymic,
|
||||||
|
Position = p.Name,
|
||||||
|
Date = o.Date,
|
||||||
|
Sum = o.Sum
|
||||||
|
}).ToList();
|
||||||
|
}
|
||||||
|
stopwatch3.Stop();
|
||||||
|
TimeSpan ts3 = stopwatch3.Elapsed;
|
||||||
|
string elapsedTime3 = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
|
||||||
|
ts3.Hours, ts3.Minutes, ts3.Seconds,
|
||||||
|
ts3.Milliseconds / 10);
|
||||||
|
label.Text = ("Время: " + elapsedTime3);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user