App.Web.Controllers.RegisterController.Post C# (CSharp) Method

Post() public method

public Post ( RegisterUser user ) : HttpResponseMessage
user RegisterUser
return System.Net.Http.HttpResponseMessage
        public HttpResponseMessage Post(RegisterUser user)
        {
            /* Make sure that NewUser entity has all the required DataAnnotation attributes for validation purposes. */

            if (!this.ModelState.IsValid)
            {
                return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState);
            }

            /* Some additional validation */

            bool isUserNameUnique, isEmailUnique;
            this.db.Users.CheckUniqueness(user.UserName, user.Email, out isUserNameUnique, out isEmailUnique);

            if (isUserNameUnique)
            {
                this.ModelState.AddModelError("UserName", string.Format("A user with username '{0}' is already registered.", user.UserName));
            }

            if (isEmailUnique)
            {
                this.ModelState.AddModelError("Email", string.Format("A user with email '{0}' is already registered.", user.Email));
            }

            if (!this.ModelState.IsValid)
            {
                return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState);
            }

            /* Validation passed. Create a new user record */

            var newUser = this.db.Users.Add(user.UserName, user.Email, user.Password, user.DisplayName);
            this.db.SaveChanges();

            this.formsAuth.SetAuthCookie(newUser.UserName, true);

            return this.Request.CreateResponse(
                HttpStatusCode.Created,
                new
                {
                    UserName = newUser.UserName,
                    Email = newUser.Email,
                    EmailHash = newUser.EmailHash,
                    DisplayName = newUser.DisplayName
                });
        }
RegisterController