예제 #1
0
 public void UpdatePerson(Person person)
 {
     using (var context = new DataContext())
     {
         context.UpdatePerson(person.ConvertToDalPerson());
     }
 }
예제 #2
0
 private List <Event> DowloadEvents()
 {
     if (Person == null)
     {
         return(new List <Event>());
     }
     using (var context = new DataContext())
     {
         return(context.GetPersonEvents(Person.ConvertToDalPerson()).Select(e => e.ConvertToModelEvent()).ToList());
     }
 }
예제 #3
0
        private void EditCommandExecute(object obj)
        {
            Person.BeginEdit();
            var ok = EditAction != null && EditAction(Person);

            if (!ok)
            {
                Person.CancelEdit();
                return;
            }
            Person.EndEdit();
            LocalDataStorage.Instance.UpdatePerson(Person);
        }
예제 #4
0
        private void AddSiblingCommandExecute(object obj)
        {
            var sibling = new Person
            {
                FirstName = "Sibling of",
                LastName  = Person.FullName
            };
            var ok = EditAction != null && EditAction(sibling);

            if (!ok)
            {
                return;
            }
            LocalDataStorage.Instance.AddNewPersonWithRelation(Person, sibling, RelationType.Sibling);
        }
예제 #5
0
        private void AddChildExecute(object obj)
        {
            var child = new Person
            {
                FirstName = "Child of",
                LastName  = PersonNameConverter.GetFullNameOfPerson(Person)
            };
            var ok = EditAction != null && EditAction(child);

            if (!ok)
            {
                return;
            }
            // Ask the user about the name of the new child and her/his data
            LocalDataStorage.Instance.AddChild(Person, child);
        }
예제 #6
0
        private void AddSpouseCommandExecute(object obj)
        {
            var spouse = new Person
            {
                FirstName = "Spouse of",
                LastName  = Person.FullName,
                Gender    = Person.Gender == Gender.Male ? Gender.Female : Gender.Male
            };
            var ok = EditAction != null && EditAction(spouse);

            if (!ok)
            {
                return;
            }
            LocalDataStorage.Instance.AddNewPersonWithRelation(Person, spouse, RelationType.Spouse);
        }
예제 #7
0
        public void RemoveRelation(Person person, Person person1)
        {
            using (var context = new DataContext())
            {
                var relationsToRemove = Relations
                                        .Where(
                    r =>
                    (r.SourcePerson == person && r.DestinationPerson == person1) ||
                    (r.SourcePerson == person1 && r.DestinationPerson == person))
                                        .ToList();

                relationsToRemove
                .ForEach(relation =>
                {
                    Relations.Remove(relation);
                    context.DeleteRelation(relation.ConvertToDalRelation());
                });
            }
        }
예제 #8
0
        private void AddParent(Gender gender)
        {
            var fullName = Person.FullName;

            if (Parents.All(p => p.Gender != gender))
            {
                var parent = new Person
                {
                    FirstName = gender == Gender.Female ? "Mother of" : "Father of",
                    Gender    = gender,
                    LastName  = fullName
                };
                var ok = EditAction != null && EditAction(parent);
                if (!ok)
                {
                    return;
                }
                LocalDataStorage.Instance.AddNewPersonWithRelation(Person, parent, RelationType.Parent);
            }
        }
예제 #9
0
        public void RemovePerson(Person person)
        {
            using (var context = new DataContext())
            {
                var relationsToRemove = Relations
                                        .Where(r => r.SourcePerson == person || r.DestinationPerson == person)
                                        .ToList();

                relationsToRemove.ForEach(r =>
                {
                    Relations.Remove(r);
                    context.DeleteRelation(r.ConvertToDalRelation());
                });

                if (Persons.FirstOrDefault(p => p == person) != null)
                {
                    Persons.Remove(person);
                }

                context.DeletePerson(person.ConvertToDalPerson());
            }
        }
예제 #10
0
        public void AddNewPersonWithRelation(Person person, Person child, RelationType relationType)
        {
            using (var context = new DataContext())
            {
                if (Persons.FirstOrDefault(p => p == child) == null)
                {
                    Persons.Add(child);
                    var dalPerson = child.ConvertToDalPerson();
                    context.AddPerson(dalPerson);
                    child.Id = dalPerson.Id;
                }

                var personToChild = new Relation
                {
                    SourcePerson      = person,
                    DestinationPerson = child,
                    RelationType      = relationType
                };
                var childToPerson = personToChild.GetReverseRelation();

                if (Relations.FirstOrDefault(r => r == personToChild) == null)
                {
                    Relations.Add(personToChild);
                    var dalRelation = personToChild.ConvertToDalRelation();
                    context.AddRelation(dalRelation);
                    personToChild.RelationId = dalRelation.RelationId;
                }

                if (Relations.FirstOrDefault(r => r == childToPerson) == null)
                {
                    Relations.Add(childToPerson);
                    var dalRelation = childToPerson.ConvertToDalRelation();
                    context.AddRelation(dalRelation);
                    childToPerson.RelationId = dalRelation.RelationId;
                }
            }
        }
예제 #11
0
 public void AddChild(Person person, Person child)
 {
     AddNewPersonWithRelation(person, child, RelationType.Child);
 }