﻿using System;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;

namespace Labs.Dominio.Autenticacao
{
    using Labs.Dados.Repositorios.Autenticacao;
    using Labs.Models.Entidades.Autenticacao;

    public class AutenticacaoDominio
    {
        #region [ PROPRIEDADES ]

        private UserManager<Usuario, String> UserManager { get; set; }

        #endregion

        #region [ CONSTRUTORES ]

        public AutenticacaoDominio()
        {
            UserManager = new UserManager<Usuario, String>(new UsuarioDominio());
        }

        #endregion

        #region [ METODOS PRINCIPAIS ]

        public Task<IdentityResult> Inserir(Usuario objeto)
        {
            return UserManager.CreateAsync(objeto, objeto.SenhaHash);
        }

        public Task<Usuario> Selecionar(String login, String senha)
        {
            return UserManager.FindAsync(login, senha);
        }

        #endregion
    }
}
