public static void UpdateSave(PictureSaveData pictureSaveData) { try { SaveDb obj = DbTypeConvertor.FromPictureSaveData(pictureSaveData); DatabaseManager.db.UpdateTable(obj); } catch (Exception ex) { FMLogger.Log("upd saveData fail. " + ex.Message); } }
public static PictureSaveData GetSave(PictureData pd) { PictureSaveData result; try { SaveDb s = DatabaseManager.db.Get <SaveDb>(pd.Id); PictureSaveData pictureSaveData = DbTypeConvertor.ToPictureSaveData(s); result = pictureSaveData; } catch { result = null; } return(result); }
public static bool TrySaveDatabase(IKp2aApp app) { bool saveSuccesful = false; SaveDb save = new SaveDb(Application.Context, app, new ActionOnFinish((success, message) => { saveSuccesful = success; if (!success) { Kp2aLog.Log("Error during TestBase.SaveDatabase: " + message); } }), false); save.Run(); save.JoinWorkerThread(); return(saveSuccesful); }
public static SaveDb FromPictureSaveData(PictureSaveData save) { SaveDb saveDb = new SaveDb(); saveDb.PicId = save.Id; saveDb.PackId = save.PackId; saveDb.IconPath = save.iconMaskPath; saveDb.Progress = save.progres; saveDb.TimeSpent = save.timeSpent; saveDb.TimeStamp = DateTime.UtcNow.Ticks; saveDb.HintsUsed = save.hintsUsed; StepsDb obj = new StepsDb { steps = save.steps }; saveDb.StepsJsonStr = JsonUtility.ToJson(obj); return(saveDb); }
public override void Run() { _app.GetDb().Dirty.Add(_elementToMove.ParentGroup); PwGroup pgParent = _elementToMove.ParentGroup; if (pgParent != _targetGroup) { if (pgParent != null) // Remove from parent { PwEntry entry = _elementToMove as PwEntry; if (entry != null) { pgParent.Entries.Remove(entry); _targetGroup.AddEntry(entry, true, true); } else { PwGroup group = (PwGroup)_elementToMove; if ((_targetGroup == group) || (_targetGroup.IsContainedIn(group))) { Finish(false, _app.GetResourceString(UiStringKey.CannotMoveGroupHere)); return; } pgParent.Groups.Remove(group); _targetGroup.AddGroup(group, true, true); } } } _onFinishToRun = new ActionOnFinish((success, message) => { if (!success) { // Let's not bother recovering from a failure. _app.LockDatabase(false); } }, OnFinishToRun); // Save SaveDb save = new SaveDb(_ctx, _app, OnFinishToRun, false); save.SetStatusLogger(StatusLogger); save.Run(); }
public static PictureSaveData ToPictureSaveData(SaveDb s) { PictureSaveData pictureSaveData = new PictureSaveData(); pictureSaveData.Id = s.PicId; pictureSaveData.PackId = s.PackId; pictureSaveData.iconMaskPath = s.IconPath; pictureSaveData.progres = s.Progress; pictureSaveData.timeSpent = s.TimeSpent; pictureSaveData.hintsUsed = s.HintsUsed; StepsDb stepsDb = JsonUtility.FromJson <StepsDb>(s.StepsJsonStr); if (stepsDb != null && stepsDb.steps != null) { pictureSaveData.steps = stepsDb.steps; } else { pictureSaveData.steps = null; } return(pictureSaveData); }
private static void InitialDbFill(PicturePack pack, List <PictureSaveData> saves) { for (int i = 0; i < pack.Pictures.Count; i++) { DatabaseManager.AddPicture(pack.Pictures[i]); } if (saves != null) { for (int j = 0; j < saves.Count; j++) { try { SaveDb saveDb = DbTypeConvertor.FromPictureSaveData(saves[j]); saveDb.TimeStamp -= (long)(j * 10000000); DatabaseManager.db.Insert(saveDb); } catch (Exception ex) { FMLogger.Log("error while inital save db fill. e:" + ex.Message); } } } }
protected override void OnDialogClosed(bool positiveResult) { base.OnDialogClosed(positiveResult); if (positiveResult) { ulong paramValue; String strRounds = edittext.Text; if (!(ulong.TryParse(strRounds, out paramValue))) { Toast.MakeText(Context, Resource.String.error_param_not_number, ToastLength.Long).Show(); return; } if (paramValue < 1) { paramValue = 1; } Database db = App.Kp2a.GetDb(); ulong oldValue = ParamValue; if (oldValue == paramValue) { return; } ParamValue = paramValue; Handler handler = new Handler(); SaveDb save = new SaveDb(Context, App.Kp2a, new KdfNumberParamPreference.AfterSave(Context, handler, oldValue, this)); ProgressTask pt = new ProgressTask(App.Kp2a, Context, save); pt.Run(); } }
public static void AddSave(PictureSaveData pictureSaveData) { try { SaveDb obj = DbTypeConvertor.FromPictureSaveData(pictureSaveData); DatabaseManager.db.Insert(obj); string query = "SELECT * FROM PictureDb WHERE PicId=?"; bool flag; PictureDb pictureDb = DatabaseManager.db.QueryFirstRecord <PictureDb>(out flag, query, new object[] { pictureSaveData.Id }); if (flag && pictureDb.HasSave == 0) { pictureDb.HasSave = 1; DatabaseManager.db.UpdateTable(pictureDb); } } catch (Exception ex) { FMLogger.Log("failed to add save. " + ex.Message); AnalyticsManager.DbTransactionError("saveDb", "AddSave: " + ex.Message); } }
public override void Run() { //check if we will run into problems. Then finish with error before we start doing anything. foreach (var _elementToMove in _elementsToMove) { PwGroup pgParent = _elementToMove.ParentGroup; if (pgParent != _targetGroup) { if (pgParent != null) { PwGroup group = _elementToMove as PwGroup; if (group != null) { if ((_targetGroup == group) || (_targetGroup.IsContainedIn(group))) { Finish(false, _app.GetResourceString(UiStringKey.CannotMoveGroupHere)); return; } } } } } foreach (var elementToMove in _elementsToMove) { _app.GetDb().Dirty.Add(elementToMove.ParentGroup); PwGroup pgParent = elementToMove.ParentGroup; if (pgParent != _targetGroup) { if (pgParent != null) // Remove from parent { PwEntry entry = elementToMove as PwEntry; if (entry != null) { pgParent.Entries.Remove(entry); _targetGroup.AddEntry(entry, true, true); } else { PwGroup group = (PwGroup)elementToMove; if ((_targetGroup == group) || (_targetGroup.IsContainedIn(group))) { Finish(false, _app.GetResourceString(UiStringKey.CannotMoveGroupHere)); return; } pgParent.Groups.Remove(group); _targetGroup.AddGroup(group, true, true); } } } } _onFinishToRun = new ActionOnFinish(ActiveActivity, (success, message, activity) => { if (!success) { // Let's not bother recovering from a failure. _app.LockDatabase(false); } }, OnFinishToRun); // Save SaveDb save = new SaveDb(_ctx, _app, OnFinishToRun, false); save.SetStatusLogger(StatusLogger); save.Run(); }
protected override void OnDialogClosed(bool positiveResult) { base.OnDialogClosed(positiveResult); if ( positiveResult ) { ulong rounds; String strRounds = RoundsView.Text; if (!(ulong.TryParse(strRounds,out rounds))) { Toast.MakeText(Context, Resource.String.error_rounds_not_number, ToastLength.Long).Show(); return; } if ( rounds < 1 ) { rounds = 1; } Database db = App.Kp2a.GetDb(); ulong oldRounds = db.KpDatabase.KeyEncryptionRounds; if (oldRounds == rounds) { return; } db.KpDatabase.KeyEncryptionRounds = rounds; Handler handler = new Handler(); SaveDb save = new SaveDb(Context, App.Kp2a, new AfterSave(Context, handler, oldRounds, this)); ProgressTask pt = new ProgressTask(App.Kp2a, Context, save); pt.Run(); } }
public override void Run() { //check if we will run into problems. Then finish with error before we start doing anything. foreach (var _elementToMove in _elementsToMove) { PwGroup pgParent = _elementToMove.ParentGroup; if (pgParent != _targetGroup) { if (pgParent != null) { PwGroup group = _elementToMove as PwGroup; if (group != null) { if ((_targetGroup == group) || (_targetGroup.IsContainedIn(group))) { Finish(false, _app.GetResourceString(UiStringKey.CannotMoveGroupHere)); return; } } } } } HashSet <Database> removeDatabases = new HashSet <Database>(); Database addDatabase = _app.FindDatabaseForElement(_targetGroup); if (addDatabase == null) { Finish(false, "Did not find target database. Did you lock it?"); return; } foreach (var elementToMove in _elementsToMove) { _app.DirtyGroups.Add(elementToMove.ParentGroup); PwGroup pgParent = elementToMove.ParentGroup; if (pgParent != _targetGroup) { if (pgParent != null) // Remove from parent { PwEntry entry = elementToMove as PwEntry; if (entry != null) { var dbRem = _app.FindDatabaseForElement(entry); removeDatabases.Add(dbRem); dbRem.EntriesById.Remove(entry.Uuid); dbRem.Elements.Remove(entry); pgParent.Entries.Remove(entry); _targetGroup.AddEntry(entry, true, true); addDatabase.EntriesById.Add(entry.Uuid, entry); addDatabase.Elements.Add(entry); } else { PwGroup group = (PwGroup)elementToMove; if ((_targetGroup == group) || (_targetGroup.IsContainedIn(group))) { Finish(false, _app.GetResourceString(UiStringKey.CannotMoveGroupHere)); return; } var dbRem = _app.FindDatabaseForElement(@group); if (dbRem == null) { Finish(false, "Did not find source database. Did you lock it?"); return; } dbRem.GroupsById.Remove(group.Uuid); dbRem.Elements.Remove(group); removeDatabases.Add(dbRem); pgParent.Groups.Remove(group); _targetGroup.AddGroup(group, true, true); addDatabase.GroupsById.Add(group.Uuid, group); addDatabase.Elements.Add(group); } } } } //first save the database where we added the elements var allDatabasesToSave = new List <Database> { addDatabase }; //then all databases where we removed elements: removeDatabases.RemoveWhere(db => db == addDatabase); allDatabasesToSave.AddRange(removeDatabases); int indexToSave = 0; bool allSavesSuccess = true; void ContinueSave(bool success, string message, Activity activeActivity) { allSavesSuccess &= success; indexToSave++; if (indexToSave == allDatabasesToSave.Count) { OnFinishToRun.SetResult(allSavesSuccess); OnFinishToRun.Run(); return; } SaveDb saveDb = new SaveDb(_ctx, _app, allDatabasesToSave[indexToSave], new ActionOnFinish(activeActivity, ContinueSave), false); saveDb.SetStatusLogger(StatusLogger); saveDb.ShowDatabaseIocInStatus = allDatabasesToSave.Count > 1; saveDb.Run(); } SaveDb save = new SaveDb(_ctx, _app, allDatabasesToSave[0], new ActionOnFinish(ActiveActivity, ContinueSave), false); save.SetStatusLogger(StatusLogger); save.ShowDatabaseIocInStatus = allDatabasesToSave.Count > 1; save.Run(); }