public string SetAccessToken(DbUserModel user, string token) { var dbUser = this.users.FindOneByIdAs<DbUserModel>(user.Id); dbUser.AccessToken = token; this.users.Save(dbUser, SafeMode.True); return dbUser.AccessToken; }
public HttpResponseMessage RegisterUser(UserModel model) { return this.ExecuteOperationAndHandleExceptions(() => { this.ValidateUser(model); var data = new UserRepository( ConfigurationManager.AppSettings["MongoConnectionString"], ConfigurationManager.AppSettings["Database"]); var dbUser = data.All().FirstOrDefault(u => u.Username.ToLower() == model.Username.ToLower()); if (dbUser != null) { throw new InvalidOperationException("This user already exists in the database"); } dbUser = new DbUserModel() { Username = model.Username, AuthCode = model.AuthCode }; data.Add(dbUser); var responseModel = new RegisterUserResponseModel() { Id = dbUser.Id, Username = dbUser.Username, }; var response = this.Request.CreateResponse(HttpStatusCode.Created, responseModel); return response; }); }
public DbUserModel GetLoggedUser(DbUserModel user) { DbUserModel resultUser = this.users.AsQueryable<DbUserModel>() .FirstOrDefault(u => u.Username.ToLower() == user.Username.ToLower() && u.AuthCode == user.AuthCode); return resultUser; }
public HttpResponseMessage LoginUser(UserModel model) { return this.ExecuteOperationAndHandleExceptions(() => { this.ValidateUser(model); var data = new UserRepository( ConfigurationManager.AppSettings["MongoConnectionString"], ConfigurationManager.AppSettings["Database"]); var dbUser = new DbUserModel() { Username = model.Username, AuthCode = model.AuthCode }; var user = data.GetLoggedUser(dbUser); if (user == null) { throw new FormatException("Invalid username or password"); } string token = null; if (user.AccessToken == null) { token = data.SetAccessToken(user, this.GenerateAccessToken(user.Id)); } else { token = user.AccessToken; } var responseModel = new LoginResponseModel() { Id = user.Id, Username = user.Username, AccessToken = token }; var response = this.Request.CreateResponse(HttpStatusCode.OK, responseModel); return response; }); }
public IQueryable<DbMessageModel> GetTrash(DbUserModel user) { return this.trash.AsQueryable<DbMessageModel>().Where(m => m.Username.ToLower() == user.Username.ToLower()); }
public IQueryable<DbMessageModel> GetSentItems(DbUserModel user) { return this.sentMessages.AsQueryable<DbMessageModel>().Where(m => m.Username.ToLower() == user.Username.ToLower()); }
public IQueryable<DbMessageModel> GetInbox(DbUserModel user) { return this.receivedMessages.AsQueryable<DbMessageModel>().Where(m => m.Username.ToLower() == user.Username.ToLower()); }
public void Add(DbUserModel user) { this.users.Insert(user); }