public IHttpActionResult Post([FromBody] ProjectRequestModel model)
{
if (!this.ModelState.IsValid)
{
return this.BadRequest(this.ModelState);
}
var currentUserId = User.Identity.GetUserId();
var user = this.data.Clients.Find(x => x.Id == currentUserId).FirstOrDefault();
if (user == null)
{
return this.BadRequest("Only clients can post projects!");
}
var projectToAdd = Mapper.Map<Project>(model);
projectToAdd.Client = user;
projectToAdd.TimePublished = DateTime.Now;
this.data.Projects.Add(projectToAdd);
this.data.SaveChanges();
var message = string.Format("Post activity: User {0} created project {1} | {2}", user.Email, projectToAdd.Name, "/projects");
pubnubClient.Broadcast(Constants.PubnubChannelActivityFeed, message, str => { }, s => { });
return this.Ok(projectToAdd.Id);
}