示例#1
0
 private void SetDefaultControls(SubDivision subDiv)
 {
     using (DBConteiner db = new DBConteiner())
     {
         try
         {
             SelectedSubDivivsion = db.SubDivisions.Where(e => e.SubDivisionId == subDiv.SubDivisionId).FirstOrDefault();
             ParentSubDiv_comboBox.SelectedItem = SelectedSubDivivsion;
             dateTimePicker1.Value  = subDiv.CreateDate;
             checkBox1.Checked      = false;
             dateTimePicker2.Value  = subDiv.CollapsDate;
             SubDivName_txtBox.Text = subDiv.SubDivName;
         }
         catch (ArgumentNullException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (OverflowException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.SqlClient.SqlException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityException ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
示例#2
0
        //for edit operations
        private void PreviosLoadData(int empId, int subId)
        {
            SubDivRecordsFill(subId);
            ShowEmpSubDivs(empId);

            using (DBConteiner db = new DBConteiner())
            {
                try
                {
                    SelectedEmployee = db.Employees.Where(e => e.EmployeeId == empId).FirstOrDefault();
                }
                catch (ArgumentNullException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (OverflowException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
示例#3
0
 //here we fill in previos data to DB
 private void PreviosDataLoad()
 {
     treeView1.Nodes.Clear();
     using (DBConteiner db = new DBConteiner())
     {
         try
         {
             SubDivRecords = new List <SubDivision>(db.SubDivisions.ToList().OrderBy(e => e.SubDivName));
             PopulateTreeView(null, null);
         }
         catch (ArgumentNullException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (OverflowException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.SqlClient.SqlException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityException ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
示例#4
0
 private void GetSelectedSubDiv(int Id)
 {
     using (DBConteiner db = new DBConteiner())
     {
         try
         {
             SelectedSubDiv = db.SubDivisions.Where(item => item.SubDivisionId == Id).FirstOrDefault();
         }
         catch (ArgumentNullException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (OverflowException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.SqlClient.SqlException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityException ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
示例#5
0
 private void CloseSubdivision()
 {
     if (dateTimePicker2.Value < NewdSubDivivsion.CreateDate || dateTimePicker2.Value > DateTime.Now)
     {
         MessageBox.Show("Не корректная дата закрытия");
         return;
     }
     using (DBConteiner db = new DBConteiner())
     {
         try
         {
             SubDivName_txtBox.Enabled = false;
             SubDivision CloseSubdiv = db.SubDivisions.Where(o => o.SubDivisionId == NewdSubDivivsion.SubDivisionId).FirstOrDefault();
             if (CloseSubdiv != null)
             {
                 db.Entry(CloseSubdiv).State = EntityState.Modified;
                 CloseSubdiv.CollapsDate     = dateTimePicker2.Value;
                 CloseSubdiv.WorkStatus      = false;
                 //here we change the status of parent subdivision in all of subdivision which have a parent subdivision
                 //that we close now. New status of these subdivision is "No patent sabdivision"
                 List <SubDivision> subDivisions = db.SubDivisions.Where(e => e.ParentIdent == NewdSubDivivsion.SubDivisionId).ToList();
                 if (subDivisions != null)
                 {
                     foreach (SubDivision sub in subDivisions)
                     {
                         db.Entry(sub).State = EntityState.Modified;
                         sub.ParentIdent     = 1;
                     }
                 }
                 db.SaveChanges();
                 NewdSubDivivsion.WorkStatus = false;//for corret showing infomation by label4 (Work ort Don't work)
                 PreviosDataLoad();
                 SetDefaultControls();
                 MessageBox.Show("Подразделение закрыто");
             }
         }
         catch (ArgumentNullException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (OverflowException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.SqlClient.SqlException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityException ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
示例#6
0
        private void EditSubdiv()
        {
            using (DBConteiner db = new DBConteiner())
            {
                try
                {
                    Library lib = new Library();
                    if (!lib.NewSubDivValidstion(SelectedSubDivivsion))
                    {
                        return;
                    }

                    SubDivision tmp = db.SubDivisions.Where(o => o.SubDivisionId == NewdSubDivivsion.SubDivisionId).FirstOrDefault();

                    if (tmp != null)
                    {
                        db.Entry(tmp).State = EntityState.Modified;

                        tmp.SubDivName   = SubDivName_txtBox.Text;
                        tmp.ParentIdent  = SelectedSubDivivsion.SubDivisionId;
                        tmp.ParentSubdiv = db.SubDivisions.Where(e => e.SubDivisionId == SelectedSubDivivsion.SubDivisionId).FirstOrDefault();
                        tmp.CreateDate   = dateTimePicker1.Value;
                        tmp.CollapsDate  = dateTimePicker2.Value;

                        db.SaveChanges();
                        editSave         = true;
                        NewdSubDivivsion = SelectedSubDivivsion;
                        PreviosDataLoad();
                        SetDefaultControls();
                        MessageBox.Show("Данные о подразделении изменены");
                    }
                }
                catch (ArgumentNullException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (OverflowException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
示例#7
0
 private void SubDivRecordsFill(int subId)
 {
     SubDivRecords.Clear();
     using (DBConteiner db = new DBConteiner())
     {
         try
         {
             // DivRecords = new ObservableCollection<SubDivision>(DivRecords.OrderBy(e => e.SubDivName));
             var list = db.SubDivisions.ToList <SubDivision>();
             foreach (var item in list)
             {
                 SubDivRecords.Add(
                     new SubDivision
                 {
                     SubDivisionId = item.SubDivisionId,
                     SubDivName    = item.SubDivName,
                     ParentIdent   = item.ParentIdent,
                     ParentSubdiv  = item.ParentSubdiv,
                     CollapsDate   = item.CollapsDate,
                     CreateDate    = item.CreateDate
                 });
             }
             SelectedSubDivision = SubDivRecords.Where(e => e.SubDivisionId == subId).FirstOrDefault();
             TransferSubDivision = SelectedSubDivision;
         }
         catch (ArgumentNullException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (OverflowException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.SqlClient.SqlException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityException ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
示例#8
0
        private void AddNewSubDiv()
        {
            NewdSubDivivsion.SubDivName  = SubDivName_txtBox.Text;
            NewdSubDivivsion.ParentIdent = SelectedSubDivivsion.SubDivisionId;
            NewdSubDivivsion.CreateDate  = dateTimePicker1.Value;
            NewdSubDivivsion.CollapsDate = dateTimePicker2.Value;
            Library lib = new Library();

            if (!lib.NewSubDivValidstion(NewdSubDivivsion))
            {
                return;
            }
            using (DBConteiner db = new DBConteiner())
            {
                try
                {
                    db.SubDivisions.Add(NewdSubDivivsion);
                    db.SaveChanges();
                    MessageBox.Show("Данные о подразделении сохранены");
                    ParentSubDiv_comboBox.DataSource = null;
                    //DivRecords.Clear();
                    PreviosDataLoad();//update ParentSubDiv_comboBox content
                    SetDefaultControls();
                }
                catch (ArgumentNullException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (OverflowException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
示例#9
0
        //for load data in "new SabDiv" mode
        private void PreviosDataLoad()
        {
            DivRecords.Clear();
            using (DBConteiner db = new DBConteiner())
            {
                try
                {
                    var list = db.SubDivisions.ToList <SubDivision>();

                    foreach (var item in list)
                    {
                        DivRecords.Add(
                            new SubDivision
                        {
                            SubDivisionId = item.SubDivisionId,
                            SubDivName    = item.SubDivName,
                            ParentIdent   = item.ParentIdent,
                            CollapsDate   = item.CollapsDate,
                            CreateDate    = item.CreateDate
                        });
                    }
                }
                catch (ArgumentNullException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (OverflowException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
示例#10
0
        static void Main()
        {
            using (DBConteiner db = new DBConteiner())
            {
                //if (db.SubDivisions.Count() == 0)
                //{
                //    db.SubDivisions.Add(new SubDivision()
                //    {
                //        SubDivName = "Строй Монтаж",
                //        ParentSubDivName = "АМКР"
                //    });
                //    db.SaveChanges();
                //}
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }
示例#11
0
 private void ShowEmpSubDivs(int empId)
 {
     using (DBConteiner db = new DBConteiner())
     {
         try
         {
             //dataGridView1.Rows.Clear();
             //dataGridView1.Columns.Clear();
             //dataGridView1.Refresh();
             //List<EmployeeSubDivs> list = db.EmployeeSubDivisions.Where(e => e.Employee.EmployeeId == empId).ToList();
             //foreach (var item in list)
             //{
             //    item.SubDivName = db.SubDivisions.Where(e => e.SubDivisionId == item.SubDivision.SubDivisionId).FirstOrDefault().SubDivName;
             //}
             //var source = new BindingSource(list, null);
             //dataGridView1.DataSource = source;
             //DataGreedViewUpdate(list);
             //dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
         }
         catch (ArgumentNullException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (OverflowException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.SqlClient.SqlException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityException ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
示例#12
0
 //here we check tabnumber in DB.
 private bool CheckTabnumber(string tabN)
 {
     using (DBConteiner db = new DBConteiner())
     {
         try
         {
             List <Employee> Employees = db.Employees.ToList();
             foreach (Employee item in Employees)
             {
                 if (item.TabNumber == tabN)
                 {
                     return(true);
                 }
             }
         }
         catch (ArgumentNullException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (OverflowException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.SqlClient.SqlException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityException ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
     //MessageBox.Show("Ошибка в генерации табельного номера");
     return(false);
 }
示例#13
0
 //for filling datagridview
 private void GetEmployees(int Id)
 {
     using (DBConteiner db = new DBConteiner())
     {
         try
         {
             dataGridView1.Rows.Clear();
             dataGridView1.Columns.Clear();
             dataGridView1.Refresh();
             List <Employee> empList = db.Employees.Where(e => e.EmployeeSubDivisions.Where(i => i.SubDivisionId == Id).FirstOrDefault().SubDivisionId == Id).ToList();
             var             source  = new BindingSource(empList, null);
             dataGridView1.DataSource = source;
             DataGreedViewUpdate(empList);
             dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
         }
         catch (ArgumentNullException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (OverflowException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.SqlClient.SqlException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityException ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
示例#14
0
 private string GetEmployeePosition(int empId)
 {
     using (DBConteiner db = new DBConteiner())
     {
         try
         {
             //EmployeeSubDivs emp = db.EmployeeSubDivisions.Where(e => e.Employee.Id == empId).FirstOrDefault();
             EmployeeSubDivs emp = db.EmployeeSubDivisions.Find(new EmployeeSubDivs()
             {
                 EmployeeSubDivsId = empId
             }.EmployeeSubDivsId);
             return(emp.Position);
         }
         catch (ArgumentNullException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (OverflowException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.SqlClient.SqlException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
         {
             MessageBox.Show(ex.Message);
         }
         catch (System.Data.Entity.Core.EntityException ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
     return(null);
 }
示例#15
0
        private void SaveNewEmployeeData()
        {
            using (DBConteiner db = new DBConteiner())
            {
                try
                {
                    // db.Entry(TransferSubDivision).State = EntityState.Modified;

                    if (editEmployee)
                    {
                        SelectedEmployee = db.Employees.Where(e => e.EmployeeId == SelectedEmployee.EmployeeId).FirstOrDefault();
                    }
                    //else
                    //    db.Employees.Attach(SelectedEmployee);



                    SelectedEmployee.EmpName       = textBox_Name.Text;
                    SelectedEmployee.EmpSurName    = textBox_Surname.Text;
                    SelectedEmployee.EmpPatronimic = textBox_Patronimic.Text;
                    if (radioButton_male.Checked)
                    {
                        SelectedEmployee.Sex = true;
                    }
                    if (radioButton_female.Checked)
                    {
                        SelectedEmployee.Sex = false;
                    }
                    SelectedEmployee.DateBirth     = dateTimePicker_BirthDate.Value;
                    SelectedEmployee.BirthPlace    = richTextBox_BirthPlace.Text;
                    SelectedEmployee.INN           = textBox_INN.Text;
                    SelectedEmployee.TabNumber     = textBox_TabNumber.Text;
                    SelectedEmployee.StartDateWork = dateTimePicker_StartDateWork.Value;
                    if (checkBox_Fired.Checked)
                    {
                        SelectedEmployee.FireDate   = dateTimePicker_FireDate.Value;
                        SelectedEmployee.FireReason = richTextBox1.Text;
                    }



                    //кастыли, которые не также не работают, но если их применить, то получаем
                    //дублирование название подразделения в БД. Что говорит о том, что нужно как-то умудриться
                    //подифицировать это подразделение.. Пока - хз как. Т.к. связ подразделения и сотрудника у нас
                    //посрдедством n - n, и с какого-то хера из подразделения не видно сотрудника, хотя и все
                    //нужные поля  - публичные . жопа кароч
                    //db.Configuration.AutoDetectChangesEnabled = false;
                    //db.Configuration.ValidateOnSaveEnabled = false;


                    if (editEmployee)
                    {
                        db.Entry(SelectedEmployee).State = EntityState.Modified;
                    }
                    else
                    {
                        db.Employees.Add(SelectedEmployee);
                    }



                    db.SaveChanges();

                    EmployeeSubDivs empSabDiv = new EmployeeSubDivs();
                    empSabDiv.Employee     = SelectedEmployee;
                    empSabDiv.SubDivision  = TransferSubDivision;
                    empSabDiv.Position     = textBox_EmpPosition.Text;
                    empSabDiv.TransferDate = dateTimePicker_StartDateWork.Value;


                    db.EmployeeSubDivisions.Add(empSabDiv);

                    db.SaveChanges();

                    MessageBox.Show("Данные сохранены");
                }
                catch (ArgumentNullException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (OverflowException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityCommandExecutionException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (System.Data.Entity.Core.EntityException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }