示例#1
0
        public async Task <UserDTO> Register(NewUserDTO creatingUser)
        {
            var userSN = new NewUserSocialNetworkDTO()
            {
                UId              = creatingUser.UId,
                ProviderName     = creatingUser.ProviderName,
                SocialNetworkUrl = creatingUser.ProviderUrl,
            };

            var user = _mapper.Map <User>(creatingUser);

            user.CreatedAt = DateTime.Now;
            _context.Add(user);
            await _context.SaveChangesAsync();

            var userDto = _mapper.Map <UserDTO>(user);

            userSN.UserId = userDto.Id;
            var userSNEntity = _mapper.Map <UserSocialNetwork>(userSN);

            _context.Add(userSNEntity);
            await _context.SaveChangesAsync();

            var emailModel = _emailBuilder.GetSignUpLetter(creatingUser.Email, creatingUser.FirstName);
            await _emailService.SendEmailAsync(new List <string> {
                emailModel.Email
            }, emailModel.Subject, emailModel.Title, emailModel.Body);

            return(_mapper.Map <UserDTO>(user));
        }
示例#2
0
        public async Task <UserDTO> Register(NewUserDTO creatingUser)
        {
            var userSNEntity = new UserSocialNetwork()
            {
                UId              = creatingUser.UId,
                ProviderName     = creatingUser.ProviderName,
                SocialNetworkUrl = creatingUser.ProviderUrl,
            };

            var user = _mapper.Map <User>(creatingUser, opt => opt.AfterMap((src, dst) =>
            {
                dst.CreatedAt          = DateTime.Now;
                dst.UserSocialNetworks = new List <UserSocialNetwork> {
                    userSNEntity
                };
            }));

            _context.Add(user);
            await _context.SaveChangesAsync();

            var emailModel = _emailBuilder.GetSignUpLetter(creatingUser.Email, creatingUser.FirstName);
            await _emailService.SendEmailAsync(new List <string> {
                emailModel.Email
            }, emailModel.Subject, emailModel.Title, emailModel.Body);

            return(_mapper.Map <UserDTO>(user));
        }
示例#3
0
        public async Task <ProjectRemoteTriggerDTO> CreateProejectTrigger(NewProjectRemoteTriggerDTO triggerDTO)
        {
            if (triggerDTO == null)
            {
                throw new NullDTOException(typeof(NewProjectRemoteTriggerDTO));
            }

            var project = await _context.Projects.FirstOrDefaultAsync(p => p.Id == triggerDTO.ProjectId);

            if (project == null)
            {
                throw new NotFoundException("Project", triggerDTO.ProjectId);
            }

            var trigger = _mapper.Map <ProjectRemoteTrigger>(triggerDTO);

            _context.Add(trigger);
            await _context.SaveChangesAsync();

            return(_mapper.Map <ProjectRemoteTriggerDTO>(trigger));
        }
示例#4
0
        public async Task <BuildHistory> PrepareBuild(int projectId, string buildAuthorUsername, string triggeredBranch)
        {
            var user = await GetUserByUsername(buildAuthorUsername);

            var build = new BuildHistory();

            build.ProjectId   = projectId;
            build.PerformerId = user?.Id;
            build.BuildStatus = BuildStatus.Pending;
            build.StartedAt   = DateTime.Now;
            build.Number      = _context.BuildHistories.Count(b => b.ProjectId == projectId) + 1;

            var lastCommit = await _synchronizationService.GetLastProjectCommit(projectId, triggeredBranch);

            build.CommitHash = lastCommit.Hash;

            _context.Add(build);
            await _context.SaveChangesAsync();

            return(build);
        }