public Person DuplicatePerson(Person person) { Person personToDuplicate = person.Duplicate() as Person; List <Event> eventsToSchedule = new List <Event>(personToDuplicate.ScheduledEvents); personToDuplicate.ScheduledEvents = new List <Event>(); Person duplicatedPerson = DbManager.Instance.AddPerson(personToDuplicate); if (duplicatedPerson != null) { duplicatedPerson.ScheduledEvents = new List <Event>(eventsToSchedule); Person successfullyDuplicatedPerson = DbManager.Instance.ModifyPerson(duplicatedPerson); if (successfullyDuplicatedPerson != null) { IPersonServicesCallback currentCallbackProxy = OperationContext.Current.GetCallbackChannel <IPersonServicesCallback>(); PersonServiceCallback.Instance.NotifyAllPersonDuplication(duplicatedPerson, currentCallbackProxy); successfullyDuplicatedPerson.ScheduledEvents = new List <Event>(); return(successfullyDuplicatedPerson); } } return(null); }
public void Unsubscribe(IPersonServicesCallback currentCallbackProxy) { if (_subscribers.Contains(currentCallbackProxy)) { _subscribers.Remove(currentCallbackProxy); } UpdateHelper.Instance.Limit = _subscribers.Count; }
public Person DeletePerson(Person person) { Person deletedPerson = DbManager.Instance.DeletePerson(person); if (deletedPerson != null) { IPersonServicesCallback currentCallbackProxy = OperationContext.Current.GetCallbackChannel <IPersonServicesCallback>(); PersonServiceCallback.Instance.NotifyAllPersonRemoval(deletedPerson, currentCallbackProxy); deletedPerson.ScheduledEvents = new List <Event>(); return(deletedPerson); } return(null); }
public Person ModifyPerson(Person person) { Person modifiedPerson = DbManager.Instance.ModifyPerson(person); if (modifiedPerson != null) { IPersonServicesCallback currentCallbackProxy = OperationContext.Current.GetCallbackChannel <IPersonServicesCallback>(); PersonServiceCallback.Instance.NotifyAllPersonModification(modifiedPerson, currentCallbackProxy); modifiedPerson.ScheduledEvents = new List <Event>(); return(modifiedPerson); } return(null); }
public void NotifyAllPersonDuplication(Person addedPerson, IPersonServicesCallback currentCallbackProxy) { addedPerson.ScheduledEvents.ForEach(e => e.Participants.ForEach(p => p.ScheduledEvents.ForEach(ev => ev.Participants = new List <Person>()))); if (_subscribers.Count > 0) { foreach (IPersonServicesCallback sub in _subscribers) { sub.NotifyPersonDuplicate(addedPerson); //if (sub != currentCallbackProxy) //{ // sub.NotifyPersonDuplicate(addedPerson); //} } } }
public void Unsubscribe() { IPersonServicesCallback currentCallbackProxy = OperationContext.Current.GetCallbackChannel <IPersonServicesCallback>(); PersonServiceCallback.Instance.Unsubscribe(currentCallbackProxy); }