public UserModel GetUserInfo( [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string sessionKey) { var responseMsg = this.PerformOperationAndHandleExceptions(() => { var context = new dbf609f467420e40209014a26e008b568aEntities(); var user = context.Users.FirstOrDefault( usr => usr.SessionKey == sessionKey); if (user == null) { throw new InvalidOperationException("Invalid sessionKey"); } var model = new UserModel() { Name = user.Name, Username = user.Username, Password = user.Password }; return(model); }); return(responseMsg); }
public HttpResponseMessage PutLogoutUser( [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string sessionKey) { var responseMsg = this.PerformOperationAndHandleExceptions( () => { var context = new dbf609f467420e40209014a26e008b568aEntities(); using (context) { var user = context.Users.FirstOrDefault( usr => usr.SessionKey == sessionKey); if (user == null) { throw new InvalidOperationException("Invalid sessionKey"); } user.SessionKey = null; context.SaveChanges(); var response = this.Request.CreateResponse(HttpStatusCode.OK); return(response); } }); return(responseMsg); }
public HttpResponseMessage PostRegisterUser(UserModel model) { var responseMsg = this.PerformOperationAndHandleExceptions( () => { var context = new dbf609f467420e40209014a26e008b568aEntities(); using (context) { this.ValidateUsername(model.Username); this.ValidateName(model.Name); this.ValidatePassword(model.Password); var usernameToLower = model.Username.ToLower(); var nameToLower = model.Name.ToLower(); var user = context.Users.FirstOrDefault( usr => usr.Username == usernameToLower || usr.Name.ToLower() == nameToLower); if (user != null) { throw new InvalidOperationException("User already exists"); } user = new User() { Username = usernameToLower, Name = model.Name, Password = model.Password }; context.Users.Add(user); context.SaveChanges(); user.SessionKey = user.Id.ToString(); context.SaveChanges(); var loggedModel = new UserLoggedModel() { Name = user.Name, SessionKey = user.SessionKey }; var response = this.Request.CreateResponse(HttpStatusCode.Created, loggedModel); return(response); } }); return(responseMsg); }