/// <summary> /// Проверяет БД на наличие записей о группах, /// если таковых нет вообще, то метод добавляет /// указанные в ТЗ /// </summary> private void CheckGroupsInDb(object sender, RoutedEventArgs e) { bool isEmpty = false; using (DataModelContext context = new DataModelContext()) { System.Collections.Generic.List <Group> groups = context.Groups.ToList(); if (groups.Count() == 0) { isEmpty = true; Group g1 = new Group { Name = "Manager", SubNumberCoeff = 0.005D, YearsCoefficient = 0.05D, Limit = 0.4D }; Group g2 = new Group { Name = "Salesman", SubNumberCoeff = 0.003D, YearsCoefficient = 0.01D, Limit = 0.35D }; Group g3 = new Group { Name = "Employee", SubNumberCoeff = 0D, YearsCoefficient = 0.03D, Limit = 0.3D }; context.Groups.Add(g1); context.Groups.Add(g2); context.Groups.Add(g3); context.SaveChanges(); } } if (isEmpty == true) { ExampleClass Test = new ExampleClass(); Test.AddTestPersons(); } }
/// <summary> /// Метод добавляет профиль Person в БД /// </summary> /// <param name="p">Person p = new Person()</param> /// <param name="g">Группа сотрудника</param> /// <returns></returns> private Person AddProfileToTable(Person p, Group g) { //создаем контекст данных для передачи профиля сотрудника в БД using (DataModelContext context = new DataModelContext()) { context.Groups.Attach(g); context.Persons.Add(p); context.SaveChanges(); } return(p); }
/// <summary> /// Удаляет, выбранные пользователем, данные из БД /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Delete_button_Click(object sender, RoutedEventArgs e) { using (DataModelContext context = new DataModelContext()) { for (int i = 0; i < personsList.SelectedItems.Count; i++) { Person person = personsList.SelectedItems[i] as Person; context.Persons.Remove(person); context.SaveChanges(); } personsList.ItemsSource = context.Persons.ToList(); } }
/// <summary> /// Сохраняет выбранных подчиненых в таблицу Subordinate /// </summary> private void AddSubordinate(Person subPerson, Person superviser) { using (DataModelContext context = new DataModelContext()) { Subordinate subordinate = new Subordinate(); subordinate.Name = subPerson.Name; subordinate.Group = subPerson.Group.Name; subordinate.PersonId = superviser.Id; subordinate.OwnPersonId = subPerson.Id; context.Persons.Attach(superviser); context.Subordinates.Add(subordinate); context.SaveChanges(); } }
private static void AddSalaryToDatabase(Person p, string month, string year, double salary) { using (DataModelContext context = new DataModelContext()) { var sal = p.SalaryHistory.Where(sHistory => sHistory.Month == month && sHistory.Year == year); //удаляет записи от предыдущих решений foreach (Salary _sal in sal) { context.Salaries.Remove(_sal); } Salary s = new Salary { Month = month, Year = year, Group = p.Group.Name, CurrentSalary = salary, Person = p }; context.Persons.Attach(p); context.Salaries.Add(s); context.SaveChanges(); } }
public void AddTestPersons() { List <String> personsList = new List <string> { "S", "N", "M", "E", "L", "K", "F", "D", "R", "G", "Q" }; using (DataModelContext context = new DataModelContext()) { List <Group> groups = context.Groups.ToList(); Person S = new Person { Name = "S", BaseSalary = 30000, Group = groups[0] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2017-08-31 22:26:59.4535923+02:00") }; Person N = new Person { Name = "N", BaseSalary = 23000, Group = groups[0] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2015-03-31 22:26:59.4535923+02:00") }; Person M = new Person { Name = "М", BaseSalary = 20000, Group = groups[1] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2015-08-31 22:26:59.4535923+02:00") }; Person E = new Person { Name = "E", BaseSalary = 13000, Group = groups[2] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2015-08-31 22:26:59.4535923+02:00") }; Person L = new Person { Name = "L", BaseSalary = 12000, Group = groups[2] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2015-03-31 22:26:59.4535923+02:00") }; Person K = new Person { Name = "K", BaseSalary = 15000, Group = groups[2] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2015-07-31 22:26:59.4535923+02:00") }; Person F = new Person { Name = "F", BaseSalary = 13000, Group = groups[2] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2016-01-31 22:26:59.4535923+02:00") }; Person D = new Person { Name = "D", BaseSalary = 23000, Group = groups[0] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2016-01-31 22:26:59.4535923+02:00") }; Person R = new Person { Name = "R", BaseSalary = 21000, Group = groups[1] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2016-12-11 22:26:59.4535923+02:00") }; Person G = new Person { Name = "G", BaseSalary = 21000, Group = groups[0] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2016-01-31 22:26:59.4535923+02:00") }; Person Q = new Person { Name = "Q", BaseSalary = 21000, Group = groups[2] as Group, Login = "******", Password = "******", DateOfStart = Convert.ToDateTime("2016-02-21 22:26:59.4535923+02:00") }; context.Groups.Attach(S.Group); context.Persons.Add(S); context.Groups.Attach(N.Group); context.Persons.Add(N); context.Groups.Attach(M.Group); context.Persons.Add(M); context.Groups.Attach(E.Group); context.Persons.Add(E); context.Groups.Attach(L.Group); context.Persons.Add(L); context.Groups.Attach(K.Group); context.Persons.Add(K); context.Groups.Attach(F.Group); context.Persons.Add(F); context.Groups.Attach(D.Group); context.Persons.Add(D); context.Groups.Attach(R.Group); context.Persons.Add(R); context.Groups.Attach(G.Group); context.Persons.Add(G); context.Groups.Attach(Q.Group); context.Persons.Add(Q); context.SaveChanges(); AddSubordinate(N, S); AddSubordinate(M, S); AddSubordinate(E, S); AddSubordinate(K, N); AddSubordinate(L, N); AddSubordinate(F, M); AddSubordinate(D, M); AddSubordinate(R, D); AddSubordinate(G, D); AddSubordinate(Q, D); } }