public async Task <bool> DeleteItemAsync(string id)
        {
            var firebaseUserInfo = await FirebaseUserInfo.ReadFromDevice();

            if (string.IsNullOrEmpty(id) || firebaseUserInfo == null || !CrossConnectivity.Current.IsConnected)
            {
                return(false);
            }

            await SetAuthenticationHeader();

            var response = await client.DeleteAsync($"entry/{firebaseUserInfo.Id}/{id}");

            return(response.IsSuccessStatusCode);
        }
        public async Task <bool> SubmitTimecardAsync(TimecardSubmission timecardSubmission)
        {
            var firebaseUserInfo = await FirebaseUserInfo.ReadFromDevice();

            if (timecardSubmission == null || firebaseUserInfo == null || !CrossConnectivity.Current.IsConnected)
            {
                return(false);
            }

            await SetAuthenticationHeader();

            var serializedSubmission = JsonConvert.SerializeObject(timecardSubmission, _serializerSettings);
            var response             = await client.PostAsync($"submit/{firebaseUserInfo.Id}", new StringContent(serializedSubmission, Encoding.UTF8, "application/json"));

            return(response.IsSuccessStatusCode);
        }
        public async Task <bool> UpdateItemAsync(Item item)
        {
            var firebaseUserInfo = await FirebaseUserInfo.ReadFromDevice();

            if (item == null || item.Id == null || firebaseUserInfo == null || !CrossConnectivity.Current.IsConnected)
            {
                return(false);
            }

            await SetAuthenticationHeader();

            var serializedItem = JsonConvert.SerializeObject(item, _serializerSettings);
            var response       = await client.PostAsync($"entry/{firebaseUserInfo.Id}/{item.Id}", new StringContent(serializedItem, Encoding.UTF8, "application/json"));

            return(response.IsSuccessStatusCode);
        }
        public async Task <IEnumerable <Item> > GetItemsAsync(bool forceRefresh = false)
        {
            if (forceRefresh && CrossConnectivity.Current.IsConnected)
            {
                var firebaseUserInfo = await FirebaseUserInfo.ReadFromDevice();

                if (firebaseUserInfo != null)
                {
                    await SetAuthenticationHeader();

                    var json = await client.GetStringAsync($"entries/{firebaseUserInfo.Id}");

                    items = await Task.Run(() => JsonConvert.DeserializeObject <IEnumerable <Item> >(json));
                }
            }

            return(items);
        }
Beispiel #5
0
        private void LogOut()
        {
            FirebaseManager.Auth.SignOut(out NSError error);

            if (error == null)
            {
                GoogleUserInfo.RemoveFromDevice();
                GoogleOAuthToken.RemoveFromDevice();
                FirebaseUserInfo.RemoveFromDevice();

                var rootNavController = Storyboard.InstantiateViewController("navLoginController") as UINavigationController;

                var appDelegate = UIApplication.SharedApplication.Delegate as AppDelegate;
                appDelegate.Window.RootViewController = rootNavController;
            }
            else
            {
                DisplayErrorMessage("An error occurred while logging you out.");
            }
        }