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()); }
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, }); }
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); }