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); } }
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); }