private void dismissStripButton_Click(object sender, EventArgs e) { AnketaUvolitForm tmpform = new AnketaUvolitForm(); tmpform.Owner = this; DialogResult dRes = tmpform.ShowDialog(this); if (dRes == DialogResult.OK) { List <DataRowView> persons = GetSelectedRows(); List <long> personIdList = new List <long>(); foreach (DataRowView rowItem in persons) { personIdList.Add((long)rowItem[PersonView.id]); } PersonOrg.SetStateToUvolit(personIdList, _org.idVal, tmpform.DismissDate, _connection); foreach (DataRowView rowItem in persons) { rowItem[PersonView.state] = (int)PersonView.PersonState.Uvolen; rowItem[PersonView.dismissDate] = tmpform.DismissDate; rowItem[Check] = false; rowItem.EndEdit(); } _personBS.MoveFirst(); } }
private void delOrgStripButton_Click(object sender, EventArgs e) { DataRowView curOrg = (DataRowView)_orgBS.Current; if (curOrg == null) { MainForm.ShowInfoMessage("Необходимо выбрать запись!", "Ошибка выбора организации"); return; } long countPersonId = PersonOrg.GetCountPersonId((long)(_orgBS.Current as DataRowView)[Org.id], _connection); if (countPersonId != -1 && countPersonId > 0) { MainForm.ShowInfoMessage( "Нельзя удалить организацию,\nтак как в данной организации имеются работники!", "Предупреждение"); return; } DialogResult dRes = MainForm.ShowQuestionMessage("Вы действительно желаете удалить организацию?", "Удаление организации"); if (dRes == DialogResult.Yes) { _orgBS.Remove(curOrg); _orgAdapter.Update(_orgTable); //_orgAdapter.Fill(_orgTable); _dialogResult = DialogResult.OK; } }
private void acceptButton_Click(object sender, EventArgs e) { List <long> checkedOrgList = new List <long>(); List <long> uncheckedOrgList = new List <long>(); // разделить организации на отмеченные и неотмеченные foreach (DataRowView rowItem in _orgBS) { if ((bool)rowItem[Check]) { checkedOrgList.Add((long)rowItem[Org.id]); } else { uncheckedOrgList.Add((long)rowItem[Org.id]); } } // сменить контейнеры хранения ID организаций long[] checkedOrgs = checkedOrgList.ToArray(); long[] uncheckedOrgs = uncheckedOrgList.ToArray(); // получить ID Организаций из БД, за которыми сейчас закреплена Перcона long[] orgs = PersonOrg.GetOrgID((long)_personRow[PersonView.id], _connection); // объединить множества ID Организаций выбранных из БД и отмеченных пользователем orgs = (long[])orgs.Union(checkedOrgs).Distinct().ToArray(); // получить пересечение множеств ID Организаций, к которым в общем закреплена Персона // и ID Организаций, с которых Персона должна быть откреплена long[] intersect = (long[])orgs.Intersect(uncheckedOrgs).Distinct().ToArray(); // если множество пересечения больше множества, к которым в общем прикреплена Персона, // то вывести сообщение и прекратить выполнение сохранения в БД if (intersect.Length >= orgs.Length) { MainForm.ShowWarningMessage("Анкетные данные должны быть привязаны хотя бы к одной организации!", "Внимание"); return; } // Вставить записи с отмеченными Организациями и выбранным Пользователем PersonOrg.InsertPersonOrg((long)_personRow[PersonView.id], checkedOrgs, _connection); // Удалить записи с неотмеченными Организациями и выбранным Пользователем PersonOrg.DeletePersonOrg((long)_personRow[PersonView.id], uncheckedOrgs, _connection); this.DialogResult = DialogResult.OK; this.Close(); }
private void restoreStripButton_Click(object sender, EventArgs e) { List <DataRowView> persons = GetSelectedRows(); List <long> personIdList = new List <long>(); foreach (DataRowView rowItem in persons) { personIdList.Add((long)rowItem[PersonView.id]); } PersonOrg.SetStateToRabotaet(personIdList, _org.idVal, _connection); foreach (DataRowView rowItem in persons) { rowItem[PersonView.state] = (int)PersonView.PersonState.Rabotaet; rowItem[PersonView.dismissDate] = DBNull.Value; rowItem[Check] = false; rowItem.EndEdit(); } _personBS.MoveFirst(); }
private void InsertDataToDB() { // создание соединения с БД SQLiteConnection connection = new SQLiteConnection(_connection); // создание команд для вставки SQLiteCommand insPerson = PersonInfo.CreateInsertCommand(); SQLiteCommand insRegadr = Adress.CreateInsertCommand(); SQLiteCommand insFactadr = Adress.CreateInsertCommand(); SQLiteCommand insBornadr = Adress.CreateInsertCommand(); SQLiteCommand insIDoc = IDocInfo.CreateInsertCommand(); SQLiteCommand insFixdata = new SQLiteCommand(); SQLiteCommand insPersonOrg = new SQLiteCommand(); // присвоение подключения командам insPerson.Connection = connection; insRegadr.Connection = connection; insFactadr.Connection = connection; insBornadr.Connection = connection; insIDoc.Connection = connection; insFixdata.Connection = connection; insPersonOrg.Connection = connection; // заполнение команд параметрами SetRegAdressValues(insRegadr); SetFactAdressValues(insFactadr); SetBornplaceValues(insBornadr); SetDocValues(insIDoc); // открытие соединения connection.Open(); // создание транзакции SQLiteTransaction transaction = connection.BeginTransaction(); // присвоение транзакции командам insPersonOrg.Transaction = insFixdata.Transaction = insFactadr.Transaction = insRegadr.Transaction = insBornadr.Transaction = insIDoc.Transaction = insPerson.Transaction = transaction; // выполнение запросов для вставки данных в смежные таблицы // вставка прописки и получение ID записи _regadrID = (long)insRegadr.ExecuteScalar(); // если фактический адресс проживания отличается от прописки if (adressrealCheckBox.Checked) { // вставка адресса проживания и получение ID записи _factadrID = (long)insFactadr.ExecuteScalar(); } else // если адресс прописки совпадает с адрессом фактического проживания { _factadrID = _regadrID; } // вставка места рождения и получение ID записи _bornadrID = (long)insBornadr.ExecuteScalar(); // вставка документа и получение ID записи _idocID = (long)insIDoc.ExecuteScalar(); // заполнение команды вставки Персоны параметрами, // в том числе определенными ID ранее вставленных записей адрессов и документа SetPersonValues(insPerson); // исполнение команды вставки Персоны _personID = (long)insPerson.ExecuteScalar(); // выполнение запроса на фиксацию факта создания записи insFixdata.CommandText = FixData.GetReplaceText(PersonInfo.tablename, FixData.FixType.New, _personID, _operName, DateTime.Now); insFixdata.ExecuteNonQuery(); insPersonOrg.CommandText = PersonOrg.GetInsertPersonOrgText(_personID, _orgID); insPersonOrg.ExecuteScalar(); // подтверждение транзакции insRegadr.Transaction.Commit(); // закрытие соединения connection.Close(); }
private void AnketaPersonOrgForm_Load(object sender, EventArgs e) { // инициализация таблицы организаций _orgTable = Org.CreateTable(); // добавление столбца для отметок (пометок) _orgTable.Columns.Add(Check, typeof(bool)); _orgTable.Columns[Check].DefaultValue = false; // определение бинда _orgBS = new BindingSource(); // привязка к источнику _orgBS.DataSource = _orgTable; // запрет на автогенерацию столбцов вьюшки this.orgView.AutoGenerateColumns = false; // привязка к источнику this.orgView.DataSource = _orgBS; this.orgView.Sorted += new EventHandler(orgView_Sorted); // если оператор определен и соединение определено if (_operator != null && _connection != null) { // определение адаптера для считывания записей с данными об организациях string selectcommand; // если оператор - Администратор, то выбрать команду для выбора всех имеющихся организациях if (_operator.IsAdmin()) { selectcommand = Org.GetSelectCommandText(); } else // иначе выбрать толькоте организации, к которым оператор имеет доступ для редактирования { selectcommand = Org.GetSelectTextByOperatorAccess(_operator.idVal); } // инизаализация адаптера SQLiteDataAdapter adapter = new SQLiteDataAdapter(selectcommand, _connection); // заполнение таблицы данными из БД adapter.Fill(_orgTable); // получение списка ID организаций, в которых числиться выбранная Персона (физическое лицо) long[] orgIDArray = PersonOrg.GetOrgID((long)_personRow[PersonView.id], _connection); // отметить из выбранных Организаций те, к которым привязана Персона foreach (long id in orgIDArray) { int i = _orgBS.Find(Org.id, id); if (i >= 0) { DataRowView tmpRow = _orgBS[i] as DataRowView; tmpRow[Check] = true; } } // принять изменения (отметки) _orgBS.EndEdit(); // выбрать организации в которых есть документы на человека _orgIds = Org.GetOrgsIdWithDocsForPerson((long)_personRow[PersonView.id], _connection); // сделать readOnly организации в которых есть документы DisableCheckBoxInView(); // выделить струку с текущей Организацией (усьановить задний фон) this.MarkCurOrgRow(); // отобразить на форме страховой номер и фио выбранной Персоны personDataLabel.Text = string.Format("{0} {1}", _personRow[PersonView.socNumber], _personRow[PersonView.fio]); } }
public static void Initialize(WideWorldContext context) { context.Database.EnsureCreated(); string insertSqlCmd; System.IO.StreamReader file; // Check for previously populated Countries table if (!context.Countries.Any()) { // Insert Countries file = new System.IO.StreamReader(".\\Data\\InsertCountries.sql"); while ((insertSqlCmd = file.ReadLine()) != null) { context.RawSqlReturn.FromSql("set identity_insert Application.Countries ON; " + insertSqlCmd + "select 1 as Id;").ToList(); } file.Close(); context.RawSqlReturn.FromSql("set identity_insert Application.Countries OFF; select 1 as Id;").ToList(); context.SaveChanges(); } if (!context.StateProvinces.Any()) { // Insert StateProvinces file = new System.IO.StreamReader(".\\Data\\InsertStateProvinces.sql"); while ((insertSqlCmd = file.ReadLine()) != null) { context.RawSqlReturn.FromSql("set identity_insert Application.StateProvinces ON; " + insertSqlCmd + "select 1 as Id;").ToList(); } file.Close(); context.RawSqlReturn.FromSql("set identity_insert Application.StateProvinces OFF; select 1 as Id;").ToList(); context.SaveChanges(); } if (!context.Cities.Any()) { // Insert Cities file = new System.IO.StreamReader(".\\Data\\InsertCities.sql"); while ((insertSqlCmd = file.ReadLine()) != null) { context.RawSqlReturn.FromSql("set identity_insert Application.Cities ON; " + insertSqlCmd + "select 1 as Id;").ToList(); } file.Close(); context.RawSqlReturn.FromSql("set identity_insert Application.Cities OFF; select 1 as Id;").ToList(); context.SaveChanges(); } // Load Users using SQL INSERT commands // Check for previously populated Users table if (!context.Users.Any()) { // Insert Users file = new System.IO.StreamReader(".\\Data\\InsertUsers.sql"); while ((insertSqlCmd = file.ReadLine()) != null) { context.RawSqlReturn.FromSql("set identity_insert Users ON; " + insertSqlCmd + "select 1 as Id;").ToList(); } file.Close(); context.RawSqlReturn.FromSql("set identity_insert Users OFF; select 1 as Id;").ToList(); context.SaveChanges(); } // Load People using SQL INSERT commands // Check for previously populated People table if (!context.People.Any()) { // Insert People file = new System.IO.StreamReader(".\\Data\\InsertPeople.sql"); while ((insertSqlCmd = file.ReadLine()) != null) { context.RawSqlReturn.FromSql("set identity_insert People ON; " + insertSqlCmd + "select 1 as Id;").ToList(); } file.Close(); context.RawSqlReturn.FromSql("set identity_insert People OFF; select 1 as Id;").ToList(); context.SaveChanges(); } // Load OrgRoles using SQL INSERT commands // Check for previously populated OrgRoles table if (!context.OrgRoles.Any()) { // Insert OrRoles file = new System.IO.StreamReader(".\\Data\\InsertOrgRoles.sql"); while ((insertSqlCmd = file.ReadLine()) != null) { context.RawSqlReturn.FromSql("set identity_insert OrgRoles ON; " + insertSqlCmd + "select 1 as Id;").ToList(); } file.Close(); context.RawSqlReturn.FromSql("set identity_insert OrgRoles OFF; select 1 as Id;").ToList(); context.SaveChanges(); } // Load Organizations using SQL INSERT commands // Check for previously populated Organizations table if (!context.Organizations.Any()) { // Insert Organizations file = new System.IO.StreamReader(".\\Data\\InsertOrganizations.sql"); while ((insertSqlCmd = file.ReadLine()) != null) { context.RawSqlReturn.FromSql("set identity_insert Organizations ON; " + insertSqlCmd + "select 1 as Id;").ToList(); } file.Close(); context.RawSqlReturn.FromSql("set identity_insert Organizations OFF; select 1 as Id;").ToList(); context.SaveChanges(); } // Load OrgLocations using SQL INSERT commands // Check for previously populated OrgLocations table if (!context.OrgLocations.Any()) { // Insert OrgLocations file = new System.IO.StreamReader(".\\Data\\InsertOrgLocations.sql"); while ((insertSqlCmd = file.ReadLine()) != null) { context.RawSqlReturn.FromSql("set identity_insert OrgLocations ON; " + insertSqlCmd + "select 1 as Id;").ToList(); } file.Close(); context.RawSqlReturn.FromSql("set identity_insert OrgLocations OFF; select 1 as Id;").ToList(); context.SaveChanges(); } if (!context.PeopleOrgs.Any()) { PersonOrg[] peopleOrgs = new PersonOrg[] { new PersonOrg { PersonId = 1017, OrgId = 934, LastEditedBy = 1 }, new PersonOrg { PersonId = 1017, OrgId = 1934, LastEditedBy = 1 }, new PersonOrg { PersonId = 1017, OrgId = 642, LastEditedBy = 1 }, new PersonOrg { PersonId = 2147, OrgId = 1934, LastEditedBy = 1 }, new PersonOrg { PersonId = 2147, OrgId = 642, LastEditedBy = 1 }, new PersonOrg { PersonId = 2147, OrgId = 302, LastEditedBy = 1 }, new PersonOrg { PersonId = 3044, OrgId = 642, LastEditedBy = 1 }, new PersonOrg { PersonId = 3044, OrgId = 302, LastEditedBy = 1 }, new PersonOrg { PersonId = 3044, OrgId = 930, LastEditedBy = 1 } }; foreach (PersonOrg po in peopleOrgs) { context.PeopleOrgs.Add(po); } context.SaveChanges(); } }