示例#1
0
        protected override void AfterEditAfterCommit(Durados.EditEventArgs e)
        {
            base.AfterEditAfterCommit(e);
            if (e.Values != null && e.Values.ContainsKey("Name"))
            {
                MapDataSet.durados_AppRow appRow = (MapDataSet.durados_AppRow)e.PrevRow;
                string oldName = appRow.Name;
                string newName = e.Values["Name"].ToString();
                if (!oldName.Equals(newName))
                {
                    //Maps.Instance.ChangeName(oldName, newName);
                    //CreateDns(newName);
                    Maps.Instance.Restart(oldName);
                }

                //SqlProduct product = Maps.GetSqlProduct(newName);

                //if (product == SqlProduct.MySql)
                //{
                //    string url = Maps.GetAppUrl(newName);
                //    string[] split = url.Split(':');
                //    url = split[0] + ":" + split[1] + ":" + Maps.ProductsPort[product] + "/Admin/Restart?id=" + Map.Database.GetUserGuid();

                //    Infrastructure.Http.CallWebRequest(url);

                //}
                //else
                //{
                //Maps.Instance.Restart(oldName);
                //}
            }
        }
示例#2
0
        protected override void BeforeEdit(Durados.EditEventArgs e)
        {
            ValidateAuthApp(e);
            if (e.Values.ContainsKey("Name"))
            {
                MapDataSet.durados_AppRow appRow = (MapDataSet.durados_AppRow)e.PrevRow;
                string oldName = appRow.Name;
                string newName = GetCleanName(e.Values["Name"].ToString());
                if (!oldName.Equals(newName))
                {
                    string urlFieldName = "Url";
                    if (e.Values.ContainsKey(urlFieldName))
                    {
                        e.Values[urlFieldName] = e.Values[urlFieldName].ToString().Replace("appName=" + oldName, "appName=" + newName);
                    }
                    else
                    {
                        e.Values.Add(urlFieldName, appRow[urlFieldName].ToString().Replace("appName=" + oldName, "appName=" + newName));
                    }
                    e.Values["Name"] = newName;
                }
            }

            base.BeforeEdit(e);
        }
示例#3
0
        public object GetOracleConnection(MapDataSet.durados_AppRow appRow, object builder, int localPort)
        {
            int  dataSourceTypeId = appRow.DataSourceTypeId;
            bool usesSsh          = !appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.IsSshUsesNull() && appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.SshUses;

            return(GetConnection(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection, dataSourceTypeId, (System.Data.SqlClient.SqlConnectionStringBuilder)builder, OracleAccess.GetConnectionStringSchema()));
        }
