private async void OnShare() { if (!(ReceiverEmail.Contains("@") && ReceiverEmail.Contains("."))) { EmailError = "Please enter valid email!"; return; } var startDate = DateTime.UtcNow.ToLocalTime(); DateTime endDate; try { endDate = DateTime.Parse(GetExpireDate()); } catch (FormatException) { ExpireDateResult = "Date format is invalid"; return; } if (startDate >= endDate) { ExpireDateResult = "Start date is later than expire date!"; return; } IsBusy = true; var loginDataToShare = await DataStore.GetItemAsync(ItemId); var password = EncService.Decrypt(SecureStorageHelper.GetUserKey().Result, loginDataToShare.Password); LoginData newLoginData = new LoginData() { Name = loginDataToShare.Name + " From " + SecureStorageHelper.GetUserEmail(), Login = loginDataToShare.Login, Password = EncService.Encrypt(App.AppSettings.SecretEncryptionKey, password), Website = loginDataToShare.Website, Email = loginDataToShare.Email ?? "Not added" }; var model = new ShareLoginModel { LoginData = newLoginData, ReceiverEmail = ReceiverEmail, StartDate = startDate, EndDate = endDate }; var apiResponse = await _apiService.HandleLoginShare(model); IsBusy = false; if (!apiResponse.Success) { MessagingCenter.Send(this, "ShareNotify", apiResponse.Messages.First()); return; } MessagingCenter.Send(this, "ShareNotify", apiResponse.Messages.First()); await App.Current.MainPage.Navigation.PopModalAsync(); }
public async Task <ApiResponse> HandleLoginShare(ShareLoginModel model) { _client.DefaultRequestHeaders.Authorization = GetAuthJwtTokenFromKeyStore().Result; HttpResponseMessage response; StringContent content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); response = await _client.PostAsync("logindatas/share", content); var responseString = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <ApiResponse>(responseString)); }