public async Task <bool> DoLoginCustomerAsync(CustomerModel model) { ErrorCode = string.Empty; var uri = new Uri(string.Concat(_uriAuthBase, "oauth2/token")); StringContent data = null; data = new StringContent (string.Format("client_id={0}&grant_type=password&username={1}&password={2}", _clientIdPlayAdmin, model.Mail, model.Password), Encoding.UTF8, "application/x-www-form-urlencoded"); HttpResponseMessage response = null; response = await _client.PostAsync(uri, data); var result = await response.Content.ReadAsStringAsync(); JObject responseModel = JsonConvert.DeserializeObject <JObject>(result); if (response.StatusCode == HttpStatusCode.OK) { var auth = new AuthCustomerModel { Token = (string)responseModel["access_token"], ExpiresIn = (string)responseModel["expires_in"], IdUser = (string)responseModel["id_user"], UserName = (string)responseModel["name_customer"], IdPlace = (string)responseModel["id_place"] }; SessionCustomerService.SaveAccount(auth); SessionCustomerService.Place = await GetPlaceAsync(Convert.ToInt32((string)responseModel["id_place"])); if (SessionCustomerService.Place == null) { SessionCustomerService.DeleteAccount(); return(false); } else { SessionCustomerService.Place.HasMutiple = await ValidateIfPlaceHasMultiples(SessionCustomerService.Place.Id); } return(true); } else { ErrorCode = (string)responseModel["error"]; return(false); } }
public static async Task <bool> ValidateLoginAsync() { AccountStore accountStore = AccountStore.Create(); Account account = accountStore.FindAccountsForService(_servideId).SingleOrDefault(); if (account != null) { bool result = await RestService.Instance.ValidateTokenCustomerAsync(account.Properties["Token"], account.Properties["IdPlace"]); if (result) { Account = new AuthCustomerModel { Token = account.Properties["Token"], ExpiresIn = account.Properties["ExpiresIn"], IdUser = account.Properties["IdUser"], UserName = account.Properties["UserName"], IdPlace = account.Properties["IdPlace"], ExpirationDate = DateTime.Now + TimeSpan.FromSeconds(Convert.ToDouble(account.Properties["ExpiresIn"])) }; Place = await RestService.Instance.GetPlaceAsync(Convert.ToInt32(Account.IdPlace)); if (Place == null) { DeleteAccount(); return(false); } else { Place.HasMutiple = await RestService.Instance.ValidateIfPlaceHasMultiples(Place.Id); } } return(result); } return(false); }
public static void SaveAccount(AuthCustomerModel auth) { Account account = new Account(); account.Properties.Add("Token", auth.Token); account.Properties.Add("ExpiresIn", auth.ExpiresIn); account.Properties.Add("IdUser", auth.IdUser); account.Properties.Add("UserName", auth.UserName); account.Properties.Add("IdPlace", auth.IdPlace); try { AccountStore.Create().Save(account, _servideId); } catch (Exception e) { string exx = e.ToString(); } auth.ExpirationDate = DateTime.Now + TimeSpan.FromSeconds(Convert.ToDouble(auth.ExpiresIn)); Account = auth; }