示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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,
            });
        }