public HttpResponseMessage LogoutUser(
[ValueProvider(typeof(HeaderValueProviderFactory<string>))]string sessionKey)
{
HttpResponseMessage responseMessage = this.PerformOperation(() =>
{
UserValidator.ValidateSessionKey(sessionKey);
var context = new BloggingSystemContext();
using (context)
{
var loggedUserEntity = context.Users.FirstOrDefault<User>(u => u.SessionKey == sessionKey);
if (loggedUserEntity == null)
{
throw new InvalidOperationException("Invalid user or pasword!");
}
loggedUserEntity.SessionKey = null;
context.SaveChanges();
}
return this.Request.CreateResponse(HttpStatusCode.OK);
});
return responseMessage;
}
}