Exemplo n.º 1
0
 public void TestSaltText()
 {
     var hash = new OpenPOS.Cryptography.Salt.MD5("teste", 2, "teste").Hash;
     Assert.AreEqual(hash.Length, 32);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Tratamentos antes de salvar o usuário na base de dados
        /// </summary>
        /// <param name="updating">Se é uma atualização ou inserção</param>
        public override void BeforeSave(bool updating)
        {
            base.BeforeSave(updating);

            //Passando a senha para todo em maiúscula
            //Senha = Senha.ToUpper();

            //Cria nova senha
            if (!Unimake.Utilities.IsMD5(Senha) && oldPass != Senha)
            {
                Senha = new OpenPOS.Cryptography.Salt.MD5(Senha, Unimake.Convert.ToInt(Settings.Setting.PasswordMD5Loop), Unimake.Convert.ToBoolean(Settings.Setting.PasswordMD5UseKey) ? NomeLogin : "").Hash;
            }

            //Pesquisar o usuário de acordo com o GUID
            IList<IUsuario> contasUsuarios = new Usuario().Find<IUsuario>(new Where
            {
                { "cad_pessoa.guid = @guid",
                    new Parameter
                    {
                        ParameterName = "@guid",
                        Value = this.GUID.ToString()
                    }
                }
            });

            //Se achou um usuário
            if (contasUsuarios.Count > 0)
            {
                //Pesquisa qual a conta corrente desse usuário
                var contas = (from u in contasUsuarios
                             select new
                                    {
                                        GUIDContaCorrente = u.ContaCorrente.GUID
                                    }
                             );

                //Percorre por todas as contas correntes
                foreach (var conta in contas)
                {
                    //Se a conta corrente for diferente podemos marcar como excluido
                    if (conta.GUIDContaCorrente.ToString() != this.ContaCorrente.GUID.ToString())
                    {
                        //Marca como excluído as contas correntes
                        Connection.ExecuteNonQuery(@"UPDATE fin_contacorrente SET excluido = @excluido WHERE guid = @guid", new[]
                        {
                            new Parameter
                            {
                                ParameterName = "@excluido",
                                Value = Excluido.Sim
                            },
                            new Parameter
                            {
                                ParameterName = "@guid",
                                Value = conta.GUIDContaCorrente.ToString()
                            }
                        });
                    }
                }
            }
        }