public async Task CreateManager_WhenCalled_CreateNewManager()
        {
            const int    id   = 1;
            const string name = "Josep Guardiola";

            var managerCreateDto = new ManagerCreateDto
            {
                Name = name
            };

            var expectedManager = new Manager
            {
                Id   = id,
                Name = name
            };

            _managerService.Setup(m => m.GetDetailByIdAsync(It.IsAny <int>())).ReturnsAsync(expectedManager);

            var result = await _managersController.CreateManager(managerCreateDto);

            var okObjectResult      = result as OkObjectResult;
            var okObjectResultValue = okObjectResult.Value as ManagerDetailDto;

            _managerService.Verify(m => m.CreateAsync(It.IsAny <Manager>()), Times.Once);

            Assert.That(result, Is.TypeOf <OkObjectResult>());
            Assert.That(okObjectResultValue.Name, Is.EqualTo(name));
        }
Example #2
0
        private async Task ValidateManagerCreateDto(ManagerCreateDto managerDto)
        {
            var validationResults = new List <ValidationResult>();

            validationResults.AddRange(await ValidateUserCreateDto(managerDto.User));

            if (await _context.Companies.AnyAsync(c => c.INN == managerDto.Company.INN))
            {
                validationResults.Add(new ValidationResult($"Организация с таким ИНН: {managerDto.Company.INN} уже зарегистрирована в системе"));
            }

            if (validationResults.Any())
            {
                throw new Exceptions.ValidationException("Произошла ошибка", validationResults);
            }
        }
Example #3
0
        public async Task <UsersLoginResultDto> RegisterManager(ManagerCreateDto managerDto)
        {
            await ValidateManagerCreateDto(managerDto);

            var manager = _mapper.Map <AppUser>(managerDto.User);

            manager.Company               = _mapper.Map <Company>(managerDto.Company);
            manager.Company.ChangeDate    = DateTime.Now;
            manager.UserName              = managerDto.User.Login;
            manager.Company.Subscriptions = new List <Subscription>()
            {
                new Subscription
                {
                    StartDate = DateTime.UtcNow,
                    EndDate   = DateTime.UtcNow.AddDays(7),
                    TariffId  = 2,
                    Active    = true
                }
            };

            manager.Created = DateTime.UtcNow;

            var result = _userManager.CreateAsync(manager, managerDto.User.Password).Result;

            if (!result.Succeeded)
            {
                var validationErrors = new List <ValidationResult>();
                foreach (var error in result.Errors)
                {
                    validationErrors.Add(new ValidationResult(error.Description));
                }

                var ex = new Exceptions.ValidationException("Ошибка регистрации", validationErrors);

                throw ex;
            }


            var user = _userManager.FindByNameAsync(manager.UserName).Result;
            await _userManager.AddToRoleAsync(user, "manager");

            var token = await GenerateJwtToken(user);

            return(new UsersLoginResultDto {
                Name = user.UserName, Token = token
            });
        }
Example #4
0
        public async Task <IActionResult> CreateManager([FromBody] ManagerCreateDto managerCreateDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var managerToCreate = _mapper.Map <Manager>(managerCreateDto);

            await _managerService.CreateAsync(managerToCreate);

            var manager = await _managerService.GetDetailByIdAsync(managerToCreate.Id);

            var returnManager = _mapper.Map <ManagerDetailDto>(manager);

            return(Ok(returnManager));
        }
Example #5
0
        public async Task <IActionResult> Register(ManagerCreateDto managerDto)
        {
            var userRegisterResultDto = await _appUserService.RegisterManager(managerDto);

            return(Ok(userRegisterResultDto));
        }
Example #6
0
 public async Task <AppUserDto> Create([FromBody] ManagerCreateDto dto)
 {
     return(await ManagerAccountAppService.RegisterAsync(dto.UserCreateDto, dto.DistrictID));
 }