예제 #1
0
        public async Task <IActionResult> LastGateAccessDate()
        {
            var email   = HttpContext.User.Identity.Name;
            var request = new GetLastGateAccessDate {
                RequestedEmail = email
            };

            var result = await _mediator.Send(request);

            return(StatusCodeResult(result));
        }
예제 #2
0
        public async Task <Result <DateTime> > Handle(GetLastGateAccessDate request, CancellationToken cancellationToken)
        {
            try
            {
                var user = await _userRepository.GetUserByEmail(request.RequestedEmail);

                var result = await _logService.GetAll();

                var errorNum = result.Where(x => x.EventType.Name == "Enter" && x.UserId == user.Id).OrderBy(x => x.CreatedAt).FirstOrDefault();

                if (errorNum == null)
                {
                    return(Result <DateTime> .NotFound("There isn't eny enter log for this user"));
                }

                return(Result <DateTime> .Ok(errorNum.CreatedAt));
            }
            catch (Exception e)
            {
                return(Result <DateTime> .Failure(e.Message));
            }
        }