/// <summary> /// Function to generate unique token with expiry against the provided userId. /// Also add a record in database for generated token. /// </summary> /// <param name="userId"></param> /// <returns></returns> public Token GenerateToken(int userId) { var db = new DBAMPContext(); Token token; string AuthToken; DateTime issuedOn; DateTime expiredOn; bool isValidateToken = false; token = db.Tokens.Where(t => t.UserId == userId).FirstOrDefault <Token>(); if (token != null) { isValidateToken = ValidateToken(token.AuthToken, userId.ToString()); } if (!isValidateToken) { AuthToken = Guid.NewGuid().ToString(); issuedOn = DateTime.Now; expiredOn = DateTime.Now.AddSeconds( Convert.ToDouble(ConfigurationManager.AppSettings["AuthTokenExpiry"])); var tokendomain = new Token { UserId = userId, AuthToken = AuthToken, IssuedOn = issuedOn, ExpiresOn = expiredOn }; int rtn = db.ApiTokenInsert(userId, AuthToken, issuedOn, expiredOn); } else { issuedOn = token.IssuedOn; expiredOn = token.ExpiresOn; AuthToken = token.AuthToken; } var tokenModel = new Token() { UserId = userId, IssuedOn = issuedOn, ExpiresOn = expiredOn, AuthToken = AuthToken }; return(tokenModel); }