public Resultado <bool> ValidarComandoInsertar(_Model.Comandos.Comando_PreguntaNueva comando) { var resultado = new Resultado <bool>(); try { //Si es actualizar, valido el id if (comando is _Model.Comandos.Comando_PreguntaActualizar) { _Model.Comandos.Comando_PreguntaActualizar c = (_Model.Comandos.Comando_PreguntaActualizar)comando; if (!c.Id.HasValue || c.Id.Value <= 0) { resultado.Error = "El id de la pregunta es requerido"; return(resultado); } } //Titulo requerdio if (string.IsNullOrEmpty(comando.Titulo)) { resultado.Error = "El titulo es requerido"; return(resultado); } //Descripcion requerdia if (string.IsNullOrEmpty(comando.Descripcion)) { resultado.Error = "La descripcion es requerida"; return(resultado); } //Tags requeridos if (string.IsNullOrEmpty(comando.Tags)) { resultado.Error = "Tags requeridos"; return(resultado); } //Aplicacion requerida if (!comando.Aplicacion.HasValue || comando.Aplicacion <= 0) { resultado.Error = "La aplicacion a la cual pertenece la pregunta es requerida"; return(resultado); } //Tema requerido if (!comando.Tema.HasValue || comando.Tema <= 0) { resultado.Error = "El tema al cual pertenece la pregunta es requerido"; return(resultado); } resultado.Return = true; } catch (Exception e) { resultado.SetError(e); } return(resultado); }
public Resultado <Pregunta> Actualizar(_Model.Comandos.Comando_PreguntaActualizar comando) { var resultado = new Resultado <Pregunta>(); var resultadoTransaccion = dao.Transaction(() => { try { //Busco la entidad var resultadoEntity = GetByIdObligatorio(comando.Id.Value); if (!resultadoEntity.Ok) { resultado.Error = resultadoEntity.Error; return(false); } var entity = resultadoEntity.Return; if (entity == null || entity.FechaBaja != null) { resultado.Error = "La pregunta no existe o esta dada de baja"; return(false); } //Busco la Aplicacion var resultadoAplicacion = new Rules_Aplicacion(getUsuarioLogueado()).GetById(comando.Aplicacion.Value); if (!resultadoAplicacion.Ok) { resultado.Error = resultadoAplicacion.Error; return(false); } var aplicacion = resultadoAplicacion.Return; if (aplicacion == null || aplicacion.FechaBaja != null) { resultado.Error = "La Aplicacion no existe o esta dada de baja"; return(false); } //Busco el tema var resultadoTema = new Rules_Tema(getUsuarioLogueado()).GetById(comando.Tema.Value); if (!resultadoTema.Ok) { resultado.Error = resultadoTema.Error; return(false); } var tema = resultadoTema.Return; if (tema == null || tema.FechaBaja != null) { resultado.Error = "El tema no existe o esta dado de baja"; return(false); } //Actualizo entity.Id = comando.Id.Value; entity.Titulo = comando.Titulo; entity.Descripcion = comando.Descripcion; entity.Tags = comando.Tags; entity.Aplicacion = aplicacion; entity.Tema = tema; //Actualizo var resultadoUpdate = base.Update(entity); if (!resultadoUpdate.Ok) { resultado.Error = resultadoUpdate.Error; return(false); } resultado.Return = resultadoUpdate.Return; return(true); } catch (Exception e) { resultado.Error = "Error procesando la solicitud"; return(false); } }); if (resultado.Ok && !resultadoTransaccion) { resultado.Error = "Error procesando la solicitud"; return(resultado); } return(resultado); }