Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }