public Result <Posts> CreatePost(int projectId,
                                         CreatePostOptions options)
        {
            if (options == null)
            {
                return(Result <Posts> .ActionFailed(
                           StatusCode.BadRequest, "Null options"));
            }

            if (string.IsNullOrWhiteSpace(options.Post))
            {
                return(Result <Posts> .ActionFailed(
                           StatusCode.BadRequest, "Null or empty Post"));
            }

            var project = context_
                          .Set <Project>()
                          .Where(p => p.ProjectId == projectId)
                          .SingleOrDefault();

            if (project == null)
            {
                return(Result <Posts> .ActionFailed(
                           StatusCode.BadRequest, "Invalid projectId"));
            }

            var post = new Posts()
            {
                Post = options.Post
            };

            project.Posts.Add(post);

            var rows = 0;

            try
            {
                rows = context_.SaveChanges();
            }
            catch (Exception ex)
            {
                return(Result <Posts> .ActionFailed(
                           StatusCode.InternalServerError, ex.ToString()));
            }

            if (rows <= 0)
            {
                return(Result <Posts> .ActionFailed(
                           StatusCode.InternalServerError,
                           "Post could not be created"));
            }

            return(Result <Posts> .ActionSuccessful(post));
        }
        public IActionResult CreatePost([FromBody] PostFormOptions options)
        {
            var postOptions = new CreatePostOptions
            {
                Title = options.Title,
                Text  = options.Text
            };

            var result = _projectService.AddPost(postOptions, Globals.UserId, options.ProjectId);

            if (!result.Success)
            {
                return(StatusCode((int)result.ErrorCode,
                                  result.ErrorText));
            }

            return(Ok());
        }
示例#3
0
        public IActionResult Create([FromBody] CreatePostOptions options)
        {
            if (options == null)
            {
                return(StatusCode(400,
                                  "Bad Request"));
            }

            var result = postService.CreatePost(options.ProjectId, options);

            if (!result.Success)
            {
                return(StatusCode((int)result.ErrorCode,
                                  result.ErrorText));
            }

            return(Json(result.Data));
        }
示例#4
0
        public Result <Post> CreatePost(CreatePostOptions options)
        {
            options.Title = options.Title?.Trim();
            options.Text  = options.Text?.Trim();

            if (string.IsNullOrWhiteSpace(options.Title) || string.IsNullOrWhiteSpace(options.Text))
            {
                return(Result <Post> .Failed(StatusCode.BadRequest, "Options Not Valid"));
            }

            var post = new Post()
            {
                Title = options.Title,
                Text  = options.Text
            };

            _context.Add(post);

            return(Result <Post> .Succeed(post));
        }
        public Result <bool> AddPost(CreatePostOptions createPostOptions, int?userId, int?projectId)
        {
            if (projectId == null || userId == null)
            {
                return(Result <bool> .Failed(StatusCode.BadRequest, "Options Not Valid"));
            }

            if (Helpers.UserOwnsProject(_context, userId, projectId) == false)
            {
                return(Result <bool> .Failed(StatusCode.BadRequest, "Can Not Access A Project You Don't Own"));
            }

            var project = GetProjectById(projectId);

            var post = _postService.CreatePost(createPostOptions);

            if (post.Success)
            {
                project.Data.Posts.Add(post.Data);
            }
            else
            {
                return(Result <bool> .Failed(post.ErrorCode,
                                             post.ErrorText));
            }

            var rows = 0;

            try
            {
                rows = _context.SaveChanges();
            }
            catch (Exception ex)
            {
                return(Result <bool> .Failed(StatusCode.InternalServerError, ex.Message));
            }

            return(rows <= 0
                ? Result <bool> .Failed(StatusCode.InternalServerError, "Post Could Not Be Created")
                : Result <bool> .Succeed(true));
        }