public IEnumerable <RedirectManagerModel> GetAll(string term, int page, int pageSize)
        {
            var sql = $"SELECT * FROM RedirectManager WHERE OldUrl like '%{term}%' ORDER BY id OFFSET {(page - 1) * pageSize} ROWS FETCH NEXT {pageSize} ROWS ONLY;";

            Logger.Debug($"Start GetAll({term}, {page}, {pageSize})");
            Logger.Debug($"SQL: {sql}");

            return(SqlUtil.ExecuteQueryReader(sql, RedirectManagerModel.LoadFromRecord));
        }
        public RedirectManagerModel GetById(int id)
        {
            var sql = $"SELECT * FROM RedirectManager WHERE id = {id}";

            Logger.Debug("Start GetById()");
            Logger.Debug($"SQL: {sql}");

            return(SqlUtil.ExecuteQueryReader(sql, RedirectManagerModel.LoadFromRecord).FirstOrDefault());
        }
        public IEnumerable <RedirectManagerModel> GetAll()
        {
            var sql = "SELECT * FROM RedirectManager";

            Logger.Debug("Start GetAll()");
            Logger.Debug($"SQL: {sql}");

            return(SqlUtil.ExecuteQueryReader(sql, RedirectManagerModel.LoadFromRecord));
        }
        public RedirectManagerModel Get(string oldUrl)
        {
            Logger.Debug($"Start Get({oldUrl})");

            if (string.IsNullOrEmpty(oldUrl))
            {
                Logger.Debug("oldUrl is invalid.");
                return(null);
            }

            var sql = $"SELECT * FROM RedirectManager WHERE '{oldUrl}' like '%' + OldUrl + '%' " +
                      $"ORDER BY CASE WHEN OldUrl = '{oldUrl}' THEN 0 ELSE 1 END";

            Logger.Debug($"SQL: {sql}");

            return(SqlUtil.ExecuteQueryReader(sql, RedirectManagerModel.LoadFromRecord).FirstOrDefault());
        }