public async Task CreateAsync(AuthenticationTokenCreateContext context)
        {
            var clientId = context.Ticket.Identity.Claims.FirstOrDefault(x => x.Type == "aud").Value;

            if (string.IsNullOrEmpty(clientId))
            {
                return;
            }
            var refreshTokenLifeTime = context.OwinContext.Get <string>("as:clientRefreshTokenLifeTime");
            var refreshToken         = new IdentityRefreshToken
            {
                Tokenid       = Guid.NewGuid(),
                Applicationid = new Guid(clientId),
                Subject       = context.Ticket.Identity.Claims.FirstOrDefault(x => x.Type == "sub").Value,
                Utccreated    = DateTime.UtcNow,
                Utcexpiry     = DateTime.UtcNow.AddDays(Convert.ToDouble(refreshTokenLifeTime))
                                //UtcCreated = context.Ticket.Properties.IssuedUtc.Value.DateTime,
                                //UtcExpiry = context.Ticket.Properties.ExpiresUtc.Value.DateTime.AddDays(30)
            };


            context.Ticket.Properties.IssuedUtc  = refreshToken.Utccreated;
            context.Ticket.Properties.ExpiresUtc = refreshToken.Utcexpiry;

            refreshToken.Ticket = context.SerializeTicket();
            //await _refreshTokenBl.AddRefreshTokenAsync(refreshToken);
            //await new IdentityRefreshTokenBL(context.OwinContext.Get<InfraEntities>()).AddRefreshTokenAsync(refreshToken);
            await new IdentityRefreshTokenBL(new InfraEntities()).AddRefreshTokenAsync(refreshToken);

            context.SetToken(refreshToken.Tokenid.ToString());
        }
 public async Task <IHttpActionResult> Put(Guid Tokenid, [FromBody] IdentityRefreshToken model)
 {
     if (model.Tokenid != Tokenid)
     {
         return(BadRequest("Resource Tokenid's do not match."));
     }
     model.AppendTransactionContext(Request);
     return(await Save(model));
 }
        public async Task <IHttpActionResult> Get(Guid Tokenid)
        {
            IdentityRefreshToken item = await _bl.GetByKeyAsync(Tokenid);

            if (item.Tokenid == Tokenid)
            {
                return(Ok(item));
            }
            return(NotFound());
        }
        private async Task <IHttpActionResult> Save(IdentityRefreshToken model)
        {
            model = await _bl.SaveAsync(model);

            if (model.Validation.IsValid)
            {
                return(Ok(model));
            }
            CreateModelState(model.Validation);
            return(BadRequest(ModelState));
        }
 public async Task <IHttpActionResult> List([FromUri] IdentityRefreshToken filter, [FromUri] PageConfig pageConfig)
 {
     if (pageConfig == null)
     {
         pageConfig = new PageConfig();
     }
     if (filter == null)
     {
         filter = new IdentityRefreshToken();
     }
     return(Ok(await _bl.List(filter, pageConfig)));
 }
        public async Task <IHttpActionResult> Delete(Guid Tokenid, [FromBody] IdentityRefreshToken model)
        {
            if (model.Tokenid != Tokenid)
            {
                return(BadRequest("Resource Tokenid's do not match."));
            }
            model.AppendTransactionContext(Request);
            model = await _bl.DeleteAsync(model);

            if (model.Validation.IsValid)
            {
                return(Ok(model));
            }
            CreateModelState(model.Validation);
            return(BadRequest(ModelState));
        }
 public async Task <IHttpActionResult> Post([FromBody] IdentityRefreshToken model)
 {
     model.AppendTransactionContext(Request);
     return(await Save(model));
 }
 public async Task AddRefreshToken(IdentityRefreshToken token)
 {
     await _bl.AddRefreshTokenAsync(token);
 }