public async Task <ActionResult <Project> > PostProjectFullStack(ProjectFullStackVM projectVM) { var userExist = await _context.Users .Where(p => p.Email.Value == projectVM.User.Email || p.Username == projectVM.User.Username) .Select(p => p.Username).FirstOrDefaultAsync(); if (string.IsNullOrWhiteSpace(userExist)) { CadastroUserVMR cadastroUserVM = new CadastroUserVMR(); cadastroUserVM.FirstName = projectVM.User.FirstName; cadastroUserVM.LastName = projectVM.User.LastName; cadastroUserVM.Username = projectVM.User.Username; cadastroUserVM.Email = projectVM.User.Email; cadastroUserVM.Password = projectVM.User.password; var user = cadastroUserVM.To_User(); _context.Users.Add(user); await _context.SaveChangesAsync(); var userVM = user.To_UserVM(); projectVM.UserInfo.IdUser = userVM.Id; projectVM.User.Id = userVM.Id; projectVM.User.password = user.Password; } var userOld = await _context.Users.Where(u => u.Email.Value == projectVM.User.Email || u.Username == projectVM.User.Username) .Select(p => p.Id).FirstOrDefaultAsync(); if (projectVM.UserInfo == null) { return(BadRequest(new { Error = "Projeto deve conter o usuário que o criou" })); } projectVM.UserInfo.IdUser = userOld; projectVM.User.Id = userOld; var projectUser = new ProjectUser(projectVM.UserInfo.IdUser, TypesOfPermissions.Owner); var project = new Project(projectUser, new List <Goal>()) { Description = projectVM.Description, ExpectedEndDate = projectVM.ExpectedEndDate, IsPrivate = projectVM.IsPrivate, Name = projectVM.Name, StartDate = projectVM.StartDate }; _context.Projects.Add(project); await _context.SaveChangesAsync(); projectVM.Id = project.Id; projectVM.NumberOfVotation = project.RelevanceRank.NumberOfVotation; projectVM.Rank = project.RelevanceRank.Rank; projectVM.UserInfo.EntryDate = project.Users.First().EntryDate; projectVM.UserInfo.IdProject = project.Id; projectVM.UserInfo.TypePermission = TypesOfPermissions.Owner; return(CreatedAtAction("GetProjects", new { id = projectVM.Id }, projectVM)); }
public async Task <ActionResult <UserVM> > PostUser(CadastroUserVMR cadastroUserVM) { if (await _context.Users.Where(u => u.Email.Value == cadastroUserVM.Email).AnyAsync()) { return(BadRequest(new { Error = "Email já cadastro no sistema, informe outro email" })); } var user = cadastroUserVM.To_User(); _context.Users.Add(user); await _context.SaveChangesAsync(); var userVM = user.To_UserVM(); return(CreatedAtAction("PostUser", new { id = userVM.Id }, userVM)); }
public static User To_User(this CadastroUserVMR userVMR) { if (userVMR is null) { return(null); } return(new User() { FirstName = userVMR.FirstName, LastName = userVMR.LastName, Username = userVMR.Username, Email = new EmailVO(userVMR.Email), Password = userVMR.Password, }); }