Carrotware.CMS.DBUpdater.DatabaseUpdate.PerformUpdates C# (CSharp) Метод

PerformUpdates() публичный Метод

public PerformUpdates ( ) : DatabaseUpdateStatus
Результат DatabaseUpdateStatus
        public DatabaseUpdateStatus PerformUpdates()
        {
            DatabaseUpdateStatus status = new DatabaseUpdateStatus();

            bool bUpdate = true;
            List<DatabaseUpdateMessage> lst = new List<DatabaseUpdateMessage>();

            if (!DoCMSTablesExist()) {
                HandleResponse(lst, "Create Database", CreateCMSDatabase());
            } else {
                HandleResponse(lst, "Database already exists");
            }

            bUpdate = DatabaseNeedsUpdate();

            DataInfo ver = GetDbSchemaVersion();

            int iUpdate = 1;

            if (bUpdate || (ver.DataValue != DatabaseUpdate.CurrentDbVersion)) {
                if (ver.DataValue != DatabaseUpdate.CurrentDbVersion) {
                    ver = GetDbSchemaVersion();

                    if (ver.DataValue != DatabaseUpdate.CurrentDbVersion) {
                        ver = GetDbSchemaVersion();
                        if (ver.DataValue == DatabaseUpdate.DbVersion00 || ver.DataValue.StartsWith("201508")
                                    || ver.DataValue.StartsWith("201509") || ver.DataValue.StartsWith("201510")) {
                            HandleResponse(lst, BuildUpdateString(iUpdate++), AlterStep01());
                        }
                    }
                } else {
                    HandleResponse(lst, "Database up-to-date [" + ver.DataValue + "] ");
                }
            } else {
                HandleResponse(lst, "Database up-to-date [" + ver.DataValue + "] ");
            }

            ResetFailedSQL();

            ResetSQLState();

            bUpdate = DatabaseNeedsUpdate();

            status.NeedsUpdate = bUpdate;
            status.Messages = lst;

            return status;
        }

Usage Example

Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            DatabaseUpdate du = new DatabaseUpdate();

            if (!string.IsNullOrEmpty(Request.QueryString["signout"])) {
                FormsAuthentication.SignOut();
            }

            List<DatabaseUpdateMessage> lst = new List<DatabaseUpdateMessage>();

            btnLogin.Visible = false;
            btnCreate.Visible = false;

            if (DatabaseUpdate.LastSQLError != null) {
                du.HandleResponse(lst, DatabaseUpdate.LastSQLError);
                DatabaseUpdate.LastSQLError = null;
            } else {
                bool bUpdate = true;

                if (!du.DoCMSTablesExist()) {
                    bUpdate = false;
                }

                bUpdate = du.DatabaseNeedsUpdate();

                if (bUpdate) {
                    DatabaseUpdateStatus status = du.PerformUpdates();
                    lst = du.MergeMessages(lst, status.Messages);
                } else {
                    DataInfo ver = DatabaseUpdate.GetDbSchemaVersion();
                    du.HandleResponse(lst, "Database up-to-date [" + ver.DataValue + "] ");
                }

                bUpdate = du.DatabaseNeedsUpdate();

                if (!bUpdate && DatabaseUpdate.LastSQLError == null) {
                    if (du.UsersExist) {
                        btnLogin.Visible = true;
                    } else {
                        btnCreate.Visible = true;
                    }
                }
            }

            if (DatabaseUpdate.LastSQLError != null) {
                du.HandleResponse(lst, DatabaseUpdate.LastSQLError);
            }

            if (lst.Where(x => !string.IsNullOrEmpty(x.ExceptionText)).Count() > 0) {
                bOK = false;
            } else {
                bOK = true;
            }

            GeneralUtilities.BindRepeater(rpMessages, lst.OrderBy(x => x.Order));

            using (CMSConfigHelper cmsHelper = new CMSConfigHelper()) {
                cmsHelper.ResetConfigs();
            }
        }
All Usage Examples Of Carrotware.CMS.DBUpdater.DatabaseUpdate::PerformUpdates