public void BulkInsert_UnitTest()
        {
            string        connStr   = "server=192.168.110.234;Port=3306;database=GRPDB_POOL6;uid=admin;pwd=admin;procedure cache size=150;max pool size=150;allow zero datetime=true;connect timeout=3;";
            MysqlDatabase target    = new MysqlDatabase(connStr);
            string        tableName = "GRP_User_Migration";
            string        spName    = "USP_UMS_GetGRPDBAllByUserId";

            string[] spParams = { "@UserId" };
            object[] spValues = { "200034747" };
            DataSet  ds       = target.SpExecuteDataSet(spName, spParams, spValues);

            DataTable table = ds.Tables[0];

            string[] colNames    = { "UserId", "GroupListVersion", "SvcId" };
            bool     isException = false;

            try
            {
                target.BulkInsert(tableName, table, colNames);
            }
            catch (Exception ex)
            {
                isException = true;
                Assert.Inconclusive(ex.Message);
            }
            Assert.AreEqual(isException, false);
        }
Beispiel #2
0
        public static List <string> GetOrphanedGit(Config config, TeknikEntities db)
        {
            List <string> foundGit = new List <string>();

            if (config.GitConfig.Enabled)
            {
                List <User> curUsers = db.Users.ToList();

                // We need to check the actual git database
                MysqlDatabase mySQL   = new MysqlDatabase(config.GitConfig.Database.Server, config.GitConfig.Database.Database, config.GitConfig.Database.Username, config.GitConfig.Database.Password, config.GitConfig.Database.Port);
                string        sql     = @"SELECT gogs.user.login_name AS login_name, gogs.user.lower_name AS username FROM gogs.user";
                var           results = mySQL.Query(sql);

                if (results != null && results.Any())
                {
                    foreach (var account in results)
                    {
                        bool userExists = curUsers.Exists(u => UserHelper.GetUserEmailAddress(config, u.Username).ToLower() == account["login_name"].ToString().ToLower());
                        bool isReserved = UserHelper.GetReservedUsernames(config).Exists(r => UserHelper.GetUserEmailAddress(config, r) == account["login_name"].ToString().ToLower());
                        if (!userExists && !isReserved)
                        {
                            foundGit.Add(account["username"].ToString());
                        }
                    }
                }
            }
            return(foundGit);
        }
Beispiel #3
0
        /// <summary>
        /// Проверить имеет ли текущий пользователь права на данный шаблон
        /// </summary>
        /// <param name="templateID">ID шаблона</param>
        /// <returns>Результат проверки</returns>
        public bool CheckRights(int templateID)
        {
            //Инициализируем базу данных
            MysqlDatabase database = new MysqlDatabase(WebConfigurationManager.AppSettings["ConnectionString"]);

            return(database.CheckRights(templateID, this._UserId));
        }
Beispiel #4
0
        public ActionResult List()
        {
            //Инициализируем базу данных
            MysqlDatabase database = new MysqlDatabase(WebConfigurationManager.AppSettings["ConnectionString"]);

            //Получаем список шаблонов для текущего пользователя
            Template[] templates = database.GetTemplates(((User)Session["User"]).UserId);
            //Рендерим
            String data = Render.RenderView(this, "List", templates);

            //Отправляем ответ
            return(Json(new { result = true, data = data }, JsonRequestBehavior.AllowGet));
        }
Beispiel #5
0
 private void PushResults(List <string[]> results)
 {
     for (int i = 1; i < results.Count; i++)
     {
         MysqlDatabase database    = new MysqlDatabase(Properties.Settings.Default.ConnectionString);
         string        accumulator = "{" + '\n';
         for (int j = 0; j < results[0].Length; j++)
         {
             accumulator += results[0][j] + ": \"" + results[i][j] + (j == results[0].Length - 1 ? "\"" : "\",") + '\n';
         }
         accumulator += "}";
         database.AddNewResult(this._TemplateID, "new", accumulator);
     }
 }
Beispiel #6
0
        static void Main(string[] args)
        {
            if (args.Count() == 1)
            {
                MysqlDatabase database = new MysqlDatabase(Properties.Settings.Default.ConnectionString);
                int           taskID;

                if (Int32.TryParse(args[0], out taskID))
                {
                    Task newtask = database.GetTaskInfo(taskID);
                    database.Close();
                    database = null;
                    newtask.StartCrawling();
                }
            }
        }
Beispiel #7
0
        /// <summary>
        /// Удалить шаблон
        /// </summary>
        /// <param name="templateID">ID шаблона</param>
        /// <returns>Успешно ли удаление</returns>
        public static bool DeleteTemplate(int templateID)
        {
            //Удаляем данные шаблона
            string filePath = WebConfigurationManager.AppSettings["TemplateFolder"] + "\\" + templateID + ".xml";

            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            //Инициализируем базу данных
            MysqlDatabase database = new MysqlDatabase(WebConfigurationManager.AppSettings["ConnectionString"]);

            bool result = database.DeleteTemplate(templateID);

            //Возвращаем результат
            return(result);
        }
        public void GetDatabaseName_UnitTest()
        {
            string        connStr      = "server=192.168.110.234;Port=3306;database=GRPDB_POOL6;uid=admin;pwd=admin;procedure cache size=150;max pool size=150;allow zero datetime=true;connect timeout=3;";
            MysqlDatabase target       = new MysqlDatabase(connStr);
            string        databaseName = null;
            bool          isException  = false;

            try
            {
                databaseName = target.GetDatabaseName();;
            }
            catch (Exception ex)
            {
                isException = true;
                Assert.Inconclusive(ex.Message);
            }
            Assert.AreEqual(isException, false);
            Assert.AreNotEqual(databaseName, null);
        }
