/// <summary> /// Salva um objeto na persistencia. /// Overload do método para trabalhar com mensagens /// </summary> /// <typeparam name="T"></typeparam> /// <param name="objeto"></param> public SalvarObjetoResponse <T> SalvarObjeto <T>(SalvarObjetoRequest <T> parametros) where T : ICodigoEntidade { // Permite que o hook interfira no processamento if (this.EventoSalvar != null) { // Cria eventargs para permitir que o hook crie sua resposta PersistenciaArquivoEventoEventArgs eventArgs = new PersistenciaArquivoEventoEventArgs() { MensagemRequest = parametros }; // Faz a chamada do hook this.EventoSalvar(this, eventArgs); // Se tem resposta, é a que deve ser retornada if (eventArgs.MensagemResponse != null) { return(eventArgs.MensagemResponse as SalvarObjetoResponse <T>); } } // Pega o código da entidade string codigoEntidade = ((ICodigoEntidade)parametros.Objeto).ReceberCodigo(); // Serializa EntidadeInfo entidadeInfo = serializar <T>(parametros.Objeto); // Verifica se já existe para adicionar ou alterar string chave = gerarChaveEntidade(entidadeInfo); lock (_persistenciaHelper) if (_persistenciaHelper.Entidades.ContainsKey(chave)) { _persistenciaHelper.Entidades[chave] = entidadeInfo; } else { _persistenciaHelper.Entidades.Add(chave, entidadeInfo); } // Retorna return (new SalvarObjetoResponse <T>() { Objeto = parametros.Objeto }); }
public SalvarObjetoResponse <T> SalvarObjeto <T>(SalvarObjetoRequest <T> parametros) where T : ICodigoEntidade { // Repassa a mensagem return(localizarHelper(typeof(T)).Instancia.SalvarObjeto <T>(parametros)); }