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." }));
        }