Beispiel #9
0
        /// <summary>
        /// Создать новый шаблон, вернуть свежесозданную сущность
        /// </summary>
        /// <param name="ownerId">ID пользователя, создающего шаблон</param>
        /// <param name="name">Имя шаблона</param>
        /// <param name="website">Вебсайт к которому применяется шаблон</param>
        /// <param name="templateData">Исходник шаблона</param>
        public static Template CreateTemplate(int ownerId, string name, string website, string templateData)
        {
            //Инициализируем базу данных
            MysqlDatabase database = new MysqlDatabase(WebConfigurationManager.AppSettings["ConnectionString"]);

            //Создаём шаблон в базе данных
            Template result = database.CreateNewTemplate(ownerId, name, "http://" + website);

            //Если есть чего записывать в шаблон, записываем
            if (templateData != null)
            {
                FileInfo template = new FileInfo(WebConfigurationManager.AppSettings["TemplateFolder"] + "\\" + result.Id + ".xml");
                using (StreamWriter writer = template.CreateText()) {
                    writer.Write(templateData);
                }
            }

            return(result);
        }
Beispiel #10
0
        /// <summary>
        /// Функция авторизации пользователя
        /// При успешной проверке пароля, авторизирует пользователя в системе
        /// </summary>
        /// <param name="password">Пароль пользователя</param>
        /// <returns>Результат авторизации</returns>
        public bool Authorize(String password)
        {
            if (this._AuthState)
            {
                return(true);
            }

            MysqlDatabase   database = new MysqlDatabase(WebConfigurationManager.AppSettings["ConnectionString"]);
            List <Object[]> result   = database.GetUserByCredentials(this.Email, password);

            if (result.Count != 1)
            {
                return(false);
            }

            this._UserId      = (int)result[0][0];
            this._WorkGroupId = (int)result[0][3];
            this._AuthState   = true;

            return(true);
        }
Beispiel #11
0
        public static List <string> GetInactiveAccounts(Config config, TeknikEntities db, int maxDays)
        {
            List <string> foundUsers = new List <string>();
            List <User>   curUsers   = db.Users.ToList();

            foreach (User user in curUsers)
            {
                // If the username is reserved, don't worry about it
                if (UserHelper.UsernameReserved(config, user.Username) || user.Username == Constants.SERVERUSER)
                {
                    continue;
                }

                // If they are Premium, don't worry about it either
                if (user.AccountType == AccountType.Premium && user.AccountStatus != AccountStatus.Banned)
                {
                    continue;
                }

                #region Inactivity Finding
                DateTime lastActivity = DateTime.Now;
                try
                {
                    lastActivity = UserHelper.GetLastAccountActivity(db, config, user);
                }
                catch
                {
                    continue;
                }

                TimeSpan inactiveTime = DateTime.Now.Subtract(lastActivity);

                // If older than max days, check their current usage
                if (inactiveTime >= new TimeSpan(maxDays, 0, 0, 0, 0))
                {
                    // Check the user's usage of the service.
                    bool noData = true;

                    // Any blog comments?
                    var blogCom = db.BlogComments.Where(c => c.UserId == user.UserId);
                    noData &= !(blogCom != null && blogCom.Any());

                    // Any blog posts?
                    var blogPosts = db.BlogPosts.Where(p => p.Blog.UserId == user.UserId);
                    noData &= !(blogPosts != null && blogPosts.Any());

                    // Any podcast comments?
                    var podCom = db.PodcastComments.Where(p => p.UserId == user.UserId);
                    noData &= !(podCom != null && podCom.Any());

                    // Any email?
                    if (config.EmailConfig.Enabled && UserHelper.UserEmailExists(config, UserHelper.GetUserEmailAddress(config, user.Username)))
                    {
                        var app = new hMailServer.Application();
                        app.Connect();
                        app.Authenticate(config.EmailConfig.Username, config.EmailConfig.Password);

                        try
                        {
                            var domain  = app.Domains.ItemByName[config.EmailConfig.Domain];
                            var account = domain.Accounts.ItemByAddress[UserHelper.GetUserEmailAddress(config, user.Username)];
                            noData &= ((account.Messages.Count == 0) && ((int)account.Size == 0));
                        }
                        catch { }
                    }

                    // Any git repos?
                    if (config.GitConfig.Enabled && UserHelper.UserGitExists(config, user.Username))
                    {
                        string email = UserHelper.GetUserEmailAddress(config, user.Username);
                        // We need to check the actual git database
                        MysqlDatabase mySQL   = new MysqlDatabase(config.GitConfig.Database.Server, config.GitConfig.Database.Database, config.GitConfig.Database.Username, config.GitConfig.Database.Password, config.GitConfig.Database.Port);
                        string        sql     = @"SELECT * FROM gogs.repository
                                        LEFT JOIN gogs.action ON gogs.user.id = gogs.action.act_user_id
                                        WHERE gogs.user.login_name = {0}";
                        var           results = mySQL.Query(sql, new object[] { email });

                        noData &= !(results != null && results.Any());
                    }

                    if (noData)
                    {
                        // They have no data, so safe to delete them.
                        foundUsers.Add(user.Username);
                    }
                    continue;
                }
                #endregion
            }
            return(foundUsers);
        }