public HttpResponseMessage PostRegisterUser(UserModel model) { var responseMsg = this.PerformOperationAndHandleExceptions(() => { var context = new BloggingSystemContext(); using (context) { this.ValidateUsername(model.Username); this.ValidateDisplayname(model.Displayname); this.ValidateAuthCode(model.AuthCode); var usernameToLower = model.Username.ToLower(); var displaynameToLower = model.Displayname.ToLower(); var user = context.Users.FirstOrDefault(usr => usr.Username == usernameToLower || usr.Displayname.ToLower() == displaynameToLower); if (user != null) { throw new InvalidOperationException("User exists"); } user = new User() { Username = usernameToLower, Displayname = model.Displayname, AuthCode = model.AuthCode }; context.Users.Add(user); context.SaveChanges(); user.SessionKey = this.GenerateSessionKey(user.Id); context.SaveChanges(); var loggedModel = new LoggedUserModel() { Displayname = user.Displayname, SessionKey = user.SessionKey }; var response = this.Request.CreateResponse(HttpStatusCode.Created, loggedModel); return response; } }); return responseMsg; }
public HttpResponseMessage PostLoginUser(UserModel model) { var responseMsg = this.PerformOperationAndHandleExceptions( () => { var context = new BlogContext(); using (context) { this.ValidateUsername(model.Username); this.ValidateAuthCode(model.AuthCode); var usernameToLower = model.Username.ToLower(); var user = context.Users.FirstOrDefault( usr => usr.Username == usernameToLower && usr.AuthCode == model.AuthCode); if (user == null) { throw new InvalidOperationException("Users doesn't exists"); } string generateSessionKey = this.GenerateSessionKey(user.Id); user.SessionKey = generateSessionKey; context.SaveChanges(); var loggedModel = new LoggedUserModel() { DisplayName = user.DisplayName, SessionKey = generateSessionKey }; var response = this.Request.CreateResponse(HttpStatusCode.Created, loggedModel); return response; } }); return responseMsg; }