public async Task <IHttpActionResult> Create([FromBody] UserProblemModel model) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userProblem = new UserProblem { UserId = Identity.Id, ProblemId = model.ProblemId, DistrictId = model.DistrictId, Date = DateTime.Now, Order = model.Order }; var result = await UserProblemCore.CreateAsync(userProblem); if (result == null) { return(BadRequest("Error adding the problem to the user")); } return(Ok(userProblem)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> Assign([FromBody] AssignUserProblemsModel model) { try { var districtId = model.DistrictId; var userProblems = await UserProblemCore.GetUserProblemsAsync(Identity.Id, districtId).ConfigureAwait(false); if (userProblems != null && userProblems.Count > 0) { var result = await UserProblemCore.DeleteAsync(userProblems).ConfigureAwait(false); if (!result) { return(InternalServerError()); } } if (model.UserProblems.Count == 0) { return(Ok()); } var newUserProblems = model.UserProblems.Select(userProblemModel => new UserProblem { UserId = Identity.Id, ProblemId = userProblemModel.ProblemId, DistrictId = districtId, Date = DateTime.Now, Order = userProblemModel.Order }).ToArray(); var createdProblems = await UserProblemCore.CreateAsync(newUserProblems).ConfigureAwait(false); if (createdProblems == null) { return(InternalServerError()); } return(Ok()); } catch (Exception ex) { return(InternalServerError()); } }