示例#1
0
        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();
        }
示例#2
0
        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));
        }