Ejemplo n.º 1
0
        public async Task <User> LogIn(string email, string password)
        {
            var parseUser = await ParseUser.LogInAsync(email, password)
                            .ContinueWith(t =>
            {
                if (t.IsFaulted)
                {
                    var handled = ParseErrorHandler.HandleParseError(t.Exception.InnerException as ParseException);
                    if (!handled)
                    {
                        throw t.Exception.InnerException;
                    }
                }
                _notificationCenter.Send(NotificationKeys.CurrentUserChanged, _currentUser);

                return(t.Result);
            });

            await AssociateInstallationWithUser();

            return(new User
            {
                Id = parseUser.ObjectId,
                Fullname = parseUser["fullname"] as string,
                Email = parseUser.Username,
            });
        }
Ejemplo n.º 2
0
        public Task SignUp(string fullname, string email, string password)
        {
            var user = new ApParseUser
            {
                Email    = email,
                Username = email,
                Password = password,
                Fullname = fullname,
            };

            return(user.SignUpAsync()
                   .ContinueWith(async t =>
            {
                if (t.IsCanceled)
                {
                    throw new TaskCanceledException();
                }
                if (t.IsFaulted)
                {
                    var handled = ParseErrorHandler.HandleParseError(t.Exception.InnerException as ParseException);
                    if (!handled)
                    {
                        throw t.Exception.InnerException;
                    }
                }
                _notificationCenter.Send(NotificationKeys.CurrentUserChanged, _currentUser);
                await AssociateInstallationWithUser();
            }).Unwrap());
        }
Ejemplo n.º 3
0
        void OnError(string msg)
        {
            ParseErrorHandler eh = events [errorEvent] as ParseErrorHandler;

            if (eh != null)
            {
                eh(this, msg);
            }
        }
Ejemplo n.º 4
0
        public async Task <IList <Session> > GetSessions()
        {
            var sessions = (await ParseSession.Query
                            .WhereEqualTo("user", ParseUser.CurrentUser)
                            .FindAsync().ContinueWith(t =>
            {
                if (t.IsFaulted)
                {
                    ParseErrorHandler.HandleParseError(t.Exception.InnerException as ParseException);
                }

                return(t.Result);
            })).ToList();


            var installations = (await ParseCloud.CallFunctionAsync <IList <ApParseInstallation> >("installations", null))
                                .ToDictionary(x => x.InstallationId.ToString());

            var resultSessions = new List <Session>();

            foreach (var parseSession in sessions)
            {
                var expiresAt      = parseSession["expiresAt"] as DateTime?;
                var installationId = parseSession["installationId"] as string;
                var session        = new Session
                {
                    Id        = parseSession.ObjectId,
                    CreatedAt = parseSession.CreatedAt.HasValue ? parseSession.CreatedAt.Value.ToLocalTime() : parseSession.CreatedAt,
                    ExpiresAt = expiresAt.HasValue ? expiresAt.Value.ToLocalTime() : (DateTime?)null,
                };

                if (!string.IsNullOrEmpty(installationId) && installations.ContainsKey(installationId))
                {
                    var installation = installations[installationId];
                    session.DeviceInfo = installation.DeviceInfo;
                }

                resultSessions.Add(session);
            }

            return(resultSessions);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Sets an action to be ran when an error is encountered during parsing.
 /// Details on the error are returned by the callback.
 /// </summary>
 /// <remarks>
 /// Ideally used to display an error message if the command entered encounters an error.
 /// </remarks>
 public CommandParser OnError(Action <object, string> callback)
 {
     ParseError += new ParseErrorHandler(callback);
     return(this);
 }
Ejemplo n.º 6
0
 public PerlangParser(List <Token> tokens, ParseErrorHandler parseErrorHandler, bool allowSemicolonElision)
 {
     this.parseErrorHandler     = parseErrorHandler;
     this.tokens                = tokens;
     this.allowSemicolonElision = allowSemicolonElision;
 }