public async Task <IHttpActionResult> GetAllUnacceptedForUser() { try { var problems = await ProblemCore.GetAllUnaccepted(Identity.Id); if (problems == null) { return(BadRequest("Invalid Id or no problems found")); } var model = problems.Select(p => new ProblemModel { Id = p.Id, UserId = p.UserId, Name = p.Name, Description = p.Description }).ToArray(); return(Ok(model)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> Get(Guid id) { try { var problem = await ProblemCore.GetAsync(id); if (problem == null) { return(BadRequest("No problem with the given id found")); } var result = new ProblemModel { Id = problem.Id, UserId = problem.UserId, Name = problem.Name, Description = problem.Description }; return(Ok(result)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> Update([FromBody] ProblemModel model) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var problemToUpdate = await ProblemCore.GetAsync(model.Id); if (problemToUpdate == null) { return(BadRequest("Problem couldn't be found")); } problemToUpdate.Name = model.Name; problemToUpdate.Description = model.Description; var result = await ProblemCore.UpdateAsync(problemToUpdate); if (result == null) { return(BadRequest("Error updating problem")); } return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> Create([FromBody] ProblemModel model) { try { if (!ModelState.IsValid || string.IsNullOrWhiteSpace(model.Name) || string.IsNullOrWhiteSpace(model.Description)) { return(BadRequest(ModelState)); } var problem = new Problem { UserId = Identity.Id, Name = model.Name, Description = model.Description }; var result = await ProblemCore.CreateAsync(problem); if (result == null) { return(BadRequest("Invalid input")); } return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> Accept([FromBody] Problem model) { try { var result = await ProblemCore.AcceptProblem(model.Id).ConfigureAwait(false); if (result == null) { return(BadRequest("Error accepting problem")); } return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> Delete(Guid id) { try { var result = await ProblemCore.DeleteAsync(id); if (!result) { return(BadRequest("Error deleting problem")); } return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }