Exemple #1
0
        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);
        }
Exemple #3
0
        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)));
            }
        }