private void button4_Click(object sender, EventArgs e) //Кнопка изменения курса товара { if (dataGridView1.SelectedRows.Count > 0) //берем выбранную строку { int index = dataGridView1.SelectedRows[0].Index; //находим по ее индексу элемент в базе данных int id = 0; bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id); if (converted == false) { return; } Item item = db.Items.Find(id);//находим товар и загружаем его данные в форму изменения курса CourseChangeForm form = new CourseChangeForm(); form.textBox2.Text = item.Name; form.textBox3.Text = item.ExchangeRate.ToString(); DialogResult result = form.ShowDialog(this); if (result == DialogResult.Cancel)//После закрытия формы заносим полученные данные в базу { return; } item.ExchangeRate = Convert.ToDouble(form.textBox4.Text); //Меняем курс товара db.SaveChanges(); ExchangeRateHistory erh = new ExchangeRateHistory(); //Делаем запись об изменении курса товара erh.Item = item; erh.ItemId = item.Id; erh.ExchangeRateChange = item.ExchangeRate; erh.DateOfChange = DateTime.Now; item.RateHistory.Add(erh); db.ExchangeRateHistories.Add(erh);//Сохраняем изменения в бд db.SaveChanges(); dataGridView1.Refresh(); Updater(); //Обновляем таблицу курса товара GraphBuild(); //Заново строим график } }
private void button3_Click(object sender, EventArgs e) //Кнопка добавления товара { ItemAddForm form = new ItemAddForm(); //Вызываем форму DialogResult result = form.ShowDialog(this); if (result == DialogResult.Cancel)//После закрытия формы заносим полученные данные в базу { return; } Item item = new Item(); item.Name = form.textBox1.Text; //Создаем товар по введенным данным item.ExchangeRate = Convert.ToDouble(form.textBox2.Text); ExchangeRateHistory erh = new ExchangeRateHistory(); //Делаем запись об изменении курса товара erh.DateOfChange = DateTime.Now; erh.ExchangeRateChange = item.ExchangeRate; erh.Item = item; item.RateHistory.Add(erh); db.Items.Add(item);//Сохраняем запись и товар в бд db.ExchangeRateHistories.Add(erh); db.SaveChanges(); List <Person> users = db.People.Local.Where(u => u.role.Name == "User").ToList();//для каждого юзера создаем баланс этого товара в бд if (users != null) { foreach (Person v in users) { ItemPersonAccount ipa = new ItemPersonAccount(); ipa.Item = item; ipa.ItemQuantity = 0; ipa.Person = v; ipa.PersonId = v.Id; db.ItemPersonAccounts.Add(ipa); v.Accounts.Add(ipa); db.SaveChanges(); } } dataGridView1.Refresh(); //Обновляем таблицу товаров Updater(); //Обновляем таблицу истории курса GraphBuild(); //Заново строим график }
protected override void Seed(webcontext context)//Вносим начальные данные при создании бд { //if (!context.Items.Any()) //{ context.Items.Add(new Item { Name = "BeepCoin", ExchangeRate = 7400.00 }); context.Items.Add(new Item { Name = "Dollar", ExchangeRate = 100.00 }); context.Items.Add(new Item { Name = "EuroCoin", ExchangeRate = 150.00 }); context.Items.Add(new Item { Name = "Rubol", ExchangeRate = 10.00 }); context.Items.Add(new Item { Name = "OilBarrel", ExchangeRate = 20.00 }); context.SaveChanges(); //} //if (!context.Roles.Any()) //{ context.Roles.AddRange(new List <Role> { new Role { Name = "Admin" }, new Role { Name = "User" } }); context.SaveChanges(); //} //if (!context.ExchangeRateHistories.Any()) //{ List <Item> itemslist = context.Items.ToList(); DateTime[] arr = new DateTime[5]; arr[0] = new DateTime(2015, 5, 17, 18, 30, 25); arr[1] = new DateTime(2018, 1, 9, 16, 50, 20); arr[2] = new DateTime(2019, 10, 24, 18, 30, 25); arr[3] = new DateTime(2020, 1, 2, 13, 24, 25); arr[4] = new DateTime(2020, 4, 13, 2, 2, 25); foreach (Item i in itemslist) { Random random = new Random(); double db = i.ExchangeRate; for (int j = 0; j < 4; j++) { ExchangeRateHistory erh = new ExchangeRateHistory { Item = i, ItemId = i.Id, DateOfChange = arr[j], ExchangeRateChange = Math.Round(random.NextDouble() * (db + (db / 5) - (db - (db / 5)) + (db - (db / 5))), 2) }; context.ExchangeRateHistories.Add(erh); i.RateHistory.Add(erh); context.SaveChanges(); } ExchangeRateHistory erhf = new ExchangeRateHistory { Item = i, ItemId = i.Id, DateOfChange = arr[4], ExchangeRateChange = i.ExchangeRate }; context.ExchangeRateHistories.Add(erhf); i.RateHistory.Add(erhf); context.SaveChanges(); } //} }