public async Task <IActionResult> RequestAccessAsync([FromBody] RequestAccessDto dto)
        {
            if (null == dto)
            {
                return(BadRequest(dto));
            }

            _logger.LogDebug("Processing RequestAccessAsync");
            var access = await _accessManager.RequestAccessAsync(dto.DoorId, dto.PersonId, dto.Temperature);

            return(Ok(_mapper.Map <AccessDto>(access)));
        }
        public async Task RequestAccessAsync_WithCorrectInput_ReturnsOk()
        {
            var mapper        = new MapperConfiguration(mapperConfiguration => mapperConfiguration.AddProfile(new AutoMapperProfile())).CreateMapper();
            var accessManager = Mock.Of <IAccessManager>();
            var logger        = Mock.Of <ILogger <AccessController> >();

            var dto = new RequestAccessDto
            {
                DoorId      = $"{Guid.NewGuid()}",
                PersonId    = $"{Guid.NewGuid()}",
                Temperature = 37
            };

            var controller   = new AccessController(mapper, accessManager, logger);
            var actionResult = await controller.RequestAccessAsync(dto);

            Assert.NotNull(actionResult);
            Assert.IsAssignableFrom <OkObjectResult>(actionResult);
        }
        public async Task <HttpResponseMessage> RequestLoginAccess(RequestAccessDto user)
        {
            if (ModelState.IsValid)
            {
                IdentityUser  applicationUser = _mapper.Map <IdentityUser>(user);
                ServiceResult result          = await _userManagementService.RequestLoginAccess(applicationUser, user.Password);

                if (result.Succeeded)
                {
                    _userManagementService.SendNotificationEmail($"{user.FirstName} {user.LastName}", user.UserName,
                                                                 LocalUrlHelper.GetApplicationUrl());
                }

                return(Request.CreateResponse(HttpStatusCode.OK, result.Message));
            }

            return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                          string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage))));
        }