async Task LoginTaskAsync(SocialData data) { if (data == null) { Mvx.Trace("Received empty data for login"); return; } var success = false; var result = default(Profile); switch (data.Source) { case AuthorizationType.Email: if (Validate()) { result = await _serverApiService.SignInAsync(LoginString, PasswordString); success = result != null; } break; case AuthorizationType.Facebook: result = await _serverApiService.FacebookSignInAsync(data.Id, data.Source.ToString().ToLower()); if (result != null) { userName = data.FullName; _storedSettingsService.Profile = GetProfileFromResponse(result, data); SettingsService.SocialRegistartionSource = true; success = CheckHttpStatuseCode(result.StatusCode); } break; case AuthorizationType.GPlus: result = await _serverApiService.GooglePlusSignInAsync(data.Email, data.Source.ToString().ToLower()); if (result != null) { userName = data.FullName; _storedSettingsService.Profile = GetProfileFromResponse(result, data); success = CheckHttpStatuseCode(result.StatusCode); SettingsService.SocialRegistartionSource = true; } break; } if (success) { _storedSettingsService.Profile = result; _storedSettingsService.IsAuthorized = true; _storedSettingsService.ProfileId = result.Id; _storedSettingsService.AuthToken = result.Token; Close(this); ShowViewModel <HomeViewModel>(new { name = result.FirstName, message = "Welcome back, " }); } }