/// <summary> /// Reperimento dello stato di modifica di un campo /// </summary> /// <param name="fieldName"></param> /// <param name="rule"></param> /// <returns></returns> protected virtual FieldStateTypesEnum GetFieldState(string fieldName, BaseRuleInfo rule) { Property actualProperty = this.FindProperty(fieldName); Property oldProperty = this.FindStoredProperty(fieldName, rule); return(this.GetFieldState(actualProperty, oldProperty)); }
/// <summary> /// /// </summary> /// <param name="rule"></param> /// <returns></returns> protected override bool IsDirtyDependentFields(BaseRuleInfo rule) { bool isDirty = base.IsDirtyDependentFields(rule); if (!isDirty) { // Verifica se sono stati modificati i campi i cui valori sono // visualizzati come oggetto e body del messaggio di posta / iCal // Campi dell'oggetto isDirty = this.GetFieldState(Fields.RESISTENTE_CONVENUTO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.NUMERO_ORDINE, rule) != FieldStateTypesEnum.Unchanged; // Campi del body if (!isDirty) { isDirty = this.GetDescriptionFieldState(rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(CommonFields.AUTORITA_GIUDIZIARIA, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(CommonFields.COMPETENZA_TERRITORIALE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.RUOLO_GENERALE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.RESISTENTE_CONVENUTO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.AVVOCATO_RESISTENTE_CONVENUTO, rule) != FieldStateTypesEnum.Unchanged; } } return(isDirty); }
/// <summary> /// /// </summary> /// <param name="rule"></param> /// <returns></returns> protected override bool IsDirtyDependentFields(BaseRuleInfo rule) { bool isDirty = base.IsDirtyDependentFields(rule); if (!isDirty) { // Verifica se sono stati modificati i campi i cui valori sono // visualizzati come oggetto e body del messaggio di posta / iCal // Campi dell'oggetto isDirty = this.GetFieldState(FIELD_RICORRENTE_ATTORE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_RESISTENTE_CONVENUTO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_NUMERO_ORDINE, rule) != FieldStateTypesEnum.Unchanged; // Campi del body if (!isDirty) { isDirty = this.GetFieldState(FIELD_RICORRENTE_ATTORE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_RESISTENTE_CONVENUTO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_CONTRO_INTERESSATO_TERZO_CHIAMATO, rule) != FieldStateTypesEnum.Unchanged; } } return(isDirty); }
/// <summary> /// Ricerca di una proprietà dell'oggetto da pubblicare nella storicizzazione dell'ultima pubblicazione effettuata /// </summary> /// <param name="propertyName">Nome della proprietà dell'oggetto</param> /// <param name="rule">Dati della regola</param> /// <returns></returns> protected virtual Property FindStoredProperty(string propertyName, BaseRuleInfo rule) { // Reperimento, dall'history, dei dati relativi all'ultima esecuzione della regola per l'oggetto da pubblicare RuleHistoryInfo lastExecutedRule = DataAccess.RuleHistoryDataAdapter.GetLastRuleHistory(rule.Id, this.ListenerRequest.EventInfo.PublishedObject.IdObject); return(this.FindStoredProperty(propertyName, lastExecutedRule)); }
/// <summary> /// Il profilo prevede il campo "Sospensione feriale dei termini", /// pertanto ne viene riportato il valore /// </summary> /// <param name="rule"></param> protected override bool HasSospensioneFerialeTermini(BaseRuleInfo rule) { string ruleName = string.Empty; if (rule.GetType() == typeof(SubRuleInfo)) { ruleName = ((SubRuleInfo)rule).SubRuleName; } else { ruleName = rule.RuleName; } if (this.AreEquals(ruleName, SubRulesUdienzaCautelare.SCADENZA_COSTITUZIONE_UDIENZA_CAUTELARE)) { // Unica scadenza che non deve tener conto della sospensione feriale return(false); } else { Property pSospensioneFerialeTermini = this.FindProperty(Fields.SOSPENSIONE_FERIALE); if (pSospensioneFerialeTermini != null && pSospensioneFerialeTermini.Value != null) { return(this.AreEquals(pSospensioneFerialeTermini.Value.ToString(), "si")); } else { return(base.HasSospensioneFerialeTermini(rule)); } } }
/// <summary> /// /// </summary> /// <param name="rule"></param> /// <returns></returns> protected override bool IsDirtyDependentFields(BaseRuleInfo rule) { bool isDirty = base.IsDirtyDependentFields(rule); if (!isDirty) { // Verifica se, per la causa, è stato modificato il valore del campo sopensione feriale dei termini // rispetto alla versione precedente del profilo FieldStateTypesEnum stateSospensioneFeriale = this.GetFieldState(Fields.SOSPENSIONE_FERIALE, rule); isDirty = (stateSospensioneFeriale != FieldStateTypesEnum.Unchanged); } if (!isDirty) { // Verifica se sono stati modificati i campi i cui valori sono // visualizzati come oggetto e body del messaggio di posta / iCal // Campi dell'oggetto isDirty = this.GetFieldState(Fields.RESISTENTE_CONVENUTO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.RICORRENTE_ATTORE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.NUMERO_ORDINE, rule) != FieldStateTypesEnum.Unchanged; // Campi del body if (!isDirty) { isDirty = this.GetFieldState(Fields.GIUDIZIO_DI, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.CONTRO_INTERESSATO_TERZO_CHIAMATO, rule) != FieldStateTypesEnum.Unchanged; } } return(isDirty); }
/// <summary> /// Indica se la regola ammette il dimezzamento dei termini delle scadenze sulla base del valore inserito nel profilo /// </summary> /// <param name="rule"></param> /// <remarks> /// Se la regola è un promemoria antecedente ad una scadenza importante, /// il dimezzamento in quel caso non dovrà essere calcolato. /// Piuttosto dovrà mantenersi il calcolo (es. 10gg prima). /// </remarks> /// <returns></returns> protected virtual bool RuleHasTerminiDimezzati(BaseRuleInfo rule) { string ruleName = string.Empty; if (rule.GetType() == typeof(SubRuleInfo)) { ruleName = ((SubRuleInfo)rule).SubRuleName; } else { ruleName = rule.RuleName; } if (this.AreEquals(ruleName, SubRulesUdienzaPubblica.SCADENZA_DEPOSITO_DOCUMENTI) || this.AreEquals(ruleName, SubRulesUdienzaPubblica.REMINDER_SCADENZA_DEPOSITO_DOCUMENTI) || this.AreEquals(ruleName, SubRulesUdienzaPubblica.REMINDER_RITIRO_DOCUMENTI_CONTROPARTI) || this.AreEquals(ruleName, SubRulesUdienzaPubblica.SCADENZA_DEPOSITO_MEMORIA) || this.AreEquals(ruleName, SubRulesUdienzaPubblica.REMINDER_DEPOSITO_MEMORIA_CONTROPARTI) || this.AreEquals(ruleName, SubRulesUdienzaPubblica.SCADENZA_DEPOSITO_REPLICA) || this.AreEquals(ruleName, SubRulesUdienzaPubblica.REMINDER_RITIRO_REPLICHE) || this.AreEquals(ruleName, SubRulesPubblicazioneSentenza.SCADENZA_PRESENTAZIONE_APPELLO) || this.AreEquals(ruleName, SubRulesPubblicazioneSentenza.REMINDER_SCADENZA_PRESENTAZIONE_APPELLO) || this.AreEquals(ruleName, SubRulesNotificaSentenza.SCADENZA_PRESENTAZIONE_APPELLO_NOTIFICA_SENTENZA) || this.AreEquals(ruleName, SubRulesNotificaSentenza.REMINDER_SCADENZA_PRESENTAZIONE_APPELLO_NOTIFICA_SENTENZA)) { // Casi un cui la regola prevede il dimezzamento dei termini return(this.TerminiDimezzati); } else { // Casi in cui le regole non prevedono il dimezzamento dei termini return(false); } }
/// <summary> /// /// </summary> /// <param name="rule"></param> /// <returns></returns> protected override bool IsDirtyDependentFields(BaseRuleInfo rule) { bool isDirty = base.IsDirtyDependentFields(rule); if (!isDirty) { // Verifica se sono stati modificati i campi i cui valori sono // visualizzati come oggetto e body del messaggio di posta / iCal // Campi dell'oggetto isDirty = this.GetFieldState(FIELD_PIGNORATO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_PIGNORANTE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_NUMERO_ORDINE, rule) != FieldStateTypesEnum.Unchanged; // Campi del body if (!isDirty) { isDirty = this.GetFieldState(CommonFields.AUTORITA_GIUDIZIARIA, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(CommonFields.COMPETENZA_TERRITORIALE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_PIGNORATO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_PIGNORANTE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_DATA_UDIENZA, rule) != FieldStateTypesEnum.Unchanged; } } return(isDirty); }
/// <summary> /// Scrittura esito dell'esecuzione della regola /// </summary> /// <param name="rule"></param> protected virtual void WriteRuleHistory(BaseRuleInfo rule) { // Scrittura elemento di pubblicazione nell'history RuleHistoryInfo historyInfo = RuleHistoryInfo.CreateInstance(rule); historyInfo.Author = this.ListenerRequest.EventInfo.Author; historyInfo.ObjectSnapshot = this.ListenerRequest.EventInfo.PublishedObject; historyInfo = DataAccess.RuleHistoryDataAdapter.SaveHistoryItem(historyInfo); }
/// <summary> /// /// </summary> /// <param name="rule"></param> public AlboTelematicoRuleOptions(BaseRuleInfo rule) { this.AlboTelematicoServicesUrl = rule.GetOptionByName("WS_ALBO", true).Replace('$', ':'); this.AlboTelematicoServicesUid = rule.GetOptionByName("UID_ALBO", true); this.AlboTelematicoServicesPwd = rule.GetOptionByName("PWD_ALBO", true); this.PitreServicesUrl = rule.GetOptionByName("WS_PITRE", true).Replace('$', ':'); this.PitreServicesUid = rule.GetOptionByName("UID_PITRE", true); this.PitreServicesPwd = rule.GetOptionByName("PWD_PITRE", true); }
/// <summary> /// /// </summary> /// <param name="rule"></param> /// <returns></returns> protected override AvvocaturaBaseRuleOptions GetAvvocaturaOptions(BaseRuleInfo rule) { AvvocaturaBaseRuleOptions opts = base.GetAvvocaturaOptions(rule); string name = string.Empty; // Reperimento del nome della regola / sottoregola if (rule.GetType() == typeof(SubRuleInfo)) { name = ((SubRuleInfo)rule).SubRuleName; } else { name = rule.RuleName; } if (this.RuleHasTerminiDimezzati(rule)) { // La regola prevede il dimezzamento dei termini if (opts.Decorrenza != 0) { // Eccezioni if (this.AreEquals(name, SubRulesPubblicazioneSentenza.REMINDER_SCADENZA_PRESENTAZIONE_APPELLO)) { // La regola "REMINDER_SCADENZA_PRESENTAZIONE_APPELLO" normalmente prevede il // termine di 5 mesi (1 mese dopo il termine presentazione appello, ovvero 6 mesi). // In caso di rito abbreviato, il termine presentazione appello sarà 3 mesi, // il reminder va calcolato a 2 mesi piuttosto che 3 (con l'arrotondamento per eccesso) opts.Decorrenza = 2; } else { if ((opts.Decorrenza % 2) != 0) { if (opts.Decorrenza < 0) { // Arrotondamento per eccesso opts.Decorrenza = (opts.Decorrenza / 2) - 1; } else if (opts.Decorrenza > 0) { // Arrotondamento per eccesso opts.Decorrenza = (opts.Decorrenza / 2) + 1; } } else { opts.Decorrenza = (opts.Decorrenza / 2); } } } } return(opts); }
/// <summary> /// Reperimento delle regole censite in un canale di pubblicazione /// </summary> /// <param name="idChannel">Id del canale di pubblicazione</param> /// <returns></returns> public static RuleInfo[] GetRules(int idChannel) { _logger.Info("BEGIN"); List <RuleInfo> list = new List <RuleInfo>(); try { Database db = DbHelper.CreateDatabase(); using (DBCommandWrapper cw = db.GetStoredProcCommandWrapper(DbHelper.GetSpNameForPackage("GetRules"))) { cw.AddInParameter("pIdInstance", DbType.Int32, idChannel); using (IDataReader reader = db.ExecuteReader(cw)) { while (reader.Read()) { BaseRuleInfo baseRule = CreateRuleInfo(reader); if (baseRule.GetType() == typeof(RuleInfo)) { list.Add((RuleInfo)baseRule); } else if (baseRule.GetType() == typeof(SubRuleInfo)) { SubRuleInfo subRule = (SubRuleInfo)baseRule; RuleInfo parentRule = list.Where(e => e.Id == subRule.IdParentRule).First(); parentRule.SubRulesList.Add(subRule); } } } } } 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(list.ToArray()); }
/// <summary> /// Creazione dell'oggetto del messaggio di posta /// </summary> /// <param name="rule"></param> /// <param name="computedAppointmentDate"></param> /// <returns></returns> protected override string CreateMailSubject(BaseRuleInfo rule, DateTime computedAppointmentDate) { const string FORMAT = "Richiedente: {0}, Data arrivo richiesta: {1} - {2}, N° d'ordine: {3}"; // Creazione dell'oggetto return(string.Format(FORMAT, this.GetPropertyValueAsString(this.FindProperty(FIELD_NAME_RICHIEDENTE)), this.GetPropertyValueAsString(this.FindProperty(FIELD_NAME_DATA_ARRIVO_RICHIESTA_RIMBORSO)), rule.RuleDescription, this.GetPropertyValueAsString(this.FindProperty(FIELD_NUMERO_ORDINE)))); }
/// <summary> /// Reperimento di una regola di pubblicazione /// </summary> /// <param name="id">Identificativo univoco della regola</param> /// <returns></returns> public static RuleInfo GetRule(int id) { _logger.Info("BEGIN"); RuleInfo rule = null; try { Database db = DbHelper.CreateDatabase(); using (DBCommandWrapper cw = db.GetStoredProcCommandWrapper(DbHelper.GetSpNameForPackage("GetRule"))) { cw.AddInParameter("pId", DbType.Int32, id); using (IDataReader reader = db.ExecuteReader(cw)) { while (reader.Read()) { BaseRuleInfo baseRule = CreateRuleInfo(reader); if (baseRule.GetType() == typeof(RuleInfo)) { rule = (RuleInfo)baseRule; } else if (baseRule.GetType() == typeof(SubRuleInfo) && rule != null) { rule.SubRulesList.Add((SubRuleInfo)baseRule); } } } } } 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(rule); }
/// <summary> /// Il profilo prevede il campo "Sospensione feriale dei termini", /// pertanto ne viene riportato il valore /// </summary> /// <param name="rule"></param> protected override bool HasSospensioneFerialeTermini(BaseRuleInfo rule) { Property pSospensioneFerialeTermini = this.FindProperty(FIELD_SOSPENSIONE_FERIALE); if (pSospensioneFerialeTermini != null && pSospensioneFerialeTermini.Value != null) { return(this.AreEquals(pSospensioneFerialeTermini.Value.ToString(), "si")); } else { return(base.HasSospensioneFerialeTermini(rule)); } }
/// <summary> /// /// </summary> /// <param name="rule"></param> /// <returns></returns> protected override bool IsDirtyDependentFields(BaseRuleInfo rule) { bool isDirty = base.IsDirtyDependentFields(rule); if (!isDirty) { // Verifica se, per la causa, è stato modificato il valore del campo sopensione feriale dei termini // rispetto alla versione precedente del profilo FieldStateTypesEnum stateSospensioneFeriale = this.GetFieldState(Fields.SOSPENSIONE_FERIALE, rule); isDirty = (stateSospensioneFeriale != FieldStateTypesEnum.Unchanged); } if (!isDirty) { // Verifica se, per la causa, è stato modificato il valore del campo "Termine per l'appello" // rispetto alla versione precedente del profilo FieldStateTypesEnum stateTermineAppello = this.GetFieldState(Fields.TERMINE_APPELLO, rule); isDirty = (stateTermineAppello != FieldStateTypesEnum.Unchanged); } if (!isDirty) { // Verifica se sono stati modificati i campi i cui valori sono // visualizzati come oggetto e body del messaggio di posta / iCal // Campi dell'oggetto isDirty = this.GetFieldState(Fields.IMPUTATO_I, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.IMPUTATO_II, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.NUMERO_ORDINE, rule) != FieldStateTypesEnum.Unchanged; // Campi del body if (!isDirty) { isDirty = this.GetFieldState(CommonFields.AUTORITA_GIUDIZIARIA, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(CommonFields.COMPETENZA_TERRITORIALE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.RUOLO_GENERALE_NOTIZIE_REATO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.PUBBLICO_MINISTERO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.RUOLO_GENERALE_GIP_GUP, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.IMPUTATO_I, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.AVVOCATO_IMPUTATO_I, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.IMPUTATO_II, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.AVVOCATO_IMPUTATO_II, rule) != FieldStateTypesEnum.Unchanged; } } return(isDirty); }
/// <summary> /// Creazione dell'oggetto del messaggio di posta /// </summary> /// <param name="rule"></param> /// <param name="computedAppointmentDate"></param> /// <returns></returns> protected override string CreateMailSubject(BaseRuleInfo rule, DateTime computedAppointmentDate) { string subject = string.Empty; const string FORMAT = "Resistente/Convenuto: {0} - {1} - N° d'ordine: {2}"; // Creazione dell'oggetto subject = string.Format(FORMAT, this.GetPropertyValueAsString(this.FindProperty(Fields.RESISTENTE_CONVENUTO)), rule.RuleDescription, this.GetPropertyValueAsString(this.FindProperty(Fields.NUMERO_ORDINE))); return(subject); }
/// <summary> /// Creazione dell'oggetto del messaggio di posta /// </summary> /// <param name="rule"></param> /// <param name="computedAppointmentDate"></param> /// <returns></returns> protected override string CreateMailSubject(BaseRuleInfo rule, DateTime computedAppointmentDate) { string subject = string.Empty; // Per la causa del parere, l'oggetto deve essere composto nella seguente maniera: // Richiedente: {0} const string FORMAT = "Richiedente: {0}, - {1}, N° d'ordine: {2}"; // Creazione dell'oggetto subject = string.Format(FORMAT, this.GetPropertyValueAsString(this.FindProperty(FIELD_RICHIEDENTE)), rule.RuleDescription, this.GetPropertyValueAsString(this.FindProperty(FIELD_NUMERO_ORDINE))); return(subject); }
/// <summary> /// Creazione dell'oggetto del messaggio di posta /// </summary> /// <param name="rule"></param> /// <param name="computedAppointmentDate"></param> /// <returns></returns> protected override string CreateMailSubject(BaseRuleInfo rule, DateTime computedAppointmentDate) { string subject = string.Empty; // Per la causa Procedura concorsuale, l'oggetto deve essere composto nella seguente maniera: // Fallito: {0} - {1}, N° d'ordine: {2} const string FORMAT = "Fallito / Debitore: {0} - {1}, N° d'ordine: {2}"; // Creazione dell'oggetto subject = string.Format(FORMAT, this.GetPropertyValueAsString(this.FindProperty(Fields.FALLITO)), rule.RuleDescription, this.GetPropertyValueAsString(this.FindProperty(Fields.NUMERO_ORDINE))); return(subject); }
/// <summary> /// Creazione dell'oggetto del messaggio di posta /// </summary> /// <param name="rule"></param> /// <param name="computedAppointmentDate"></param> /// <returns></returns> protected override string CreateMailSubject(BaseRuleInfo rule, DateTime computedAppointmentDate) { string subject = string.Empty; // Per la causa del Pignoramento, l'oggetto deve essere composto nella seguente maniera: // Pignorato: {0}, Pignorante: {1} - Evento: {2} const string FORMAT = "Pignorato: {0}, Pignorante: {1} - {2}, N° d'ordine: {3}"; // Creazione dell'oggetto subject = string.Format(FORMAT, this.GetPropertyValueAsString(this.FindProperty(FIELD_PIGNORATO)), this.GetPropertyValueAsString(this.FindProperty(FIELD_PIGNORANTE)), rule.RuleDescription, this.GetPropertyValueAsString(this.FindProperty(FIELD_NUMERO_ORDINE))); return(subject); }
/// <summary> /// Creazione dell'oggetto del messaggio di posta /// </summary> /// <param name="rule"></param> /// <param name="computedAppointmentDate"></param> /// <returns></returns> protected override string CreateMailSubject(BaseRuleInfo rule, DateTime computedAppointmentDate) { string subject = string.Empty; // Per la causa del procedimento penale, l'oggetto deve essere composto nella seguente maniera: // Imputato I: {0}, Imputato II: {1} - Evento: {2}, N° d'ordine: {3} const string FORMAT = "Imputato I: {0}, Imputato II: {1} - {2}, N° d'ordine: {3}"; // Creazione dell'oggetto subject = string.Format(FORMAT, this.GetPropertyValueAsString(this.FindProperty(Fields.IMPUTATO_I)), this.GetPropertyValueAsString(this.FindProperty(Fields.IMPUTATO_II)), rule.RuleDescription, this.GetPropertyValueAsString(this.FindProperty(Fields.NUMERO_ORDINE))); return(subject); }
/// <summary> /// Creazione dell'oggetto del messaggio di posta /// </summary> /// <param name="rule"></param> /// <param name="computedAppointmentDate"></param> /// <returns></returns> protected override string CreateMailSubject(BaseRuleInfo rule, DateTime computedAppointmentDate) { string subject = string.Empty; // Per la causa del contenzioso civile, l'oggetto deve essere composto nella seguente maniera: // Ricorrente/Attore: {0}; Resistente/Convenuto: {1} - Evento: {2}; N° d'ordine: {3} const string FORMAT = "Ricorrente/Attore: {0}, Resistente/Convenuto: {1} - {2} - N° d'ordine: {3}"; // Creazione dell'oggetto subject = string.Format(FORMAT, this.GetPropertyValueAsString(this.FindProperty(FIELD_RICORRENTE_ATTORE)), this.GetPropertyValueAsString(this.FindProperty(FIELD_RESISTENTE_CONVENUTO)), rule.RuleDescription, this.GetPropertyValueAsString(this.FindProperty(FIELD_NUMERO_ORDINE))); return(subject); }
/// <summary> /// Azione di invio degli appuntamenti tramite mail /// </summary> /// <param name="rule"></param> /// <param name="mailRequest"></param> protected virtual void DispatchMail(BaseRuleInfo rule, Dispatcher.CalendarMail.MailRequest mailRequest) { try { using (Subscriber.Dispatcher.CalendarMail.MailDispatcher dispatcher = new Subscriber.Dispatcher.CalendarMail.MailDispatcher()) { dispatcher.Dispatch(mailRequest); } } catch (Exception ex) { rule.Error = new ErrorInfo { Id = ErrorCodes.SEND_MAIL_ERROR, Message = string.Format(ErrorDescriptions.SEND_MAIL_ERROR, ex.Message), Stack = ex.StackTrace }; } }
/// <summary> /// /// </summary> /// <param name="rule"></param> /// <returns></returns> protected override bool IsDirtyDependentFields(BaseRuleInfo rule) { bool isDirty = base.IsDirtyDependentFields(rule); if (!isDirty) { // Verifica se il campo tipologia è stato modificato FieldStateTypesEnum tipologiaFieldState = this.GetFieldState(Fields.TIPOLOGIA, rule); isDirty = (tipologiaFieldState != FieldStateTypesEnum.Unchanged); } if (!isDirty) { // Verifica se sono stati modificati i campi i cui valori sono // visualizzati come oggetto e body del messaggio di posta / iCal // Campi dell'oggetto isDirty = this.GetFieldState(Fields.FALLITO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.NUMERO_ORDINE, rule) != FieldStateTypesEnum.Unchanged; // Campi del body if (!isDirty) { isDirty = this.GetFieldState(CommonFields.AUTORITA_GIUDIZIARIA, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(CommonFields.COMPETENZA_TERRITORIALE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.FALLITO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.NUMERO_FALLIMENTO, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.CURATORE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(Fields.GIUDICE_DELEGATO, rule) != FieldStateTypesEnum.Unchanged; } } return(isDirty); }
/// <summary> /// /// </summary> /// <param name="rule"></param> public AvvocaturaBaseRuleOptions(BaseRuleInfo rule) { this.Campo = rule.GetOptionByName(OPTION_FIELD, true); int decorrenza; Int32.TryParse(rule.GetOptionByName(OPTION_DECORRENZA, false), out decorrenza); this.Decorrenza = decorrenza; string tipoDecorrenza = rule.GetOptionByName(OPTION_TIPO_DECORRENZA, false); if (!string.IsNullOrEmpty(tipoDecorrenza)) { this.TipoDecorrenza = (TipoDecorrenzaEnum)Enum.Parse(typeof(TipoDecorrenzaEnum), tipoDecorrenza, true); } int giorniDecorrenzaAvviso; Int32.TryParse(rule.GetOptionByName(OPTION_GIORNI_DECORRENZA_AVVISO, false), out giorniDecorrenzaAvviso); this.GiorniDecorrenzaAvviso = giorniDecorrenzaAvviso; if (giorniDecorrenzaAvviso != 0) { this.DescrizioneDecorrenzaAvviso = rule.GetOptionByName(OPTION_DESCRIZIONE_AVVISO, false); } int oraInizio; Int32.TryParse(rule.GetOptionByName(OPTION_ORA_INIZIO, false), out oraInizio); this.OraInizio = oraInizio; int durataOre; Int32.TryParse(rule.GetOptionByName(OPTION_DURATA_ORE, false), out durataOre); this.OreDurataEvento = durataOre; }
/// <summary> /// Il profilo prevede il campo "Sospensione feriale dei termini", /// pertanto ne viene riportato il valore /// </summary> /// <param name="rule"></param> protected override bool HasSospensioneFerialeTermini(BaseRuleInfo rule) { string ruleName = string.Empty; if (rule.GetType() == typeof(SubRuleInfo)) { ruleName = ((SubRuleInfo)rule).SubRuleName; } else { ruleName = rule.RuleName; } if (this.AreEquals(ruleName, SubRulesTermineAppello.SCADENZA_PRESENTAZIONE_APPELLO) || this.AreEquals(ruleName, SubRulesUdienzaAperturaDibattimento.SCADENZA_DEPOSITO_UDIENZA_APERTURA_DIBATTIMENTO) || this.AreEquals(ruleName, SubRulesUdienzaAperturaDibattimento.REMINDER_DEPOSITO_UDIENZA_APERTURA_DIBATTIMENTO)) { // Uniche regole di calcolo delle scadenze che devono tenere conto della sospensione feriale dei termini Property pSospensioneFerialeTermini = this.FindProperty(Fields.SOSPENSIONE_FERIALE); if (pSospensioneFerialeTermini != null && pSospensioneFerialeTermini.Value != null) { return(this.AreEquals(pSospensioneFerialeTermini.Value.ToString(), "si")); } else { return(base.HasSospensioneFerialeTermini(rule)); } } else { // Le altre regole non prevedono la sospensione feriale dei termini return(false); } }
/// <summary> /// /// </summary> /// <param name="rule"></param> /// <returns></returns> protected override bool IsDirtyDependentFields(BaseRuleInfo rule) { bool isDirty = base.IsDirtyDependentFields(rule); if (!isDirty) { // Verifica se sono stati modificati i campi i cui valori sono // visualizzati come oggetto e body del messaggio di posta / iCal // Campi dell'oggetto isDirty = this.GetFieldState(FIELD_RICHIEDENTE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_NUMERO_ORDINE, rule) != FieldStateTypesEnum.Unchanged; // Campi del body if (!isDirty) { isDirty = this.GetFieldState(FIELD_RICHIEDENTE, rule) != FieldStateTypesEnum.Unchanged || this.GetFieldState(FIELD_DATA_ARRIVO_RICHIESTA, rule) != FieldStateTypesEnum.Unchanged; } } return(isDirty); }
/// <summary> /// Il profilo prevede il campo "Sospensione feriale dei termini", /// pertanto ne viene riportato il valore /// </summary> /// <param name="rule"></param> protected override bool HasSospensioneFerialeTermini(BaseRuleInfo rule) { string ruleName = string.Empty; if (rule.GetType() == typeof(SubRuleInfo)) { ruleName = ((SubRuleInfo)rule).SubRuleName; } else { ruleName = rule.RuleName; } Property pSospensioneFerialeTermini = this.FindProperty(Fields.SOSPENSIONE_FERIALE); if (pSospensioneFerialeTermini != null && pSospensioneFerialeTermini.Value != null) { return(this.AreEquals(pSospensioneFerialeTermini.Value.ToString(), "si")); } else { return(base.HasSospensioneFerialeTermini(rule)); } }
/// <summary> /// Reperimento dello stato di modifica del campo "Descrizione" dell'oggetto /// </summary> /// <param name="rule"></param> /// <returns></returns> protected virtual FieldStateTypesEnum GetDescriptionFieldState(BaseRuleInfo rule) { Property pDescription = new Property { Name = "Description", Type = PropertyTypesEnum.String, Value = this.ListenerRequest.EventInfo.PublishedObject.Description }; RuleHistoryInfo lastExecutedRule = this.GetLastExecutedRule(rule); Property pOldDescription = new Property { Name = "Description", Type = PropertyTypesEnum.String }; if (lastExecutedRule != null && lastExecutedRule.ObjectSnapshot != null) { pOldDescription.Value = lastExecutedRule.ObjectSnapshot.Description; } return(this.GetFieldState(pDescription, pOldDescription)); }
/// <summary> /// /// </summary> /// <param name="data"></param> /// <returns></returns> private static BaseRuleInfo UpdateRule(BaseRuleInfo data) { _logger.Info("BEGIN"); try { Database db = DbHelper.CreateDatabase(); using (DBCommandWrapper cw = db.GetStoredProcCommandWrapper(DbHelper.GetSpNameForPackage("UpdateRule"))) { cw.AddInParameter("pId", DbType.Int32, data.Id); cw.AddInParameter("pDescription", DbType.String, data.RuleDescription); cw.AddInParameter("pEnabled", DbType.StringFixedLength, (data.Enabled ? "1" : "0")); cw.AddInParameter("pOptions", DbType.String, data.GetOptions()); if (data.GetType() == typeof(RuleInfo)) { cw.AddInParameter("pClassId", DbType.String, ((RuleInfo)data).RuleClassFullName); } else { cw.AddInParameter("pClassId", DbType.String, DBNull.Value); } db.ExecuteNonQuery(cw); if (cw.RowsAffected == 0) { throw new SubscriberException(ErrorCodes.SP_EXECUTION_ERROR, string.Format(ErrorDescriptions.SP_EXECUTION_ERROR, "UpdateRule", ErrorDescriptions.SP_EXECUTE_NO_ROWS)); } else { if (data.GetType() == typeof(RuleInfo)) { RuleInfo ruleInfo = (RuleInfo)data; List <SubRuleInfo> newSubRules = new List <SubRuleInfo>(); foreach (SubRuleInfo subRule in ruleInfo.SubRules) { newSubRules.Add((SubRuleInfo)UpdateRule(subRule)); } ruleInfo.SubRulesList = newSubRules; } } } 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)); } finally { _logger.Info("END"); } }