public async Task <IHttpActionResult> PostPost(CreatePostBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await db.Users.SingleOrDefaultAsync(u => u.UserName == User.Identity.Name); string preview = Post.ParsePreview(model.Content); model.Content = model.Content.Replace(@"//preview\\", ""); var newModel = db.Posts.Add(new Post { Title = model.Title, Subtitle = model.Subtitle, Tag = model.Tag, Preview = preview, Content = model.Content, Featured = model.Featured, Images = model.Images.ConvertAll <Image>(i => i), TimeCreated = DateTime.Now, CreatedBy = user }); await db.SaveChangesAsync(); return(CreatedAtRoute("API", new { id = newModel.Id }, (PostViewModel)newModel)); }
public IHttpActionResult AddPost(int groupId, CreatePostBindingModel post) { var group = this.Data.Groups.All().SingleOrDefault(g => g.Id == groupId); if (group == null) { return this.BadRequest("Invalid group id"); } if (post == null) { return this.BadRequest("Post model cannot be null"); } if (!this.ModelState.IsValid) { return this.BadRequest(this.ModelState); } var postOwnerId = this.User.Identity.GetUserId(); var postOwner = this.Data.ApplicationUsers.All().FirstOrDefault(u => u.Id == postOwnerId); if (!group.Members.Any(m => m.Id == postOwnerId)) { return this.BadRequest("You are not member of the group"); } var postObj = new Post() { Content = post.Content, CreatedOn = DateTime.Now, Owner = postOwner, OwnerId = postOwnerId }; group.Posts.Add(postObj); this.Data.SaveChanges(); var viewModel = new PostViewModel() { Owner = new GroupUserViewModel() { Id = postObj.OwnerId, UserName = postObj.Owner.UserName }, Content = postObj.Content }; return this.Ok(viewModel); }
public async Task <IHttpActionResult> CreatePost(CreatePostBindingModel model) { try { Validate(model); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userId = Convert.ToInt32(User.GetClaimValue("userid")); using (RiscoContext ctx = new RiscoContext()) { Post post = new Post { Text = model.Text, RiskLevel = model.RiskLevel, Location = model.Location, Visibility = model.Visibility, User_Id = userId, CreatedDate = DateTime.UtcNow, }; ctx.Posts.Add(post); ctx.SaveChanges(); SetTrends(Text: post.Text, User_Id: userId, Post_Id: post.Id); if (!string.IsNullOrEmpty(model.ImageUrls)) { var ImageUrls = model.ImageUrls.Split(','); foreach (var ImageUrl in ImageUrls) { Media media = new Media { Type = (int)MediaTypes.Image, Url = ImageUrl, Post_Id = post.Id, CreatedDate = DateTime.UtcNow }; ctx.Medias.Add(media); ctx.SaveChanges(); } } //if (!string.IsNullOrEmpty(model.VideoUrls)) //{ // var VideoUrls = model.VideoUrls.Split(','); // foreach (var VideoUrl in VideoUrls) // { // Media media = new Media // { // Type = (int)MediaTypes.Image, // Url = VideoUrl, // Post_Id = post.Id, // CreatedDate = DateTime.UtcNow // }; // ctx.Medias.Add(media); // ctx.SaveChanges(); // } //} CustomResponse <Post> response = new CustomResponse <Post> { Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = post }; return(Ok(response)); } } catch (Exception ex) { return(StatusCode(Utility.LogError(ex))); } }