Exemple #1
0
        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, " });
            }
        }