/// <summary> /// Permite la actualización de el estado de los post a enviar /// </summary> public bool ActualizarEstadoPost(int postId, EstadoPost estado) { var parametros = new SqlParameter[] { new SqlParameter() { ParameterName = "@Opcion", Value = Opcion.Actualizar, DbType = DbType.Int32 }, new SqlParameter() { ParameterName = "@PostId", Value = postId, DbType = DbType.Int32 }, new SqlParameter() { ParameterName = "@EstadoId", Value = estado, DbType = DbType.Int32 } }; // Ejecutar la actualización del post: int resultado = EjecutarNoQuery(Constantes.spAdministrarPosts, parametros); if (resultado > 0) { return(true); } else { return(false); } }
/// <summary> /// Permite invocar el procesamiento del post /// </summary> private Task ProcesarPost(Post post) { return(Task.Factory.StartNew(() => { try { repositorio = new PostRepositorio(); if (!Equals(post, null)) { // Actualizar el elemento para evitar reproceso fuera de la cola: repositorio.ActualizarEstadoPost(post.Id, EstadoPost.Enviando); // Elemento de envío: EstadoPost respuesta = PostInvoke.EnviarPost(post); // Procesado con éxito: repositorio.ActualizarEstadoPost(post.Id, respuesta == EstadoPost.Creado? EstadoPost.Enviado : EstadoPost.Error); } } catch { repositorio.ActualizarEstadoPost(post.Id, EstadoPost.Creado); } })); }