// Serverside: if login OK, sets field is_online to TRUE
        public async Task <LoginOperationResult <T> > ValidateLogin <T>(T account, Expression <Func <T, bool> > validation, Func <T, int> getID, Func <T, int> getType)
        {
            var list = await _repositoryService.SearchForAsync <T>(validation, new Dictionary <string, string> {
                { "login", "1" }
            }, false);



            LoginOperationResult <T> result = new LoginOperationResult <T>();

            if (list.Count() == 0)
            {
                //User doesnt exist
                result.id         = -1;
                result.successful = false;
            }
            else
            {
                T element = list[0];
                result.id         = getID(element);
                result.successful = true;
                //Login Customer
                result.userType = getType(element);
                result.account  = element;
            }



            return(result);
        }
Esempio n. 2
0
    /// <summary>
    /// Executes the LoginOperation asynchronously. The LoginOperationCallback will be invoked when the results are ready.
    /// </summary>
    /// <param name="loginOperationCallback">The callback to be invoked when the result of the LoginOperation is ready.</param>
    public void ExecuteAsync(LoginOperationCallback loginOperationCallback)
    {
        Asserter.NotNull(loginOperationCallback, "LoginOperation.ExecuteAsync:loginOperationCallback is null");
        Dictionary <string, string> fields = new Dictionary <string, string>();

        fields.Add(kUSERNAME_FIELD, _criteria.Username);
        fields.Add(kPASSWORD_FIELD, _criteria.Password);

        WebOperationCallback webOperationCallback = (ResultSet resultSet) =>
        {
            LoginOperationResult result = CreateResultFromResultSet(resultSet);
            loginOperationCallback(result);
        };

        WebOperation.ExecuteAsync(new WebOperationCriteria(WebOperationURLs.GetURL(GetType()), fields), webOperationCallback);
    }
Esempio n. 3
0
    // Use this for initialization
    void Start()
    {
        LoginOperationResult result = LoginOperation.Create(LoginCriteria.Create("greg", "asdf")).Execute();

        switch (result.LoginOperationStatus)
        {
        case (LoginOperationStatus.Success):
            break;

        default:
            Debug.LogError("Could not log in!");
            return;
        }

        GetGroupsOperationResult getGroupsResult = GetGroupsOperation.Create(new GetGroupsOperationCriteria(result.AuthenticationToken)).Execute();

        getGroupsResult.PrintResultSetData();
    }
        public async Task <LoginOperationResult <user_consumer> > ValidateConsumerLogin(string username, string password)
        {
            var list = await _repositoryService.SearchForAsync <user_consumer>(u => u.username == username && u.password == password, u => u.updated_at, u => u.id, false);

            LoginOperationResult <user_consumer> result = new LoginOperationResult <user_consumer>();

            if (list.Count() == 0)
            {
                //User doesnt exist
                result.id         = -1;
                result.successful = false;
            }
            else
            {
                var element = list[0];
                result.id         = element.id;
                result.successful = true;

                result.account = element;
            }

            return(result);
        }
        async void DoLoginCommand()
        {
            StatusLabel = _waitingMessage;

            ////Populate

            //var users = Builder<MLearningDB.User>.CreateListOfSize(5000).All().With(x => x.id = 0 ).And(x=>x.created_at = DateTime.UtcNow).And(x=>x.updated_at = DateTime.UtcNow).And(x=>x.social_id=null).Build();

            //foreach (var user in users)
            //{
            //    await _mLearningService.CreateAccount<MLearningDB.User>(user, u => u.id, UserType.Consumer);

            //    _mLearningService.AddUserToCircle(user.id, 45);
            //}



            ////end populate



            try
            {
                User user = new User {
                    username = Username, password = EncryptionService.encrypt(Password)
                };
                //   User user = new User { username = Username, password = Password };
                LoginOperationResult <User> result = await _mLearningService.ValidateLogin <User>(user, u => u.password == user.password && u.username == user.username, u => u.id, u => u.type);

                // LoginOperationResult result = await _mLearningService.ValidateConsumerLogin(user.username,user.password);

                if (result.successful)
                {
                    LoginOK = true;
                    SessionService.LogIn(result.id, Username);

                    SharedPreferences prefs = Constants.GetSharedPreferences(Constants.PreferencesFileName);
                    prefs.PutString(Constants.UserFirstNameKey, result.account.name);
                    prefs.PutString(Constants.UserLastNameKey, result.account.lastname);
                    prefs.PutString(Constants.UserImageUrlKey, result.account.image_url);

                    prefs.Commit();


                    switch ((UserType)result.userType)
                    {
                    case UserType.Consumer:

                        //Select corresponding user screen

                        ShowViewModel <MainViewModel>();


                        break;

                                                #if (ADMIN)
                    case UserType.Head:


                        ShowViewModel <HeadMainViewModel>(new { user_id = result.id });

                        break;

                    case UserType.Publisher:

                        ShowViewModel <PublisherMainViewModel>(new { user_id = result.id });
                        break;
                                                #endif

                    default:
                        StatusLabel = _wrongCredentialsMessage;
                        LoginOK     = false;
                        break;
                    }
                }
                else
                {
                    StatusLabel = _wrongCredentialsMessage;
                    LoginOK     = false;
                }
            }
            catch (WebException e)
            {
                StatusLabel  = _noInternetMessage;
                ConnectionOK = false;
            }
            catch (HttpRequestException e)
            {
                StatusLabel  = _noInternetMessage;
                ConnectionOK = false;
            }
            catch (MobileServiceInvalidOperationException e)
            {
                Mvx.Trace("MobileServiceInvalidOperationException " + e.Message);
                OperationOK = false;
            }
        }
Esempio n. 6
0
 private Builder()
 {
     _isValid = true;
     _result  = new LoginOperationResult();
 }
Esempio n. 7
0
 void Callback(LoginOperationResult result)
 {
     Debug.Log("Got response of login!");
     Debug.Log(result.AuthenticationToken);
     loggedin = true;
 }