private void RecentEthnoOrgsForm_Load(object sender, EventArgs e) { using (var context = new LinguisticModel()) этнографическиеорганизацииBindingSource.DataSource = context.Этнографические_организации.ToList() .Where(ethno => ethno.Дата_основания.Year.Equals(DateTime.Now.Year)); ethnoDGV.ReadOnly = true; }
private void ethnoOrgDGV_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { var tag = e.Row.Tag as Этнографические_организации; if (tag == null) { return; } using (var context = new LinguisticModel()) { context.Этнографические_организации.Attach(tag); context.Этнографические_организации.Remove(tag); try { context.SaveChanges(); foreach (DataGridViewRow row in langsCountDGV.SelectedRows) { langsCountDGV.Rows.RemoveAt(row.Index); } } catch (DbUpdateException) { e.Cancel = true; MessageBox.Show(MainLocalization.ErrorOnDelete, MainLocalization.ErrorOnDeleteHeader); } } }
private void langFamsDGV_RowValidating(object sender, DataGridViewCellCancelEventArgs e) { var row = langFamsDGV.Rows[e.RowIndex]; if (!langFamsDGV.IsCurrentRowDirty) { return; } var langFamNameVal = row.Cells[LangFamNameColumn.Name].Value as string; e.Cancel = langFamNameVal == null || langFamNameVal.Replace(" ", "") == "" || langFamNameVal.Length > 50; if (e.Cancel) { row.Cells[LangFamNameColumn.Name].ErrorText = "Введено некорректное название языковой семьи"; return; } var langFamMacroId = row.Cells[LangFamMacroColumn.Name].Value as int?; e.Cancel = (from DataGridViewRow checkedRow in langFamsDGV.Rows where checkedRow.Tag != null select checkedRow.Tag as Языковые_семьи) .Any(checkedL => (!(row.Cells[LangFamIDColumn.Name].Value as int?).HasValue || checkedL.ID != ((int?)row.Cells[LangFamIDColumn.Name].Value).Value) && checkedL.Название == langFamNameVal && checkedL.ID_языковой_макросемьи == langFamMacroId); if (e.Cancel) { row.ErrorText = "Запись совпадает с уже существующей."; return; } row.ErrorText = ""; using (var context = new LinguisticModel()) { var langFam = row.Tag as Языковые_семьи; var isInsert = langFam == null; if (isInsert) { langFam = new Языковые_семьи(); } else { context.Языковые_семьи.Attach(langFam); } langFam.Название = langFamNameVal; langFam.ID_языковой_макросемьи = langFamMacroId; if (isInsert) { context.Языковые_семьи.Add(langFam); } context.SaveChanges(); row.Cells[LangFamIDColumn.Name].Value = langFam.ID; row.Tag = langFam; } foreach (DataGridViewCell cell in row.Cells) { cell.ErrorText = ""; } }
private void langsCountDGV_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { var tag = e.Row.Tag as Число_носителей_языков; if (tag == null) { return; } using (var context = new LinguisticModel()) { context.Число_носителей_языков.Attach(tag); context.Число_носителей_языков.Remove(tag); context.SaveChanges(); } }
private void ethnoOrgDGV_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { foreach (DataGridViewRow row in ethnoOrgsDGV.Rows) { if (row.Tag != null) { continue; } var id = row.Cells[EthnoOrgIDColumn.Name].Value as int?; if (!id.HasValue || id.Value == 0) { continue; } using (var context = new LinguisticModel()) row.Tag = context.Этнографические_организации.Find(id.Value); } }
private void langsDGV_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { LangIDColumn.Visible = false; foreach (DataGridViewRow row in langsDGV.Rows) { if (row.Tag != null) { continue; } var id = row.Cells[LangIDColumn.Name].Value as int?; if (!id.HasValue || id.Value == 0) { continue; } using (var context = new LinguisticModel()) row.Tag = context.Языки.Find(id.Value); } }
private void ARMForm_Load(object sender, EventArgs e) { userLoginStatus.Tag = MainLocalization.UserLoginBase; userRoleStatus.Tag = MainLocalization.UserRoleBase; AuthenticateUser(); using (var context = new LinguisticModel()) { var macroList = new List <Языковые_макросемьи> { new Языковые_макросемьи() }; macroList.AddRange(context.Языковые_макросемьи.ToList()); langMacroFamsBindingSource.DataSource = macroList; langFamsBindingSource.DataSource = context.Языковые_семьи.ToList(); langsBindingSource.DataSource = context.Языки.ToList(); ethnoOrgsBindingSource.DataSource = context.Этнографические_организации.ToList(); langsCountBindingSource.DataSource = context.Число_носителей_языков.ToList(); } }
private void UpToDateLangInfoForm_Load(object sender, System.EventArgs e) { using (var context = new LinguisticModel()) { foreach (var lang in context.Языки.ToList().OrderBy(lang => lang.Название)) { if (lang.Число_носителей_языков.Count == 0) { langsInfoDGV.Rows.Add(lang.Языковые_семьи.Название, lang.Название, "Нет данных", "Нет данных", "Нет данных"); continue; } var maxLCRs = new List <Число_носителей_языков>(); foreach (var lcr in lang.Число_носителей_языков) { if (maxLCRs.Count == 0) { maxLCRs.Add(lcr); continue; } if (maxLCRs[0].Дата_подсчёта.Equals(lcr.Дата_подсчёта)) { maxLCRs.Add(lcr); } else if (maxLCRs[0].Дата_подсчёта < lcr.Дата_подсчёта) { maxLCRs.Clear(); maxLCRs.Add(lcr); } } foreach (var lcr in maxLCRs.OrderBy(lcr => lcr.Число_носителей)) { langsInfoDGV.Rows.Add(lang.Языковые_семьи.Название, lang.Название, lcr.Дата_подсчёта.ToShortDateString(), lcr.Число_носителей, context.Этнографические_организации.Find(lcr.ID_организации__производившей_подсчет).Название); } } } langsInfoDGV.AllowUserToAddRows = false; langsInfoDGV.ReadOnly = true; }
private void langsCountDGV_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { foreach (DataGridViewRow row in langsCountDGV.Rows) { if (row.Tag != null) { continue; } if (row.Cells[LangsColumn.Name].Value == null) { continue; } var langId = row.Cells[LangColumn.Name].Value; row.Cells[EthnoColumn.Name].ReadOnly = true; var date = row.Cells[DateColumn.Name].Value; row.Cells[LangColumn.Name].ReadOnly = true; var ethnoId = row.Cells[EthnoColumn.Name].Value; row.Cells[DateColumn.Name].ReadOnly = true; using (var context = new LinguisticModel()) row.Tag = context.Число_носителей_языков.Find(langId, date, ethnoId); } }
private void langsDGV_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { var tag = e.Row.Tag as Языки; if (tag == null) { return; } using (var context = new LinguisticModel()) { context.Языки.Attach(tag); context.Языки.Remove(tag); try { context.SaveChanges(); } catch (DbUpdateException) { e.Cancel = true; MessageBox.Show(MainLocalization.ErrorOnDelete, MainLocalization.ErrorOnDeleteHeader); } } }
private void langsCountDGV_RowValidating(object sender, DataGridViewCellCancelEventArgs e) { var row = langsCountDGV.Rows[e.RowIndex]; if (!langsCountDGV.IsCurrentRowDirty) { return; } var lcRecord = row.Tag as Число_носителей_языков; var ethnoOrgId = row.Cells[EthnoColumn.Name].Value as int?; var langId = row.Cells[LangColumn.Name].Value as int?; var dateVal = ((DateTime)row.Cells[DateColumn.Name].Value).Date; var isInsert = lcRecord == null; if (isInsert) { e.Cancel = !ethnoOrgId.HasValue; if (e.Cancel) { row.Cells[EthnoColumn.Name].ErrorText = "Должна быть выбрана организация"; return; } ; e.Cancel = !langId.HasValue; if (e.Cancel) { row.Cells[LangColumn.Name].ErrorText = "Должен быть выбран язык"; return; } e.Cancel = (from DataGridViewRow checkedRow in langsCountDGV.Rows where checkedRow.Tag != null select checkedRow.Tag as Число_носителей_языков) .Any(checkedLcRecord => checkedLcRecord.ID_организации__производившей_подсчет == ethnoOrgId && checkedLcRecord.ID_языка == langId && checkedLcRecord.Дата_подсчёта.Date.Equals(dateVal)); if (e.Cancel) { row.ErrorText = "Запись с указанными ключевыми значениями уже существует."; return; } row.ErrorText = ""; } var countVal = row.Cells[CountColumn.Name].Value as int?; e.Cancel = !countVal.HasValue || countVal < 0; if (e.Cancel) { row.Cells[CountColumn.Name].ErrorText = "Введено некорректное число"; return; } using (var context = new LinguisticModel()) { if (!isInsert) { context.Число_носителей_языков.Attach(lcRecord); } else { lcRecord = new Число_носителей_языков(); } lcRecord.Число_носителей = countVal.Value; if (isInsert) { lcRecord.ID_организации__производившей_подсчет = ethnoOrgId.Value; lcRecord.ID_языка = langId.Value; var language = (from DataGridViewRow r in langsDGV.Rows where r.Tag != null select r.Tag as Языки) .First(lang => lang.ID == langId.Value); context.Языки.Attach(language); language.Число_носителей_языков.Add(lcRecord); lcRecord.Языки = language; row.Cells[LangsColumn.Name].Value = lcRecord.Языки; lcRecord.Дата_подсчёта = dateVal; row.Cells[EthnoColumn.Name].ReadOnly = true; row.Cells[LangColumn.Name].ReadOnly = true; row.Cells[DateColumn.Name].ReadOnly = true; context.Число_носителей_языков.Add(lcRecord); } context.SaveChanges(); row.Tag = lcRecord; } foreach (DataGridViewCell cell in row.Cells) { cell.ErrorText = ""; } }
private void ethnoOrgDGV_RowValidating(object sender, DataGridViewCellCancelEventArgs e) { var row = ethnoOrgsDGV.Rows[e.RowIndex]; if (!ethnoOrgsDGV.IsCurrentRowDirty) { return; } var ethnoNameVal = row.Cells[EthnoOrgNameColumn.Name].Value as string; e.Cancel = ethnoNameVal == null || ethnoNameVal.Replace(" ", "") == "" || ethnoNameVal.Length > 50; if (e.Cancel) { row.Cells[EthnoOrgNameColumn.Name].ErrorText = "Введено некорректное название этнографической организации"; return; } var hqVal = row.Cells[EthnoOrgHQColumn.Name].Value as string; e.Cancel = hqVal == null || hqVal.Replace(" ", "") == "" || hqVal.Length > 160; if (e.Cancel) { row.Cells[EthnoOrgHQColumn.Name].ErrorText = "Введено некорректное местоположение штаб-квартиры"; return; } var date = ((DateTime)row.Cells[EthnoOrgDateColumn.Name].Value).Date; using (var context = new LinguisticModel()) { e.Cancel = context.Этнографические_организации.Any(ethno => (!(row.Cells[EthnoOrgIDColumn.Name].Value as int?).HasValue || ethno.ID != ((int?)row.Cells[EthnoOrgIDColumn.Name].Value).Value) && ethno.Название == ethnoNameVal && ethno.Штаб_квартира == hqVal && ethno.Дата_основания.Equals(date)); if (e.Cancel) { row.ErrorText = "Запись совпадает с уже существующей"; return; } row.ErrorText = ""; var ethnoOrg = row.Tag as Этнографические_организации; var isInsert = ethnoOrg == null; if (isInsert) { ethnoOrg = new Этнографические_организации(); } else { context.Этнографические_организации.Attach(ethnoOrg); } ethnoOrg.Название = ethnoNameVal; ethnoOrg.Штаб_квартира = hqVal; ethnoOrg.Дата_основания = date; if (isInsert) { context.Этнографические_организации.Add(ethnoOrg); } context.SaveChanges(); row.Cells[EthnoOrgIDColumn.Name].Value = ethnoOrg.ID; row.Tag = ethnoOrg; } foreach (DataGridViewCell cell in row.Cells) { cell.ErrorText = ""; } }