// POST /api/values
        public HttpResponseMessage Post(ChirpyRUser model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                MembershipCreateStatus createStatus;
                MembershipUser currentUser = Membership.GetUser(model.UserId);
                if (currentUser == null)
                {
                    Membership.CreateUser(model.UserId, model.Password, model.Email, passwordQuestion: null, passwordAnswer: null, isApproved: true, providerUserKey: null, status: out createStatus);

                    if (createStatus == MembershipCreateStatus.Success)
                    {
                        FormsAuthentication.SetAuthCookie(model.UserId, createPersistentCookie: false);
                        return Request.CreateResponse<ChirpyRUser>(System.Net.HttpStatusCode.Created, model);
                    }
                    else
                    {
                        return Request.CreateResponse<ChirpyRUser>(System.Net.HttpStatusCode.InternalServerError, model);
                    }
                }
                else
                {
                    if (currentUser.ChangePassword(model.OldPassword, model.Password))
                    {
                        Membership.UpdateUser(currentUser);
                    }
                }
            }
            return Request.CreateResponse<ChirpyRUser>(System.Net.HttpStatusCode.InternalServerError, model);
        }
 public HttpResponseMessage Put(ChirpyRUser user)
 {
     if (ModelState.IsValid)
     {
         FormsAuthentication.SignOut();
     }
     return Request.CreateResponse<ChirpyRUser>(System.Net.HttpStatusCode.OK, null);
 }
 public HttpResponseMessage Put(ChirpyRUser model)
 {
     MembershipCreateStatus createStatus;
     MembershipUser currentUser = Membership.GetUser(model.UserId);
     if (currentUser != null)
     {
         if (currentUser.ChangePassword(model.OldPassword, model.Password))
         {
             Membership.UpdateUser(currentUser);
         }
     }
     return Request.CreateResponse<ChirpyRUser>(System.Net.HttpStatusCode.Accepted, model);
 }
 public HttpResponseMessage Get(string userId)
 {
     MembershipUser currentUser = Membership.GetUser(userId);
     if (currentUser != null)
     {
         ChirpyRUser model = new ChirpyRUser();
         model.UserId = userId;
         model.Email = currentUser.Email;
         return Request.CreateResponse<ChirpyRUser>(HttpStatusCode.Accepted, model);
     }
     else
     {
         return null;
     }
 }
 public HttpResponseMessage Post(ChirpyRUser user)
 {
     if (ModelState.IsValid)
     {
         if (Membership.ValidateUser(user.UserId, user.Password))
         {
             FormsAuthentication.SetAuthCookie(user.UserId, false);
             return Request.CreateResponse<ChirpyRUser>(System.Net.HttpStatusCode.OK, user);
         }
         else
         {
             return Request.CreateResponse<ChirpyRUser>(System.Net.HttpStatusCode.Forbidden, user);
         }
     }
     else
     {
         return Request.CreateResponse<ChirpyRUser>(System.Net.HttpStatusCode.Forbidden, user);
     }
 }
 public void RegisterUserTest()
 {
     IChirpyRRepository repository = new ChirpyRSqlRepository("ChirpyRConnection", "dbo");
     ChirpyRDataService target = new ChirpyRDataService(repository);
     ChirpyRUser chirpUser = new ChirpyRUser
     {
         UserId = "Test",
         FullName = "Test User",
         Email = "*****@*****.**"
     };
     long notExpected = 0;
     long actual;
     actual = target.RegisterUser(chirpUser);
     Assert.AreNotEqual(notExpected, actual);
 }
 public void Register10Users()
 {
     IChirpyRRepository repository = new ChirpyRSqlRepository("ChirpyRConnection", "dbo");
     ChirpyRDataService target = new ChirpyRDataService(repository);
     int created = 0;
     int failed = 0;
     for (int i = 0; i < 10; i++)
     {
         try
         {
             ChirpyRUser chirpUser = new ChirpyRUser
             {
                 UserId = "Test" + i.ToString(),
                 FullName = "Test User",
                 Email = "Test"+i.ToString() + "@gmail.com"
             };
             long actual;
             actual = target.RegisterUser(chirpUser);
             created++;
         }
         catch (ApplicationException ae)
         {
             failed++;
         }
     }
     Assert.AreEqual(10, created);
 }