Exemple #1
0
        private async Task UpdateCaregivers()
        {
            if (null != _currentProfile)
            {
                _currentProfile.Caregivers.Clear();

                IEnumerable <CaregiverRelation> cRelations = await DataManager.Instance.GetCaregiversRelations(_currentProfile.ProfileId);

                foreach (var item in cRelations)
                {
                    if (item.IsDeleteRequested)
                    {
                        continue;
                    }

                    CaregiverModel model = new CaregiverModel()
                    {
                        ProfileId      = item?.ProfileId,
                        CaregiverId    = item?.CaregiverProfileId,
                        CaregiverEmail = item?.CaregiverEmail,
                        IsRequest      = false
                    };

                    string probeId = (_currentProfile.ProfileId == item.CaregiverProfileId ? item.ProfileId : item.CaregiverProfileId);

                    Profile profile = await DataManager.Instance.GetProfile(probeId);

                    if (null != profile)
                    {
                        model.CaregiverEmail = profile.Email;
                    }
                    _currentProfile.Caregivers.Add(model);
                }

                IEnumerable <CaregiverRequest> cRequests = await DataManager.Instance.GetCaregiversRequests(_currentProfile.ProfileId);

                foreach (var item in cRequests)
                {
                    if (item.IsDeleteRequested)
                    {
                        continue;
                    }

                    CaregiverModel model = new CaregiverModel()
                    {
                        ProfileId      = item?.ProfileId,
                        CaregiverId    = null,
                        CaregiverEmail = item?.Email,
                        IsRequest      = true
                    };
                    _currentProfile.Caregivers.Add(model);
                }

                Device.BeginInvokeOnMainThread(() =>
                {
                    ProfilePropertyChanged?.Invoke(_currentProfile, nameof(_currentProfile.Caregivers));
                });
            }
        }
 public IEnumerable <CaregiverModel> MapToCaregiverModel(IEnumerable <OrphanageDataModel.Persons.Caregiver> caregiverist)
 {
     foreach (var caregiver in caregiverist)
     {
         CaregiverModel retCaregiver = MapToCaregiverModel(caregiver);
         yield return(retCaregiver);
     }
 }
Exemple #3
0
        public async Task RemoveCaregiver(CaregiverModel model, bool fromAccount = false)
        {
            if (_currentProfile != null)
            {
                if (model.IsRequest)
                {
                    CaregiverRequest cRequest = await DataManager.Instance.GetCaregiverRequest(_currentProfile.ProfileId, model.ProfileId);

                    if (null != cRequest)
                    {
                        cRequest.IsDeleteRequested = true;
                        await DataManager.Instance.RemoveCaregiverRequest(cRequest);
                    }
                }
                else
                {
                    CaregiverRelation cRelation = await DataManager.Instance.GetCaregiverRelation(_currentProfile.ProfileId, model.ProfileId);

                    if (null != cRelation)
                    {
                        cRelation.IsDeleteRequested = true;
                        await DataManager.Instance.RemoveCaregiverRelation(cRelation);
                    }
                }

                if (fromAccount)
                {
                    await Task.WhenAll(new Task[]
                    {
                        DataManager.Instance.SyncUser(),
                        DataManager.Instance.SyncProfile(),
                        DataManager.Instance.SyncPump(),
                        DataManager.Instance.SyncChild(),
                        DataManager.Instance.SyncMedia(),
                        DataManager.Instance.SyncHistoricalSessions()
                    });
                }

                await UpdateCaregivers();
            }
        }
        public CaregiverModel MapToCaregiverModel(OrphanageDataModel.Persons.Caregiver caregiver)
        {
            CaregiverModel retCaregiver = null;

            try
            {
                retCaregiver             = _mapper.Map <CaregiverModel>(caregiver);
                retCaregiver.FullName    = caregiver.Name.FullName();
                retCaregiver.FullAddress = caregiver.Address.FullAddress();
                if (caregiver.Orphans != null && caregiver.Orphans.Count > 0)
                {
                    retCaregiver.OrphansCount = caregiver.Orphans.Count;
                }
                else
                {
                    retCaregiver.OrphansCount = 0;
                }
            }
            catch
            {
                retCaregiver = null;
            }
            return(retCaregiver);
        }