Example #1
0
        protected void OnDatabaseChanged()
        {
            Analytics.TrackEvent(nameof(OnDatabaseChanged));

            var database = Database;
            var filePath = database.Path;

            if (database.CruiseFileType.HasFlag(CruiseFileType.Cruise))
            {
                String directroy = System.IO.Path.GetDirectoryName(filePath);
                UserSettings.CruiseSaveLocation = directroy;

                var fixMismatchSp = new FixMismatchSpeciesScript();
                if (fixMismatchSp.CheckCanExecute(database))
                {
                    fixMismatchSp.Execute(database);
                }

                if (DatabaseValidator.HasCruiseErrors(database, out var errors))
                {
                    var errorMessage = String.Join("\r\n", errors);
                    var errorData    = new Dictionary <string, string>()
                    {
                        { "errorMessage", errorMessage }
                    };

                    try
                    {
                        if (database.HasForeignKeyErrors())
                        {
                            var fkc = String.Join(",", database.QueryGeneric("PRAGMA foreign_key_check")
                                                  .Select(x => "{\r\n" + x.ToString() + "}")
                                                  .ToArray());
                            errorData.Add("foreign_key_check", fkc);
                        }
                    }
                    catch { }

                    Crashes.TrackError(new Exception("Cruise_Errors"), errorData);
                    //Analytics.TrackEvent("Cruise_Errors", errorData);

                    this.ActiveView.ShowMessage(errorMessage, null);
                }

                WindowPresenter.ShowCruiseLandingLayout();
            }
            else if (database.CruiseFileType.HasFlag(CruiseFileType.Template))
            {
                String directroy = System.IO.Path.GetDirectoryName(filePath);
                UserSettings.TemplateSaveLocation = directroy;
                WindowPresenter.ShowTemplateLandingLayout();
            }

            AppState.AddRecentFile(filePath);
            SaveCommand.Enabled = this.SaveAsCommand.Enabled = (database != null);
        }
Example #2
0
        public void ValidateSupermarketDatabase()
        {
            var db = SupermarketDatabase.Mock;

            var dbValidator = new DatabaseValidator();

            var validationMessages = dbValidator.Validate(db);

            Assert.True(validationMessages.Count() > 0);
        }
Example #3
0
        public void ValidateStoreDatabase()
        {
            var db = StoreDatabase.Mock;

            var dbValidator = new DatabaseValidator();

            var result = dbValidator.Validate(db);

            Assert.True(result.Count() == 0);
        }
        public void ValidateStoreDatabase()
        {
            // Arrange
            var db          = Databases.OnLineStore;
            var dbValidator = new DatabaseValidator();

            // Act
            var result = dbValidator.Validate(db);

            // Assert
            Assert.True(result.IsValid);
        }
        public void ValidateSupermarketDatabase()
        {
            // Arrange
            var db          = Databases.Supermarket;
            var dbValidator = new DatabaseValidator();

            // Act
            var result = dbValidator.Validate(db);

            // Assert
            Assert.False(result.IsValid);
            Assert.True(result.ValidationMessages.Count == 4);
        }
Example #6
0
    public static void Init(SimpleSQLManager database, PicturePack pack = null, List <PictureSaveData> saves = null)
    {
        DatabaseManager.db = database;
        bool flag = false;

        if (DatabaseManager.Version == 0)
        {
            int num  = DatabaseManager.CreatePicDb();
            int num2 = DatabaseManager.CreateSaveDb();
            if (num != -1 && num2 != -1)
            {
                DatabaseManager.Version = 1;
                UnityEngine.Debug.Log("initial db creation successful");
            }
            else
            {
                UnityEngine.Debug.Log(string.Concat(new object[]
                {
                    "db error picDb:",
                    num,
                    " saveDb:",
                    num2
                }));
            }
            flag = true;
        }
        if (DatabaseManager.Version == 1)
        {
            DatabaseManager.DbUpdateOne();
            DatabaseManager.Version = 2;
        }
        if (DatabaseManager.Version == 2)
        {
            DatabaseManager.CreateGiftDb(false);
            DatabaseManager.Version = 3;
        }
        if (DatabaseManager.Version == 3)
        {
            DatabaseManager.CreateNewsDb(false);
            DatabaseManager.Version = 4;
        }
        DatabaseValidator.Validate(DatabaseManager.db);
        if (flag && pack != null && pack.Pictures != null)
        {
            DatabaseManager.InitialDbFill(pack, saves);
        }
    }
    public static void Validate(SimpleSQLManager db)
    {
        string text = string.Empty;

        if (DatabaseValidator.DbExists("PictureDb", db))
        {
            int num = DatabaseValidator.DbContainsCollumns("PictureDb", "PicClass", db);
            if (num == -1)
            {
                text += "picDbUpd:-1";
                UnityEngine.Debug.Log("picDb upd check error");
            }
            else if (num == 0)
            {
                text += "picDbUpd:0";
                UnityEngine.Debug.Log("picDb NOT up to date");
            }
        }
        else
        {
            text += "pic:NULL|";
            UnityEngine.Debug.Log("PictureDb doest not exist");
            int num2 = DatabaseManager.FallbackCreatePicDb();
            if (num2 == 1)
            {
                AnalyticsManager.DbRecovery("pic");
            }
        }
        if (DatabaseValidator.DbExists("SaveDb", db))
        {
            int num3 = DatabaseValidator.DbContainsCollumns("SaveDb", "HintsUsed", db);
            if (num3 == -1)
            {
                text += "saveDbUpd:-1";
                UnityEngine.Debug.Log("saveDb upd check error");
            }
            else if (num3 == 0)
            {
                text += "saveDbUpd:0";
                UnityEngine.Debug.Log("saveDb NOT up to date");
            }
        }
        else
        {
            text += "saves:NULL|";
            UnityEngine.Debug.Log("SaveDb doest not exist");
            int num4 = DatabaseManager.FallbackCreateSaveDb();
            if (num4 == 1)
            {
                AnalyticsManager.DbRecovery("save");
            }
        }
        if (!DatabaseValidator.DbExists("NewsDb", db))
        {
            UnityEngine.Debug.Log("NewsDb doest not exist");
            text += "news:NULL|";
            int num5 = DatabaseManager.CreateNewsDb(true);
            if (num5 == 1)
            {
                AnalyticsManager.DbRecovery("news");
            }
        }
        if (!DatabaseValidator.DbExists("GiftDb", db))
        {
            UnityEngine.Debug.Log("GiftDb doest not exist");
            text += "gifts:NULL|";
            int num6 = DatabaseManager.CreateGiftDb(true);
            if (num6 == 1)
            {
                AnalyticsManager.DbRecovery("gift");
            }
        }
        if (!string.IsNullOrEmpty(text))
        {
            AnalyticsManager.DbValidationError(text);
        }
    }