/// <summary> /// Aggiornamento dati /// </summary> /// <param name="data"></param> /// <returns></returns> public static RuleHistoryInfo SaveHistoryItem(RuleHistoryInfo data) { _logger.Info("BEGIN"); try { Database db = DbHelper.CreateDatabase(); using (DBCommandWrapper cw = db.GetStoredProcCommandWrapper(DbHelper.GetSpNameForPackage("InsertHistory"))) { cw.AddInParameter("pRuleId", DbType.Int32, data.IdRule); cw.AddInParameter("pIdObject", DbType.String, data.ObjectSnapshot.IdObject); cw.AddInParameter("pObjectType", DbType.String, data.ObjectSnapshot.ObjectType); cw.AddInParameter("pObjectTemplateName", DbType.String, data.ObjectSnapshot.TemplateName); cw.AddInParameter("pObjectDescription", DbType.String, data.ObjectSnapshot.Description); cw.AddInParameter("pAuthorName", DbType.String, data.Author.Name); cw.AddInParameter("pAuthorId", DbType.String, data.Author.Id); cw.AddInParameter("pRoleName", DbType.String, data.Author.RoleName); cw.AddInParameter("pRoleId", DbType.String, data.Author.IdRole); if (data.ObjectSnapshot != null) { cw.AddClobParameter("pObjectSnapshot", ObjectSerializerHelper.Serialize(data.ObjectSnapshot)); } else { cw.AddClobParameter("pObjectSnapshot", DBNull.Value); } if (data.MailMessageSnapshot != null) { cw.AddClobParameter("pMailMessageSnapshot", ObjectSerializerHelper.Serialize(data.MailMessageSnapshot)); } else { cw.AddClobParameter("pMailMessageSnapshot", DBNull.Value); } cw.AddInParameter("pComputed", DbType.StringFixedLength, (data.Published ? "1" : "0")); cw.AddInParameter("pComputeDate", DbType.DateTime, data.PublishDate); if (data.ErrorInfo != null) { cw.AddInParameter("pErrorId", DbType.String, data.ErrorInfo.Id); cw.AddInParameter("pErrorDescription", DbType.String, data.ErrorInfo.Message); cw.AddInParameter("pErrorStack", DbType.String, data.ErrorInfo.Stack); } else { cw.AddInParameter("pErrorId", DbType.String, DBNull.Value); cw.AddInParameter("pErrorDescription", DbType.String, DBNull.Value); cw.AddInParameter("pErrorStack", DbType.String, DBNull.Value); } cw.AddOutParameter("pId", DbType.Int32, 4); db.ExecuteNonQuery(cw); if (cw.RowsAffected == 1) { data.Id = Convert.ToInt32(cw.GetParameterValue("pId")); } else { throw new SubscriberException(ErrorCodes.SP_EXECUTION_ERROR, string.Format(ErrorDescriptions.SP_EXECUTION_ERROR, "InsertHistory", ErrorDescriptions.SP_EXECUTE_NO_ROWS)); } } return(data); } catch (SubscriberException pubEx) { _logger.Error(pubEx.Message); throw pubEx; } catch (Exception ex) { _logger.Error(ex.Message); throw new SubscriberException(ErrorCodes.UNHANDLED_ERROR, string.Format(ErrorDescriptions.UNHANDLED_ERROR, ex.Message), ex); } finally { _logger.Info("END"); } }
/// <summary> /// Storico delle regole eseguite /// </summary> /// <param name="requestInfo"> /// Dati di filtro per la ricerca delle regole /// </param> /// <returns></returns> public static GetRuleHistoryListResponse GetRuleHistoryList(GetRuleHistoryListRequest requestInfo) { _logger.Info("BEGIN"); try { GetRuleHistoryListResponse response = new GetRuleHistoryListResponse(); List <RuleHistoryInfo> list = new List <RuleHistoryInfo>(); Database db = DbHelper.CreateDatabase(); //using (DBCommandWrapper cw = db.GetStoredProcCommandWrapper(DbHelper.GetSpNameForPackage("GetRuleHistory"))) using (DBCommandWrapper cw = db.GetStoredProcCommandWrapper(DbHelper.GetSpNameForPackage("GetRuleHistoryPaging"))) { cw.AddInParameter("pIdRule", DbType.Int32, requestInfo.IdRule); // Filtri personalizzati if (requestInfo.CustomFilters != null) { cw.AddInParameter("pObjectDescription", DbType.String, GetStringParamValue(requestInfo.CustomFilters.ObjectDescription)); cw.AddInParameter("pAuthorName", DbType.String, GetStringParamValue(requestInfo.CustomFilters.AuthorName)); cw.AddInParameter("pRoleName", DbType.String, GetStringParamValue(requestInfo.CustomFilters.RoleName)); } else { cw.AddInParameter("pObjectDescription", DbType.String, DBNull.Value); cw.AddInParameter("pAuthorName", DbType.String, DBNull.Value); cw.AddInParameter("pRoleName", DbType.String, DBNull.Value); } // Criteri di paginazione if (requestInfo.PagingContext != null) { cw.AddInParameter("pPage", DbType.Int32, requestInfo.PagingContext.PageNumber); cw.AddInParameter("pObjectsPerPage", DbType.Int32, requestInfo.PagingContext.ObjectsPerPage); cw.AddOutParameter("pObjectsCount", DbType.Int32, 4); } else { cw.AddInParameter("pPage", DbType.Int32, 1); cw.AddInParameter("pObjectsPerPage", DbType.Int32, Int32.MaxValue); cw.AddOutParameter("pObjectsCount", DbType.Int32, 4); } using (IDataReader reader = db.ExecuteReader(cw)) { while (reader.Read()) { list.Add(CreteRuleHistoryInfo(reader)); } object objectsCountParam = cw.GetParameterValue("pObjectsCount"); if (objectsCountParam != null) { // Reperimento numero di oggetti totali requestInfo.PagingContext.TotalObjects = Convert.ToInt32(objectsCountParam.ToString()); } } } response.Rules = list.ToArray(); response.PagingContext = requestInfo.PagingContext; return(response); } catch (SubscriberException pubEx) { _logger.Error(pubEx.Message); throw pubEx; } catch (Exception ex) { _logger.Error(ex.Message); throw new SubscriberException(ErrorCodes.UNHANDLED_ERROR, string.Format(ErrorDescriptions.UNHANDLED_ERROR, ex.Message)); } finally { _logger.Info("END"); } }
/// <summary> /// Aggiornamento dati di un canale di pubblicazione /// </summary> /// <param name="data"> /// Metadati del canale /// </param> /// <returns></returns> public static ChannelInfo Save(ChannelInfo data) { _logger.Info("BEGIN"); try { bool insertMode = (data.Id == 0); Database db = DbHelper.CreateDatabase(); if (insertMode) { using (DBCommandWrapper cw = db.GetStoredProcCommandWrapper(DbHelper.GetSpNameForPackage("InsertInstance"))) { cw.AddInParameter("pName", DbType.String, data.Name); cw.AddInParameter("pDescription", DbType.String, data.Description); cw.AddInParameter("pSmtpHost", DbType.String, data.SmtpHost); cw.AddInParameter("pSmtpPort", DbType.Int32, data.SmtpPort); cw.AddInParameter("pSmtpSsl", DbType.StringFixedLength, (data.SmtpSsl ? "1" : "0")); cw.AddInParameter("pSmtpUserName", DbType.String, data.SmtpUserName); cw.AddInParameter("pSmtpPassword", DbType.String, data.SmtpPassword); cw.AddInParameter("pSmtpMail", DbType.String, data.SmtpMail); cw.AddOutParameter("pId", DbType.Int32, 0); db.ExecuteNonQuery(cw); if (cw.RowsAffected == 1) { data.Id = Convert.ToInt32(cw.GetParameterValue("pId")); } else { throw new SubscriberException(ErrorCodes.SP_EXECUTION_ERROR, string.Format(ErrorDescriptions.SP_EXECUTION_ERROR, "InsertInstance", ErrorDescriptions.SP_EXECUTE_NO_ROWS)); } } } else { using (DBCommandWrapper cw = db.GetStoredProcCommandWrapper(DbHelper.GetSpNameForPackage("UpdateInstance"))) { cw.AddInParameter("pId", DbType.Int32, data.Id); cw.AddInParameter("pName", DbType.String, data.Name); cw.AddInParameter("pDescription", DbType.String, data.Description); cw.AddInParameter("pSmtpHost", DbType.String, data.SmtpHost); cw.AddInParameter("pSmtpPort", DbType.Int32, data.SmtpPort); cw.AddInParameter("pSmtpSsl", DbType.StringFixedLength, (data.SmtpSsl ? "1" : "0")); cw.AddInParameter("pSmtpUserName", DbType.String, data.SmtpUserName); cw.AddInParameter("pSmtpPassword", DbType.String, data.SmtpPassword); cw.AddInParameter("pSmtpMail", DbType.String, data.SmtpMail); db.ExecuteNonQuery(cw); if (cw.RowsAffected == 0) { throw new SubscriberException(ErrorCodes.SP_EXECUTION_ERROR, string.Format(ErrorDescriptions.SP_EXECUTION_ERROR, "UpdateInstance", ErrorDescriptions.SP_EXECUTE_NO_ROWS)); } } } } catch (SubscriberException pubEx) { _logger.Error(pubEx.Message); throw pubEx; } catch (Exception ex) { _logger.Error(ex.Message); throw new SubscriberException(ErrorCodes.UNHANDLED_ERROR, string.Format(ErrorDescriptions.UNHANDLED_ERROR, ex.Message), ex); } finally { _logger.Info("END"); } return(data); }