コード例 #1
0
 /// <summary>
 /// Возвращает сообщение, где будет результат добавления
 /// </summary>
 public static string Add(Relative relative)
 {
     string resultOfAdd = "";
     if (relative != null)
     {
         using (var db = new PersonContext())
         {
             var allPersonId = db.Persons.Select(p => p.Id);
             var immediateRelatives = GetImmediateRelatives(relative.PersonId);
             if (immediateRelatives.ContainsValue(KindOfRelative.Father) &&
                 (ConvertTo.KindOfRelative(relative.KindOfRelative) == KindOfRelative.Father))
             {
                 resultOfAdd = "Для этого человека уже был добавлен отец";
             }
             else if (immediateRelatives.ContainsValue(KindOfRelative.Mother) &&
             (ConvertTo.KindOfRelative(relative.KindOfRelative) == KindOfRelative.Mother))
             {
                 resultOfAdd = "Для этого человека уже была добавлена мама";
             }
             else if (db.Relatives.Count(r => (r.PersonId == relative.PersonId) && (r.RelativeOfPersonId == relative.RelativeOfPersonId)) != 0)
             {
                 resultOfAdd = "Родственная связь между этими людьми уже существует";
             }
             else if (allPersonId.Contains(relative.PersonId) && allPersonId.Contains(relative.RelativeOfPersonId) &&
                 (relative.PersonId != relative.RelativeOfPersonId))
             {
                 db.Relatives.Add(relative);
                 db.SaveChanges();
                 resultOfAdd = null;
             }
             else if (relative.PersonId == relative.RelativeOfPersonId)
             {
                 resultOfAdd = "ID человека и его родственника не могут быть одинаковыми";
             }
             else
             {
                 if (!allPersonId.Contains(relative.PersonId))
                 {
                     resultOfAdd = String.Format("Человека с id {0} не существует", relative.PersonId);
                 }
                 if (!allPersonId.Contains(relative.RelativeOfPersonId))
                 {
                     resultOfAdd += String.Format("\nЧеловека с id {0} не существует", relative.RelativeOfPersonId);
                 }
             }
         }
     }
     else
     {
         resultOfAdd = "Ошибка добавления";
     }
     return resultOfAdd;
 }
コード例 #2
0
 public static string Add(Person person)
 {
     using (var db = new PersonContext())
     {
         if ((person != null) && (GetPerson(person.Id) == null))
         {
             db.Persons.Add(person);
             db.SaveChanges();
             return "Добавление выполнено успешно";
         }
         return "Такой человек уже существует";
     }
 }
コード例 #3
0
        public static string Delete(Person person)
        {
            using (var db = new PersonContext())
            {
                if (CanRemovePerson(person))
                {
                    //удаляем человека
                    var entry = db.Entry(person);
                    if (entry.State == EntityState.Detached)
                    {
                        db.Persons.Attach(person);
                        db.Persons.Remove(person);
                    }

                    //удаляем все связи с ним
                    var relations =
                        db.Relatives.Where(r => (r.PersonId == person.Id) || (r.RelativeOfPersonId == person.Id));
                    foreach (var relation in relations)
                    {
                        db.Relatives.Remove(relation);
                    }
                    db.SaveChanges();
                    return null;
                }
                return "Чтобы удалить этого человека, удалите все связи с ним";
            }
        }
コード例 #4
0
 public static void Update(Person newPerson)
 {
     using (var db = new PersonContext())
     {
         var person = db.Persons.FirstOrDefault(p => p.Id == newPerson.Id);
         if (person != null)
         {
             person.FirstName = newPerson.FirstName;
             person.Patronymic = newPerson.Patronymic;
             person.SurName = newPerson.SurName;
             person.BirthDay = newPerson.BirthDay;
             person.DeadDay = newPerson.DeadDay;
             person.Biography = newPerson.Biography;
             person.Photo = newPerson.Photo;
         }
         db.SaveChanges();
     }
 }