Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
        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);
                }
            }
        }
Ejemplo n.º 3
0
        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 = "";
            }
        }
Ejemplo n.º 4
0
        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();
            }
        }
Ejemplo n.º 5
0
 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);
     }
 }
Ejemplo n.º 6
0
 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);
     }
 }
Ejemplo n.º 7
0
 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();
     }
 }
Ejemplo n.º 8
0
 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;
 }
Ejemplo n.º 9
0
 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);
     }
 }
Ejemplo n.º 10
0
        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);
                }
            }
        }
Ejemplo n.º 11
0
        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 = "";
            }
        }
Ejemplo n.º 12
0
        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 = "";
            }
        }