protected override void OnSetChildren(SerializationInfo info, MobileFormatter formatter)
        {
            base.OnSetChildren(info, formatter);

            var mdInfo = info.Children[nameof(_newChild)];

            _newChild = (IMobileDependency <IObjectPortal <IBusinessItem> >)formatter.GetObject(mdInfo.ReferenceId);
        }
        public void FetchChild(System.Tuple <IObjectPortal <IBusinessItem>, IBusinessItemDal, IMobileDependency <IObjectPortal <IBusinessItem> > > d)
        {
            var dtos = d.Item2.Fetch();

            foreach (var dto in dtos)
            {
                Add(d.Item1.FetchChild(dto));
            }

            this._newChild = d.Item3;
        }
        public void FetchChild(CriteriaBase criteria, System.Tuple <IObjectPortal <IBusinessItem>, IBusinessItemDal, IMobileDependency <IObjectPortal <IBusinessItem> > > d)
        {
            var dtos = d.Item2.Fetch(criteria.Guid);

            foreach (var dto in dtos)
            {
                // We allow the Fetch calls (and delegates) to have multiple parameters
                // But the IHandleXYZ interface can only have one criteria as a parameter
                // with a tuple to handle multiple parameters
                // ObjectPortal will bridge the two by turning the multiple paramters to a tuple

                Add(d.Item1.FetchChild(Tuple.Create <CriteriaBase, BusinessItemDto>(criteria, dto)));
            }

            this._newChild = d.Item3;
        }
 public void CreateChild(System.Tuple <IObjectPortal <IBusinessItem>, IMobileDependency <IObjectPortal <IBusinessItem> > > newChild)
 {
     this.Add(newChild.Item1.CreateChild());
     this._newChild = newChild.Item2;
 }