Пример #1
0
        public async Task <Dictionary <string, object> > Handle(GetCitizenDetails request, CancellationToken cancellationToken)
        {
            var citizen = _context.Citizens.SingleOrDefault(c => c.CNP == request.CNP);
            await _context.SaveChangesAsync(cancellationToken);

            bool succes   = false;
            var  response = new Dictionary <string, object>();

            string tokenData = "";

            if (citizen != null)
            {
                var tokenHandler = new JwtSecurityTokenHandler();
                var key          = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetSection("Keys").GetSection("Key").Value));
                var credentials  = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                var claims = new[]
                {
                    new Claim("CNP", ""),
                    new Claim("VotedFor", citizen.VotedFor.ToString())
                };
                var token = new JwtSecurityToken("https://localhost:44380", "https://localhost:44380", claims, DateTime.UtcNow, expires: DateTime.UtcNow.AddMinutes(120), signingCredentials: credentials);
                tokenData = new JwtSecurityTokenHandler().WriteToken(token);
                succes    = true;
                response.Add("Token", tokenData);
            }
            response.Add("succes", succes);
            response.Add("citizen", citizen);

            return(response);
        }
Пример #2
0
        public async Task <ActionResult <Citizen> > Authorize([FromBody] GetCitizenDetails cnp)
        {
            var response = await _mediator.Send(cnp);

            if (response == null)
            {
                return(NotFound());
            }
            return(Ok(response));
        }