/// <summary> /// registra una nueva cuenta de correo /// </summary> public void Register(string pAlias, string pMailAddress, string pPassword) { try { MailAccount mMailAccount; //Se obtiene la existencia de la cuenta que corresponde a los argumentos mMailAccount = this.iMailAccountRepository.Single(MailAccountSelector.ByMailAddress(pMailAddress)); if (mMailAccount != null) { throw new ExistentAccountException(); } //se encripta la contraseña string mPassword = this.iEncryptor.Encrypt(pPassword); //se crea la direccion de correo MailAddress mMailAddress = this.iMailAddressRepository.Single(MailAddressSelector.ByMailAddress(pMailAddress)) ?? new MailAddress { Value = pMailAddress }; //se crea la cuenta de correo mMailAccount = new MailAccount { Alias = pAlias, MailAddress = mMailAddress, Password = mPassword }; //se agrega la nueva cuenta al repositorio this.iMailAccountRepository.Create(mMailAccount); MCDAL.Instance.Save(); } catch (Exception bException) { throw new RegisterException(Resources.Exceptions.RegisterException, bException); } }
/// <summary> /// obtiene la cuenta correspondiente al correo y a la contraseña /// </summary> public MailAccount LoginByMailAddress(string pMailAddress, string pPassword) { //Se obtiene la existencia de la cuenta que corresponde a los argumentos MailAccount mMailAccount = this.iMailAccountRepository.Single(MailAccountSelector.ByMailAddress(pMailAddress)); if (mMailAccount == null) { throw new ExistentAccountException(); } if (this.iEncryptor.Decrypt(mMailAccount.Password) != pPassword) { throw new UnknownAccountException(); } if (mMailAccount.Deleted) { throw new AccountDeletedException(); } return(mMailAccount); }