public async Task <bool> CreateUserAsync(SignUpModel signUpModel) { if (!_context.Users.Any(user => user.Email == signUpModel.Email)) { try { var user = new User() { FirstName = signUpModel.FirstName, LastName = signUpModel.LastName, Email = signUpModel.Email }; user.CreatePasswordHash(signUpModel.Password); _context.Users.Add(user); await _context.SaveChangesAsync(); if (signUpModel.IssueUser == true) { var issueUser = new IssueUser() { UserId = user.Id, UserFirstName = user.FirstName }; _context.IssueUsers.Add(issueUser); } await _context.SaveChangesAsync(); return(true); } catch { } } return(false); }
public async Task <IActionResult> Create([FromBody] IssueCreateDto dto) { var userId = User.GetUserId(); var user = await _repo.GetUser(userId); if (user == null) { return(NotFound(new { message = "User not found" })); } var project = await _repo.GetProject(dto.ProjectId, userId); if (project == null) { return(NotFound(new { message = "Project not found." })); } var phase = project.Phases.FirstOrDefault(p => p.Id == dto.PhaseId); if (phase == null) { return(NotFound(new { message = "Phase not found." })); } var issue = _mapper.Map <Issue>(dto); issue.CreatedById = userId; issue.CreatedAt = DateTime.Today.ToShortDateString(); issue.PhaseId = dto.PhaseId; issue.Status = Status.TO_DO; _repo.Add(issue); if (dto.Labels != null) { foreach (var id in dto.Labels) { var label = await _repo.GetLabel(id); var il = new IssueLabel { IssueId = issue.Id, LabelId = label.Id, Issue = issue, Label = label }; issue.IssueLabels.Add(il); } } foreach (var id in dto.IssuedTo) { var iu = new IssueUser { IssueId = issue.Id, UserId = id }; issue.IssuedTo.Add(iu); } if (await _repo.SaveAll()) { var issueToReturn = _mapper.Map <IssueListItemDto>(issue); return(Ok(new { message = "Successfully created the issue", issue = issueToReturn })); } return(BadRequest(new { message = "Error saving the issue." })); }