public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var userManager = new UserServices();

            UserModel user = userManager.FindUserByIdAndPassword(context.UserName, context.Password);

            if (user == null)
            {
                context.SetError("invalid_grant", "Le nom d'utilisateur ou le mot de passe est incorrect.");
                return;
            }

            var identity = new ClaimsIdentity(context.Options.AuthenticationType);
            identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));

            AuthenticationProperties properties = CreateProperties(user.UserId);
            AuthenticationTicket ticket = new AuthenticationTicket(identity, properties);
            context.Validated(ticket);
            context.Request.Context.Authentication.SignIn(identity);
        }
        /// <summary>
        /// Convert a user from the database to a UserModel
        /// </summary>
        /// <param name="u"></param>
        /// <returns></returns>
        public UserModel ConvertUserToUserModel(USER1 u)
        {
            UserModel um = new UserModel();

            if (u != null)
            {
                um.UserId = u.USER_ID;
                um.Password = u.USER_PASSWORD;
                um.FirstName = u.USER_FIRSTNAME;
                um.LastName = u.USER_LASTNAME;
                um.Adress1 = u.USER_ADR1;
                um.Adress2 = u.USER_ADR2;
                um.PC = u.USER_PC;
                um.Town = u.USER_TOWN;
                um.Phone = u.USER_PHONE;
                um.Mail = u.USER_MAIL;

                var userServices = new UserServices();
                um.UserRoles = new RolesModel();
                um.UserRoles.IsAdmin = userServices.IsAdmin(um);
                um.UserRoles.IsContributor = userServices.IsContributor(um);
                um.UserRoles.IsManager = userServices.IsManager(um);
                um.UserRoles.IsMember = userServices.IsMember(um);
            }
            else
                um = null;

            return um;
        }