Ho i seguenti metodi:
-
SingleUserMode()
- attiva la modalità utente singolo nel database -
BeginEdit()
- avvia la modifica degli elementi nel contesto, li blocca nel database -
SaveChanges()
: salva le modifiche al database -
ReleaseSingleUserMode()
- disattiva la modalità utente singolo nel database
Ogni metodo restituisce un oggetto che ha un messaggio e se è stato eseguito correttamente.
Vorrei sapere se c'è un modo "migliore" di scrivere questo:
using (var storeContext = StoreContext.CreateContext())
{
var result = storeContext.SingleUserMode();
if (result)
{
//load data into storecontext...
result = storeContext.BeginEdit();
if (result)
{
//change data...
result = storeContext.SaveChanges();
if (result)
{
//update UI on success
}
}
var releaseResult = storeContext.ReleaseSingleUserMode();
if (!releaseResult)
{
result.AddSubResult(releaseResult); //add the failed release of single user mode to the "parent" result
}
}
if (!result)
{
//fire messagebox on error
}
}
(I commenti indicano i luoghi in cui di solito c'è un codice personalizzato, il resto è "sempre" lo stesso)
FYI, i metodi SingleUserMode
e ReleaseSingleUserMode
sono facoltativi e non devono essere chiamati, anche se chiami SingleUserMode
devi chiamare ReleaseSingleUserMode
, ma senza di esso è solo questo:
using (var storeContext = StoreContext.CreateContext())
{
//load data into storecontext...
result = storeContext.BeginEdit();
if (result)
{
//change data...
result = storeContext.SaveChanges();
if (result)
{
//update UI on success
}
}
if (!result)
{
//fire messagebox on error
}
}