private string getToken(DTOAuthentication utente)
        {
            using (var context = new MAuthentication.AuthenticationModel())
            {
                var password = utente.EncryptedPassword;
                if (utente == null)
                {
                    return(null);
                }

                var user = GetByCondition(x => string.Equals(x.UserName, utente.UserName, StringComparison.InvariantCultureIgnoreCase) && x.Password.Equals(password) && x.Active);
                if (user == null)
                {
                    return(string.Empty);
                }
                if (string.IsNullOrEmpty(user.Token))
                {
                    generateNewToken(user);
                }
                user.CreationDateTime = DateTime.UtcNow;
                UpdateLoginDate(user);
                utente.Token = user.Token;
                return(user.Token);
            }
        }
 private void generateNewToken(DTOAuthentication user)
 {
     using (var context = new AuthenticationModel())
     {
         user.Token = Convert.ToBase64String(Guid.NewGuid().ToByteArray());
         var tab = context.Users.FirstOrDefault(x => x.UserName.Equals(user.UserName, StringComparison.InvariantCultureIgnoreCase) && x.Password == user.EncryptedPassword);
         // if (tab == null) throw new Exception();//Todo
         tab.Token               = user.Token;
         tab.ActivationDate      = DateTime.UtcNow;
         tab.LastRequestDateTime = DateTime.UtcNow;
         context.SaveChanges();
     }
 }
 protected void UpdateLoginDate(DTOAuthentication user)
 {
     using (var context = new MAuthentication.AuthenticationModel())
     {
         var tabuser = context.Users.FirstOrDefault(x => x.Token.Equals(user.Token));
         if (user == null)
         {
             return;
         }
         user.CreationDateTime        = DateTime.UtcNow;
         tabuser.LastRequestDateTime  = DateTime.UtcNow;
         context.Entry(tabuser).State = EntityState.Modified;
         context.SaveChanges();
     }
 }