public HttpResponseMessage Post([FromBody] Message value, [ValueProvider(typeof(HeaderValueProviderFactory <String>))] String sessionKey) { var user = usersRepository.GetBySessionKey(sessionKey); if (user == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid session key")); } value.Conversation.Messages = new Collection <Message>(); messagesRepository.Add(value); var receiver = (value.Conversation.FirstUser.Username == user.Username) ? value.Conversation.SecondUser : value.Conversation.FirstUser; usersRepository.AddMissedConversation(receiver, value.Conversation); return(Request.CreateResponse(HttpStatusCode.OK)); }