コード例 #1
0
        public Licenca ObterLicenca()
        {
            var nomeLicenca = NomeDaLicenca();

            if (nomeLicenca == null)
            {
                return(new Licenca());
            }
            if (_licencas.TryGetValue(nomeLicenca, out Licenca licenca))
            {
                return(licenca);
            }
            else
            {
                try
                {
                    var localArquivo = LocalDoArquivo();
                    if (!File.Exists(localArquivo))
                    {
                        throw new FileNotFoundException("Erro ao localizar o arquivo: " + localArquivo);
                    }
                    var conteudoArquivo = CriptografiaAES.Descriptografa(_hash, File.ReadAllText(localArquivo));
                    licenca = JsonSerializer.Deserialize <Licenca>(conteudoArquivo);
                    _licencas.Add(nomeLicenca, licenca);
                    return(licenca);
                }
                catch (Exception e)
                {
                    throw new ExcecaoDeLicenciamento("Erro ao localizar licença.", e);
                }
            }
        }
コード例 #2
0
        public void SalvarLicenca(Licenca licenca)
        {
            var localArquivo = LocalDoArquivo();
            var caminho      = Path.GetDirectoryName(localArquivo);

            if (!Directory.Exists(caminho))
            {
                Directory.CreateDirectory(caminho);
            }
            var conteudoArquivo = CriptografiaAES.Criptografa(_hash, JsonSerializer.Serialize(licenca));

            File.WriteAllText(localArquivo, conteudoArquivo);
        }
コード例 #3
0
 public Licenca ObterLicencaDoHash(string hash)
 {
     return(JsonSerializer.Deserialize <Licenca>(CriptografiaAES.Descriptografa(_hash, hash)));
 }
コード例 #4
0
 public string GerarHashDaLicenca(Licenca licenca)
 {
     return(CriptografiaAES.Criptografa(_hash, JsonSerializer.Serialize(licenca)));
 }