Sto sviluppando un'applicazione che gestisce le vendite per più client, quando il cliente vende un determinato articolo, tali informazioni devono essere inviate all'amministratore. Il conteggio di ogni articolo venduto e il nome dell'oggetto.
L'ho fatto impostando un semplice server online e inviando richieste POST a quel server con i dati appropriati, invio il nome dell'elemento e la modifica in vendita dall'ultimo aggiornamento. Il problema che sto affrontando è se la richiesta non riesce per qualsiasi motivo (il server è inattivo, o Internet non è disponibile, ecc.) Qual è l'approccio migliore a tale problema?
Quello che ho fatto è che ho archiviato la modifica localmente sul computer del cliente. Nella mia attuale implementazione, ho impostato un valore nel registro con il nome dell'elemento alla modifica. Provo ad inviare quella modifica al server e se quella richiesta ha esito positivo, rimuovo quel valore dal registro. Funziona, ma informa il server quando il client vende un altro dello stesso articolo.
Ad esempio, il cliente ha venduto tre degli articoli A e due dell'articolo B, la richiesta è stata inviata correttamente, quindi il server è aggiornato. In seguito, non è stato effettuato l'accesso a Internet e il cliente ha venduto altri due articoli dell'articolo B. Poiché la richiesta non è riuscita, il client ha lasciato "Item B: 2" nel suo registro. Quando Internet ritorna, il server non sarà informato di quelle due vendite a meno che se il cliente venda un altro Articolo B. Questo è estremamente indesiderabile, ma non ho idea di come ripararlo.
Per dirla chiaramente: voglio registrare le vendite sul server, e se Internet non è accessibile, voglio memorizzare la registrazione offline finché Internet non è tornato, a quel punto il i registri archiviati devono essere inviati. Come posso farlo?