public ContactsVM() { var BubbleClient = new Bubble.ContactsSoapClient(); //db = new FinalContext(); //ContactList = db.People.Local; //db.People.Load(); //EmailList = db.Emails.Local; //db.Emails.Load(); //PhoneList = db.Phones.Local; //db.Phones.Load(); //AddressList = db.Addresses.Local; //db.Addresses.Load(); ContactList = new ObservableCollection<Person>(); EmailList = new ObservableCollection<Email>(); PhoneList = new ObservableCollection<Phone>(); AddressList = new ObservableCollection<Address>(); Init(); SaveCommand = new DelegateCommand(() => BubbleClient.Save()); AddPersonCommand = new DelegateCommand(() => { CurrentPerson = new Person(); ContactList.Add(CurrentPerson); BubbleClient.AddPersonAsync(CurrentPerson); }); AddEmailCommand = new DelegateCommand(() => { var em = new Email(); em.PersonID = CurrentPerson.PID; EmailList.Add(em); CurrentPerson.elist.Add(em); BubbleClient.AddEmailAsync(em); }); DeletePersonCommand = new DelegateCommand(() => { db.People.Remove(CurrentPerson); ContactList.Remove(CurrentPerson); }); AddPhoneCommand = new DelegateCommand(() => { var pn = new Phone(); pn.PersonID = CurrentPerson.PID; PhoneList.Add(pn); CurrentPerson.plist.Add(pn); BubbleClient.AddPhoneAsync(pn); }); AddAddressCommand = new DelegateCommand(() => { var ad = new Address(); ad.PersonID = CurrentPerson.PID; CurrentPerson.alist.Add(ad); AddressList.Add(ad); BubbleClient.AddAddressAsync(ad); }); DeleteAddressCommand = new DelegateCommand(() => { CurrentPerson.alist.Remove(CurrentAddress); AddressList.Remove(CurrentAddress); BubbleClient.RemoveAddressAsync(CurrentAddress); }); DeletePhoneCommand = new DelegateCommand(() => { CurrentPerson.plist.Remove(CurrentPhone); PhoneList.Remove(CurrentPhone); BubbleClient.RemovePhoneAsync(CurrentPhone); }); DeleteEmailCommand = new DelegateCommand(() => { CurrentPerson.elist.Remove(CurrentEmail); EmailList.Remove(CurrentEmail); BubbleClient.RemoveEmailAsync(CurrentEmail); }); }
async void Init() { var soapClient = new Bubble.ContactsSoapClient(); IEnumerable<Person> persons; IEnumerable<Email> ems; IEnumerable<Address> ads; IEnumerable<Phone> phs; persons = await soapClient.GetPeopleAsync(); foreach (var dude in persons) { ContactList.Add(dude); } ems = await soapClient.GetEmailsAsync(); foreach (var e in ems) { EmailList.Add(e); } ads = await soapClient.GetAddressesAsync(); foreach (var a in ads) { AddressList.Add(a); } phs = await soapClient.GetPhonesAsync(); foreach (var p in phs) { PhoneList.Add(p); } foreach (var dude in ContactList) { foreach (var e in EmailList) { if (dude.PID == e.PersonID) { dude.elist.Add(e); } } foreach (var a in AddressList) { if (dude.PID == a.PersonID){ dude.alist.Add(a); } } foreach (var p in PhoneList) { if (dude.PID == p.PersonID) { dude.plist.Add(p); } } } }