public async Task <object> Post([FromBody] dynamic model) { if (model == null) { throw new ApiArgumentException("model"); } if (model.expires_on == null) { throw new ApiArgumentException("expires_on"); } string purpose = DynamicHelper.Value(model.purpose) ?? string.Empty; DateTime?expiresOn = DynamicHelper.Value(model.expires_on) != String.Empty ? DynamicHelper.To <DateTime>(model.expires_on) : null; ApiToken token = _keyProvider.GenerateKey(purpose); token.Key.ExpiresOn = expiresOn; await _keyProvider.SaveKey(token.Key); // // Create response dynamic key = ApiKeyHelper.ToJsonModel(token); return(Created(ApiKeyHelper.GetLocation(key.id), key)); }
public async Task <IActionResult> Create(string purpose, string expiration) { long exp = 0; // seconds if (!string.IsNullOrWhiteSpace(expiration)) { exp = long.Parse(expiration); if (exp < 0) { throw new ArgumentOutOfRangeException(nameof(expiration)); } } // Create a key ApiToken key = _keyProvider.GenerateKey(purpose); // Set expiration if (exp > 0) { key.Key.ExpiresOn = DateTime.UtcNow.AddSeconds(exp); } // Store the key await _keyProvider.SaveKey(key.Key); return(View("Index", new { Keys = await GetAllKeys(), NewToken = new { Purpose = purpose, Value = key.Token }.ToExpando() }.ToExpando())); }