private void UpdateDatabase(SyncResult result) { Logger.Debug("Updating database..."); try { KonfiguracijaKase konfiguracija = null; using (var repo = IoC.Singleton().Get <ILocalRepository>()) { konfiguracija = repo.VratiKonfiguracijuKase(); } using (var repo = LocalDatabasePath.GetLocalCopyRepostiory()) { repo.SetAutoDetectChangesEnabled(false); repo.SetValidateOnSaveEnabled(false); repo.DropAndCreateDatabase(); repo.InsertKonfiguracija(konfiguracija); if (result.Radnja != null) { repo.Insert(result.Radnja); } foreach (var pdv in result.Pdv) { repo.Insert(pdv); } foreach (var jedinicaMere in result.JediniceMere) { repo.Insert(jedinicaMere); } foreach (var artikal in result.Artikli) { artikal.IzjednaciZalihu(); repo.Insert(artikal); } foreach (var racun in result.Racuni) { repo.SacuvajRacun(racun); } repo.Submit(); fStanjeSinhronizacije.ID = 0; fStanjeSinhronizacije.PoslednjaSinhronizacija = DateTime.Now; fStanjeSinhronizacije.UspesnaSinhronizacija = fStanjeSinhronizacije.PoslednjaSinhronizacija; fStanjeSinhronizacije.BrojArtikala = result.Artikli.Length; repo.SacuvajSinhronizaciju(fStanjeSinhronizacije); } LocalDatabasePath.SwapDatabases(); Logger.Debug("Database updated."); } catch (Exception exc) { Logger.ErrorException("Update database error", exc); throw; } OsveziStatistiku(); Shell.ShowInfo("Sinhronizacija je uspešno završena"); }
private void Init() { LocalDatabasePath.Init(); }