public Person CreatePerson(string name, PeopleGroup peopleGroup) { var dmPerson = new DataModel.Person { Id = ACore.Db.GetNextIdFor<DataModel.Person>(), Name = name, PeopleGroupId = peopleGroup?.Id }; ACore.Db.Insert(dmPerson); var vmPerson = new Person(dmPerson); AllPeople.Add(vmPerson); SetInPalce(vmPerson, true); return vmPerson; }
public void NewOrRenamePerson(Person person, PeopleGroup peopleGroup, bool rename) { InputDialog inputDialog = new InputDialog { Owner = ACore.WMain, IconName = "appbar_people", Title = rename ? "Rename Person" : "New Person", Question = rename ? "Enter the new name of the person." : "Enter the name of the new person.", Answer = rename ? person.Title : string.Empty }; inputDialog.BtnDialogOk.Click += delegate { if (rename && string.Compare(inputDialog.Answer, person.Title, StringComparison.OrdinalIgnoreCase) == 0) { inputDialog.DialogResult = true; return; } if (ACore.Db.People.SingleOrDefault(x => x.Name.Equals(inputDialog.Answer)) != null) { inputDialog.ShowErrorMessage("Person's name already exists!"); return; } inputDialog.DialogResult = true; }; inputDialog.TxtAnswer.SelectAll(); if (inputDialog.ShowDialog() ?? true) { if (rename) { person.Title = inputDialog.Answer; person.Data.Name = inputDialog.Answer; ACore.Db.UpdateOnSubmit(person.Data); ACore.Db.SubmitChanges(); SetInPalce(person, false); } else CreatePerson(inputDialog.Answer, peopleGroup); } }
public PeopleGroup CreateGroup(string name) { var dmPeopleGroup = new DataModel.PeopleGroup { Id = ACore.Db.GetNextIdFor<DataModel.PeopleGroup>(), Name = name }; ACore.Db.InsertOnSubmit(dmPeopleGroup); ACore.Db.SubmitChanges(); var vmPeopleGroup = new PeopleGroup(dmPeopleGroup); SetInPalce(vmPeopleGroup, true); return vmPeopleGroup; }
public void MovePerson(Person person, PeopleGroup peopleGroup) { if (person.PeopleGroupId == null) { Items.Remove(person); } else { Items.OfType<PeopleGroup>().Single(x => x.Id == person.PeopleGroupId).Items.Remove(person); } var newGroupId = peopleGroup?.Id; person.PeopleGroupId = newGroupId; person.Data.PeopleGroupId = newGroupId; ACore.Db.UpdateOnSubmit(person.Data); ACore.Db.SubmitChanges(); SetInPalce(person, true); //person is new in the group }
public void DeletePeopleGroup(PeopleGroup group) { foreach (var p in ACore.Db.People.Where(x => x.PeopleGroupId == group.Id)) { p.PeopleGroupId = null; } ACore.Db.DeleteOnSubmit(group.Data); ACore.Db.SubmitChanges(); foreach (var person in group.Items.Cast<Person>()) { person.PeopleGroupId = null; Items.Add(person); } foreach (var person in group.Items.Cast<Person>()) { SetInPalce(person, false); } group.Items.Clear(); Items.Remove(group); }
public void SetInPalce(PeopleGroup peopleGroup, bool isNew) { var idx = ACore.Db.PeopleGroups.OrderBy(x => x.Name).ToList().IndexOf(peopleGroup.Data); if (isNew) Items.Insert(idx, peopleGroup); else Items.Move(Items.IndexOf(peopleGroup), idx); }