Esempio di compensazione personalizzata

Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.

In questo esempio viene illustrato come utilizzare CompensableActivity e il relativo gestore di compensazione per definire la logica di compensazione personalizzata. Lo scenario modellato in questo esempio è una Agenzia di noleggio furgoni.

Dettagli dell'esempio

Di seguito sono riportati i passaggi simulati:

  1. L'utente richiede preventivi per il noleggio di furgoni per una data specificata.

  2. Vengono contattate tre società di noleggio furgoni e vengono forniti tre preventivi.

  3. L'utente sceglie un preventivo e procede all'ordine tramite carta di credito.

  4. Gli altri due preventivi vengono annullati dall'applicazione.

  5. Tramite l'applicazione viene addebitata una commissione di servizio che non è risarcibile, per i clienti privi di un conto premium, se l'annullamento avviene entro un massimo di 10 giorni antecedenti la data di prenotazione.

  6. Tramite l'applicazione viene addebitata la tariffa di noleggio del furgone.

  7. L'applicazione attende fino alla data di prenotazione o fino a quando il cliente decide di annullare la prenotazione, a seconda dell'evento che si verifica per primo.

  8. Se il cliente annulla la prenotazione, viene eseguita la logica di compensazione personalizzata CompensationHandler in base alla logica seguente:

    1. Se il cliente non dispone di un conto "premium" e mancano meno di 10 giorni alla data di prenotazione, la commissione di servizio viene comunque addebitata. In caso contrario, la commissione di servizio viene rimborsata dall'applicazione.

    2. Il resto delle attività compensabili (ordine del furgone + tariffa di ordine del furgone) viene eseguito sulla base della logica di compensazione predefinita che consiste nel compensare in ordine inverso di esecuzione.

Per impostare, compilare ed eseguire l'esempio

  1. In Visual Studio 2010 aprire il file della soluzione CustomCompensation.sln. Si trova nella directory \WF\Basic\Compensation\CustomCompensation.

  2. Premere F6 per compilare la soluzione.

  3. Premere CTRL+F5 per eseguire l'applicazione.

Dd483319.Important(it-it,VS.100).gif Nota:
È possibile che gli esempi siano già installati nel computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.

<UnitàInstallazione>:\WF_WCF_Samples

Se questa directory non esiste, visitare la pagina relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi di Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.

<UnitàInstallazione>:\WF_WCF_Samples\WF\Basic\Compensation\CustomCompensation