示例#4
0
        private void HandleTemplate(string name, string id, MapDataSet.durados_AppRow appRow, string connectionString)
        {
            string oldConfigFileName = Maps.GetConfigPath(string.Format("durados_AppSys_{0}.xml", id));
            string newConfigFileName = Maps.GetConfigPath(string.Format("{0}.xml", Maps.DemoConfigFilename));
            string newSchemaFileName = newConfigFileName + ".xml";
            string oldSchemaFileName = oldConfigFileName + ".xml";


            System.IO.File.Copy(newConfigFileName, oldConfigFileName);
            System.IO.File.Copy(newSchemaFileName, oldSchemaFileName);

            string directory = Maps.DemoFtpPhysicalPath + name;

            System.IO.Directory.CreateDirectory(directory);

            string employeePicture = Server.MapPath("~/Content/Images/pic.jpg");

            System.IO.File.Copy(employeePicture, directory + @"\" + "pic.jpg");

            try
            {
                CopyAzureContainer(Convert.ToInt32(id), oldConfigFileName);
            }
            catch (Exception exception)
            {
                Map.Logger.Log(GetControllerNameForLog(this.ControllerContext), this.ControllerContext.RouteData.Values["action"].ToString(), exception.Source, exception, 1, "Could not copy uploads");
            }

            //Maps.Instance.Restart(name);
        }
示例#5
0
        public object GetPostgreConnection(MapDataSet.durados_AppRow appRow, object builder, int localPort)
        {
            int  dataSourceTypeId = appRow.DataSourceTypeId;
            bool usesSsl          = !appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.IsSslUsesNull() && appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.SslUses;

            return(GetConnection(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection, dataSourceTypeId, (System.Data.SqlClient.SqlConnectionStringBuilder)builder, usesSsl ? "server={0};database={1};User Id={2};password={3};SSL=true;SslMode=Require;" : "server={0};database={1};User Id={2};password={3}") + ";port=" + localPort.ToString() + ";Encoding=UNICODE;CommandTimeout=90;Timeout=60;");
        }
示例#6
0
        public object GetMySqlConnection(MapDataSet.durados_AppRow appRow, object builder, int localPort)
        {
            int  dataSourceTypeId = appRow.DataSourceTypeId;
            bool usesSsh          = !appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.IsSshUsesNull() && appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.SshUses;

            return(GetConnection(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection, dataSourceTypeId, (System.Data.SqlClient.SqlConnectionStringBuilder)builder, usesSsh ? "server=localhost;database={1};User Id={2};password={3};Allow User Variables=True;CharSet=utf8mb4;UseProcedureBodies=true;" : "server={0};database={1};User Id={2};password={3}") + ";port=" + localPort.ToString() + ";convert zero datetime=True;default command timeout=90;Connection Timeout=60;Allow User Variables=True;CharSet=utf8mb4;UseProcedureBodies=true;");
        }
示例#7
0
        protected virtual IDbConnection GetConnection(MapDataSet.durados_AppRow appRow)
        {
            if (appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection == null)
            {
                throw new DuradosException("Missing app connection");
            }


            SqlPersistency persistency = new SqlPersistency();

            System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();

            persistency.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MapsConnectionString"].ConnectionString;
            int sqlProduct = appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.SqlProductId;

            string connectionString = persistency.GetConnection(appRow, builder).ToString();

            int localPort = 0;

            if (sqlProduct == (int)SqlProduct.MySql)
            {
                if (appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.IsSshUsesNull() || !appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.SshUses)
                {
                    localPort = 3306;
                }
                else
                {
                    localPort = 11111;
                }
            }
            else if (sqlProduct == (int)SqlProduct.Postgre)
            {
                localPort = Convert.ToInt32(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.ProductPort ?? "5432");
            }
            else if (sqlProduct == (int)SqlProduct.Oracle)
            {
                localPort = Convert.ToInt32(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection.ProductPort ?? "1521");
            }


            if (sqlProduct == 3)
            {
                connectionString = persistency.GetMySqlConnection(appRow, builder, localPort).ToString();
            }
            else if (sqlProduct == 4)
            {
                connectionString = persistency.GetPostgreConnection(appRow, builder, localPort).ToString();
            }
            else if (sqlProduct == 5)
            {
                connectionString = persistency.GetOracleConnection(appRow, builder, localPort).ToString();
            }
            else
            {
                connectionString = persistency.GetSqlServerConnection(appRow, builder).ToString();
            }

            return(SqlAccess.GetNewConnection((SqlProduct)sqlProduct, connectionString));
        }
示例#8
0
        protected override void AfterCreateAfterCommit(CreateEventArgs e)
        {
            base.AfterCreateAfterCommit(e);

            string dataSourceTypeId = e.Values[dataSourceTypeFieldName].ToString();
            string name             = e.Values[nameFieldName].ToString();

            System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();
            builder.ConnectionString = Map.connectionString;

            string cleanName = GetCleanName(name);

            if (dataSourceTypeId == "1" || dataSourceTypeId == "4") // blank or template
            {
                SqlAccess sqlAccess = new SqlAccess();

                Dictionary <string, object> values = new Dictionary <string, object>();
                values.Add("Catalog", cleanName);
                values.Add("SysCatalog", Maps.DuradosAppSysPrefix + cleanName);
                //values.Add("ServerName", builder.DataSource);
                //values.Add("Username", builder.UserID);
                //values.Add("Password", builder.Password);
                //values.Add("IntegratedSecurity", builder.IntegratedSecurity);
                values.Add("DuradosUser", Map.Database.GetUserID());
                sqlAccess.ExecuteNoneQueryStoredProcedure(Maps.Instance.ConnectionString, "durados_SetConnection", values);
            }
            if (dataSourceTypeId == "2") // existing
            {
                string sysConnection = e.Values["FK_durados_App_durados_SqlConnection_System_Parent"].ToString();
                if (string.IsNullOrEmpty(sysConnection))
                {
                    SqlAccess sqlAccess = new SqlAccess();

                    Dictionary <string, object> values = new Dictionary <string, object>();
                    values.Add("Catalog", cleanName);
                    values.Add("SysCatalog", Maps.DuradosAppSysPrefix + cleanName);
                    values.Add("DuradosUser", Map.Database.GetUserID());
                    sqlAccess.ExecuteNoneQueryStoredProcedure(Maps.Instance.ConnectionString, "durados_SetSysConnection", values);
                }
            }

            if (dataSourceTypeId == "4") // template
            {
                IPersistency persistency         = Maps.Instance.GetNewPersistency();
                MapDataSet.durados_AppRow appRow = (MapDataSet.durados_AppRow)((View)e.View).GetDataRow(e.View.Fields[nameFieldName], name);

                if (!appRow.IsTemplateFileNull() && !string.IsNullOrEmpty(appRow.TemplateFile))
                {
                    TemplateGenerator TemplateGenerator = new TemplateGenerator(persistency.GetConnection(appRow, builder).ToString(), appRow.TemplateFile);
                }
            }

            //UpdateCache(name);
            CreateDns(cleanName);
        }
示例#9
0
        protected virtual IDbCommand GetSystemCommand(MapDataSet.durados_AppRow appRow)
        {
            if (appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection_System == null)
            {
                throw new DuradosException("Missing system connection");
            }

            int systemSqlProduct = appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection_System.SqlProductId;

            return(GetCommand(systemSqlProduct));
        }
示例#10
0
        public object GetSecurityConnection(MapDataSet.durados_AppRow appRow, object builder)
        {
            int dataSourceTypeId = appRow.DataSourceTypeId;

            if (appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection_Security == null)
            {
                return(null);//System.Configuration.ConfigurationManager.ConnectionStrings["SecurityConnectionString"];
            }
            else
            {
                return(GetConnection(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection_Security, dataSourceTypeId, builder));
            }
        }
示例#11
0
        public object GetSystemConnection(MapDataSet.durados_AppRow appRow, object builder)
        {
            int dataSourceTypeId = appRow.DataSourceTypeId;

            if (appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection_System == null)
            {
                return(GetConnection(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection, dataSourceTypeId, builder));
            }
            else
            {
                return(GetConnection(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection_System, dataSourceTypeId, builder));
            }
        }
示例#12
0
        protected virtual IDbConnection GetSystemConnection(MapDataSet.durados_AppRow appRow)
        {
            if (appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection_System == null)
            {
                throw new DuradosException("Missing system connection");
            }
            SqlPersistency persistency = new SqlPersistency();

            System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();

            persistency.SystemConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["SystemMapsConnectionString"].ConnectionString;
            int systemSqlProduct = appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection_System.SqlProductId;

            string connectionString = persistency.GetSystemConnection(appRow, builder).ToString();

            return(SqlAccess.GetNewConnection((SqlProduct)systemSqlProduct, connectionString));
        }
示例#13
0
        public MapDataSet.durados_AppRow GetAppRow()
        {
            if (appRow != null)
            {
                return(appRow);
            }

            View  appView = GetAppView();
            Field idField = appView.Fields["Id"];



            if (!AppId.HasValue)
            {
                Durados.Diagnostics.EventViewer.WriteEvent(string.Format("Could not find app for appname: {0} or AppId: {1}", AppName, AppId));
                return(null);
            }

            try
            {
                appRow = (MapDataSet.durados_AppRow)appView.GetDataRow(idField, AppId.Value.ToString(), false);
            }
            catch (Exception exception)
            {
                Durados.Diagnostics.EventViewer.WriteEvent("failed to GetDataRow for id: " + AppId.Value, exception);
                try
                {
                    ((DuradosMap)Maps.Instance.DuradosMap).AddSslAndAahKeyColumn();
                    appRow = (MapDataSet.durados_AppRow)appView.GetDataRow(idField, AppId.Value.ToString(), false);
                }
                catch (Exception exception2)
                {
                    //Durados.Diagnostics.EventViewer.WriteEvent(exception2);
                }
            }

            if (appRow == null)
            {
                return(null);
            }

            AppName = appRow.Name;
            return(appRow);
        }
示例#14
0
        public object GetSqlServerConnection(MapDataSet.durados_AppRow appRow, object builder)
        {
            int dataSourceTypeId = appRow.DataSourceTypeId;

            return(GetConnection(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection, dataSourceTypeId, (System.Data.SqlClient.SqlConnectionStringBuilder)builder, "Data Source={0};Initial Catalog={1};User ID={2};Password={3};Integrated Security=False;"));
        }
示例#15
0
 public object GetLogConnection(MapDataSet.durados_AppRow appRow, object builder)
 {
     return(GetSystemConnection(appRow, builder));// +";MultipleActiveResultSets=True;Asynchronous Processing=true;";
 }
示例#16
0
        public object GetConnection(MapDataSet.durados_AppRow appRow, object builder)
        {
            int dataSourceTypeId = appRow.DataSourceTypeId;

            return(GetConnection(appRow.durados_SqlConnectionRowByFK_durados_App_durados_SqlConnection, dataSourceTypeId, builder));
        }