private void Button_Click_1(object sender, RoutedEventArgs e) { cat.EnableValidation = true; if (string.IsNullOrEmpty(cat.Error)) { if (!string.IsNullOrEmpty(file_selected)) { string ext = Path.GetExtension(file_selected); string fileName = Path.GetRandomFileName() + ext; string fileSavePath = Path.Combine(Directory.GetCurrentDirectory(), "images", fileName); var bmp = ResizeImage.ResizeOrigImg( new Bitmap(System.Drawing.Image.FromFile(file_selected)), 75, 75); bmp.Save(fileSavePath, ImageFormat.Jpeg); file_name = fileSavePath; } var cat_info = new AppCat { Name = tbname.Text, Birth = (DateTime)bdcat.SelectedDate, Description = tbdesc.Text, Gender = cbitem.Text.ToString(), Image = file_name }; cat_info.AppCatPrices = new List <AppCatPrice> { new AppCatPrice { CatId = cat_info.Id, DateCreate = DateTime.Now, Price = decimal.Parse(tbprice.Text) } }; _cats.Add(new CatVM { Id = cat_info.Id.ToString(), Name = cat_info.Name, Birthday = cat_info.Birth, Description = cat_info.Description, Image = cat_info.Image }); _context.Add(cat_info); _context.SaveChanges(); Close(); } else { MessageBox.Show(cat.Error); } }
private static void SeedCats(EFDataContext context) { if (!context.Cats.Any()) { AppCat cat = new AppCat { Name = "Манул", Details = "Деталі про манула", Birthday = DateTime.Now, ImgUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Manoel.jpg/275px-Manoel.jpg", }; context.Cats.Add(cat); context.SaveChanges(); var firstCat = context.Cats.FirstOrDefault(); AppCatPrice price = new AppCatPrice { CatId = firstCat.Id, DateCreate = DateTime.Now, Price = 500 }; context.CatPrices.Add(price); context.SaveChanges(); } }
/// <summary> /// Метод, який початково заповнює /// БД синхронно /// </summary> /// <param name="context">Приймає обєкт, який є звязком з БД</param> private static void SeedAll(EFContext context) { // Перевірка чи БД не пуста if (!context.Cats.Any()) { // Ініціалізація обєкту AppCat AppCat cat = new AppCat { Name = "Вася", Birthday = DateTime.Now, ImgUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Manoel.jpg/275px-Manoel.jpg", }; // Запис нового обєкту у БД context.Cats.Add(cat); // Збереження змін context.SaveChanges(); // Ініціалізація нового обєкту AppPrice, // який привязується до елемента AppCat AppPrice price = new AppPrice { DateCreate = DateTime.Now, CatId = cat.Id, Price = 500 }; // Запис нового обєкту у БД context.CatPrices.Add(price); // Збереження змін context.SaveChanges(); } }
// Збереження нового кота private void SaveCat_Click(object sender, RoutedEventArgs e) { newCat.EnableValidation = true; if (string.IsNullOrEmpty(newCat.Error)) { MessageBox.Show("Додавання успішне"); var extension = Path.GetExtension(FileName); var imageName = Path.GetRandomFileName() + extension; var dir = Directory.GetCurrentDirectory(); var saveDir = Path.Combine(dir, "images"); if (!Directory.Exists(saveDir)) { Directory.CreateDirectory(saveDir); } var fileSave = Path.Combine(saveDir, imageName); File.Copy(FileName, fileSave); var cat = new AppCat { Name = tbName.Text, Gender = _gender, Birthday = (DateTime)dpDate.SelectedDate, Details = tbDetails.Text, Image = fileSave }; cat.AppCatPrices = new List <AppCatPrice> { new AppCatPrice { CatId = cat.Id, DateCreate = DateTime.Now, Price = decimal.Parse(tbPrice.Text) } }; _context.Add(cat); _context.SaveChanges(); _cats.Add(new CatVM { Id = cat.Id, Name = cat.Name, Birthday = cat.Birthday, Details = cat.Details, ImageUrl = cat.Image }); this.Close(); } else { MessageBox.Show(newCat.Error); } }
public IActionResult AppraisalTemplate(string id) { var orgId = getOrg(); var idsplit = id.Split(','); Guid ids = Guid.Parse(idsplit[0]); Guid appId = Guid.Parse(idsplit[1]); AppraisalViewTemplateViewModel avtVM = new AppraisalViewTemplateViewModel(); List <AppCat> appCat = new List <AppCat>(); List <AppraisalKPI> kPIs; AppCat sAppCat; List <Guid> kpiId = new List <Guid>(); var temp = _context.AppraisalTemplates.Where(x => x.Id == ids).FirstOrDefault(); var appCats = _context.AppraisalTemplateCategories.Where(x => x.AppraisalTemplateId == ids).Include(x => x.AppraisalCategory).ToList(); var kpi = _context.AppraisalKPIs.Where(x => x.OrganisationId == orgId); avtVM.TemplateName = temp.Template; AppraisalCategoryEdit ace; foreach (var item in appCats) { sAppCat = new AppCat(); ace = new AppraisalCategoryEdit(); kPIs = new List <AppraisalKPI>(); sAppCat.AppraisalTemplateCategory = item; ace.AppraisalCategory = item.AppraisalCategory; kPIs = kpi.Where(x => x.AppraisalCategoryId == item.AppraisalCategoryId).ToList(); kpiId.AddRange(kPIs.Select(x => x.Id)); ace.AppraisalKPIs = kPIs; sAppCat.AppraisalCategoryEdit = ace; appCat.Add(sAppCat); } avtVM.AppCat = appCat; avtVM.kpiId = kpiId; avtVM.AppTemId = appId; return(View(avtVM)); }
private void AddCats() { ParallelOptions parOpt = new ParallelOptions(); parOpt.MaxDegreeOfParallelism = System.Environment.ProcessorCount; parOpt.CancellationToken = tokenSource.Token; Parallel.Invoke(parOpt, new Action(() => { for (int i = 1; i <= _result; i++) { try { parOpt.CancellationToken.ThrowIfCancellationRequested(); Dispatcher.Invoke(new Action(() => { this.catProgres.Value = i; })); Thread.Sleep(300); CatModel model = faker.Generate(); AppCat cat = new AppCat { Name = model.Name, ImgUrl = model.ImgUrl, Details = model.Details, Birthday = model.Birthday, }; _context.Cats.Add(cat); _context.SaveChanges(); AppCatPrice price = new AppCatPrice { DateCreate = DateTime.Now, CatId = cat.Id, Price = model.Price }; _context.CatPrices.Add(price); _context.SaveChanges(); } catch { return; } } })); }
public void InsertCats(int count, ManualResetEvent mrse) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); for (int i = 0; i < count; i++) { mrse.WaitOne(); if (CanselAsyncMethod) { CanselAsyncMethod = false; break; } AppCat appCat = new AppCat { Name = "Name" + i, Birthday = DateTime.Now, Details = "asdfaf", Gender = true, Image = "Image" }; _context.Cats.Add(appCat); _context.SaveChanges(); //if (EventInsertItem != null) // EventInsertItem(i+1); EventInsertItem?.Invoke(i + 1); Debug.WriteLine("Insert cat " + appCat.Id); } ; stopWatch.Stop(); // Get the elapsed time as a TimeSpan value. TimeSpan ts = stopWatch.Elapsed; // Format and display the TimeSpan value. string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); Debug.WriteLine("Час додавання котів: " + elapsedTime); }
public IActionResult ViewTemplate(Guid id) { var orgId = getOrg(); AppraisalViewTemplateViewModel avtVM = new AppraisalViewTemplateViewModel(); List <AppCat> appCat = new List <AppCat>(); List <AppraisalKPI> kPIs; AppCat sAppCat; var temp = _context.AppraisalTemplates.Where(x => x.Id == id).FirstOrDefault(); var appCats = _context.AppraisalTemplateCategories.Where(x => x.AppraisalTemplateId == id).Include(x => x.AppraisalCategory).ToList(); var kpi = _context.AppraisalKPIs.Where(x => x.OrganisationId == orgId); avtVM.TemplateName = temp.Template; AppraisalCategoryEdit ace; foreach (var item in appCats) { sAppCat = new AppCat(); ace = new AppraisalCategoryEdit(); kPIs = new List <AppraisalKPI>(); sAppCat.AppraisalTemplateCategory = item; ace.AppraisalCategory = item.AppraisalCategory; kPIs = kpi.Where(x => x.AppraisalCategoryId == item.AppraisalCategoryId).ToList(); ace.AppraisalKPIs = kPIs; sAppCat.AppraisalCategoryEdit = ace; appCat.Add(sAppCat); } avtVM.AppCat = appCat; return(View(avtVM)); }
/// <summary> /// Додавання котів в базу Богусом. /// </summary> public void AddCat(int count, ManualResetEvent mrse) { //Ліст згенерованих даних Богусом. List <AppCat> cat = new List <AppCat>(); //Новий створений Ліст,куди будуть додаватись коти в процесі додавання в БД(але без запису в БД!). // List<AppCat> check = new List<AppCat>(); //Змінні необхідні для заповнення Богусом. DateTime start = new DateTime(1998, 03, 05); DateTime end = new DateTime(2020, 12, 30); //Знаходжу найбільший Айді кота,тобто останній доданий. int idvalue = context.Cats.Max(z => z.Id); //Збільшую на 1,щоб уникнути повтора праймері кі,тобто щоб не було виключення. int newval = idvalue + 1; //Генерація даних Богусом. var catss = new Faker <AppCat>("uk") .RuleFor(x => x.Id, f => newval++) .RuleFor(x => x.Name, f => f.Lorem.Word()) .RuleFor(x => x.Birth, f => f.Date.Between(start, end)) .RuleFor(x => x.Description, f => f.Lorem.Text()) .RuleFor(x => x.Gender, f => f.Person.Gender.ToString()); //додавання в Ліст згенероаних даних,відповідно до вказаної кількості. for (int i = 0; i < count; i++) { cat.Add(catss.Generate()); } //початок відліку часу,витраченого на додавання котів. Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); using var transaction = context.Database.BeginTransaction(); { try { for (int j = 0; j < cat.Count; j++) { mrse.WaitOne(); //якщо натиснута кнопка СТОП,виходимо і кнопка стане не активна. if (IsCancelled) { break; } //Додавання котів в БД. AppCat appCat = new AppCat { Id = cat[j].Id, Name = cat[j].Name, Birth = cat[j].Birth, Description = cat[j].Description, Gender = cat[j].Gender, Image = cat[j].Image }; context.Cats.Add(appCat); context.SaveChanges(); //кожен доданий кіт додається в цей створений Ліст. // check.Add(appCat); AddNewCatItem?.Invoke(j + 1); Debug.WriteLine("Insert cat " + appCat.Id); //Debug.WriteLine("check-" + check.Count); //Debug.WriteLine("cat-" + count); Thread.Sleep(2000); } //Перевірка кількості елементів в Лісті з котами і вказаною для додавання кількістю котів. //Debug.WriteLine("check-" + check.Count); Debug.WriteLine("cat-" + count); //Якщо вони будуть рівні,то коти з Ліст чек,будуть записані в базу. //if (check.Count == cat.Count) //{ // foreach (var item in check) // { // //Якщо вони рівні,тобто в Ліст потрапила та кількість котів,що ми хотіли додати, // //то кожен з них записується і зберігається в БД. // context.Cats.Add(item); // context.SaveChanges(); // } //} //Кінець підрахунку часу,витраченого на додавання. stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; //Отримали час. string elapsedTime = string.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); //Вивели. Debug.WriteLine("Час додавання котів: " + elapsedTime); if (!IsCancelled) { transaction.Commit(); } } catch { transaction.Rollback(); } } }