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()); }
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)); }
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)); }