Example #1
0
    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;
    }
Example #2
0
    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);
      }
    }
Example #3
0
    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;
    }
Example #4
0
 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
 }
Example #5
0
    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);
    }
Example #6
0
 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);
 }