示例#1
0
        public static Record CreateFromDataReader(IRecordsReader reader)
        {
            Record record = Create();

            record.Id            = reader.GetGuid("Id");
            record.Form          = reader.GetGuid("Form");
            record.Created       = reader.GetDateTime("Created");
            record.Updated       = reader.GetDateTime("Updated");
            record.State         = reader.GetInt("State");
            record.currentPage   = reader.GetGuid("currentPage");
            record.umbracoPageId = reader.GetInt("umbracoPageId");
            record.IP            = reader.GetString("IP");
            record.MemberKey     = reader.GetString("MemberKey");
            return(record);
        }
示例#2
0
        protected void PopulateMediaFromReader(IRecordsReader dr)
        {
            bool _hc = false;

            if (dr.GetInt("children") > 0)
            {
                _hc = true;
            }
            int?masterContentType = null;

            if (!dr.IsNull("masterContentType"))
            {
                masterContentType = dr.GetInt("masterContentType");
            }
            SetupMediaForTree(dr.GetGuid("uniqueId")
                              , dr.GetShort("level")
                              , dr.GetInt("parentId")
                              , dr.GetInt("nodeUser")
                              , dr.GetString("path")
                              , dr.GetString("text")
                              , dr.GetDateTime("createDate")
                              , dr.GetString("icon")
                              , _hc
                              , dr.GetString("alias")
                              , dr.GetString("thumbnail")
                              , dr.GetString("description")
                              , masterContentType
                              , dr.GetInt("contentTypeId"));
        }
        public List <object> GetRecordFieldValues(RecordField rf)
        {
            string        sql = string.Format("SELECT * FROM UFRecordData{0} where [Key] = @key ORDER BY Id ASC", rf.DataTypeAlias);
            List <object> l   = new List <object>();

            IRecordsReader rr = sqlHelper.ExecuteReader(sql, sqlHelper.CreateParameter("@key", rf.Key));

            while (rr.Read())
            {
                switch (rf.DataType)
                {
                case FieldDataType.String:
                case FieldDataType.LongString:
                    l.Add(rr.GetString("Value"));
                    break;

                case FieldDataType.Integer:
                    l.Add(rr.GetInt("Value"));
                    break;

                case FieldDataType.DateTime:
                    l.Add(rr.GetDateTime("Value"));
                    break;

                case FieldDataType.Bit:
                    l.Add(rr.GetBoolean("Value"));
                    break;
                }
            }

            rr.Dispose();

            return(l);
        }
示例#4
0
        //public CmsNode GetNodeById(Guid uniqueId)
        //{
        //    CmsNode cmsNode;
        //    var id = SqlHelper.ExecuteScalar<int>("SELECT id FROM umbracoNode WHERE uniqueID = @uniqueId", SqlHelper.CreateParameter("@uniqueId", uniqueId));
        //    using (IRecordsReader dr = SqlHelper.ExecuteReader(m_SQLSingle,
        //            SqlHelper.CreateParameter("@id", id)))
        //    {
        //        if (dr.Read() || dr.IsNull("uniqueID"))
        //        {
        //            cmsNode = new CmsNode
        //                {
        //                    UniqueId = dr.GetGuid("uniqueID"),
        //                    NodeObjectType = dr.GetGuid("nodeObjectType"),
        //                    ContentTypeId = dr.GetInt("contentTypeId"),
        //                    Level = dr.GetShort("level"),
        //                    Path = dr.GetString("path"),
        //                    ParentId = dr.GetInt("parentId"),
        //                    Text = dr.GetString("text"),
        //                    SortOrder = dr.GetInt("sortOrder"),
        //                    UserId = dr.GetInt("nodeUser"),
        //                    CreateDate = dr.GetDateTime("createDate"),
        //                    IsTrashed = dr.GetBoolean("trashed")
        //                };
        //        }
        //        else
        //        {
        //            throw new ArgumentException(string.Format("No node exists with id '{0}' ({1})", id, uniqueId));
        //        }
        //    }

        //    return cmsNode;
        //}

        public IEnumerable <T> GetNodesByIds <T>(Guid[] uniqueIds) where T : CmsNode, new()
        {
            var cmsNodes = new List <T>();

            // TODO: parameterize this the "right" way to prevent future sql injection
            var strUIds = string.Format("'{0}'", string.Join("','", uniqueIds));

            var ids = new List <int>();

            using (IRecordsReader reader = SqlHelper.ExecuteReader(string.Format("SELECT id FROM umbracoNode WHERE uniqueID in ({0})", strUIds)))
            {
                while (reader.Read())
                {
                    ids.Add(reader.GetInt("id"));
                }
            }

            var strIds = string.Join(",", ids);

            using (IRecordsReader dr = SqlHelper.ExecuteReader(string.Format(m_SQMultiple, strIds)))
            {
                while (dr.Read())
                {
                    cmsNodes.Add(new T
                    {
                        UniqueId       = dr.GetGuid("uniqueID"),
                        NodeObjectType = dr.GetGuid("nodeObjectType"),
                        ContentTypeId  = dr.GetInt("contentTypeId"),
                        Level          = dr.GetShort("level"),
                        Path           = dr.GetString("path"),
                        ParentId       = dr.GetInt("parentId"),
                        Text           = dr.GetString("text"),
                        SortOrder      = dr.GetInt("sortOrder"),
                        UserId         = dr.GetInt("nodeUser"),
                        CreateDate     = dr.GetDateTime("createDate"),
                        IsTrashed      = dr.GetBoolean("trashed")
                    });
                }
            }

            if (typeof(T) == typeof(DocType))
            {
                // Fill out property data
                foreach (var node in cmsNodes)
                {
                    var docType = node as DocType;
                    if (docType != null)
                    {
                        docType.Properties = GetPropertyTypes(node).ToList();
                    }
                }
            }

            return(cmsNodes);
        }
示例#5
0
文件: Task.cs 项目: SKDon/Triphulcas
 private void PopulateTaskFromReader(IRecordsReader dr)
 {
     _id        = dr.GetInt("id");
     Type       = new TaskType((int)dr.GetByte("taskTypeId"));
     Node       = new CMSNode(dr.GetInt("nodeId"));
     ParentUser = User.GetUser(dr.GetInt("parentUserId"));
     User       = User.GetUser(dr.GetInt("userId"));
     Date       = dr.GetDateTime("DateTime");
     Comment    = dr.GetString("comment");
     Closed     = dr.GetBoolean("closed");
 }
示例#6
0
        public static List <LogItem> ConvertIRecordsReader(IRecordsReader reader)
        {
            var items = new List <LogItem>();

            while (reader.Read())
            {
                items.Add(new LogItem(
                              reader.GetInt("userId"),
                              reader.GetInt("nodeId"),
                              reader.GetDateTime("DateStamp"),
                              ConvertLogHeader(reader.GetString("logHeader")),
                              reader.GetString("logComment")));
            }

            return(items);
        }
        public static Form CreateFromDataReader(IRecordsReader reader)
        {
            Form form = Create();

            form.Id               = reader.GetGuid("id");
            form.Pages            = new List <Page>();
            form.Name             = reader.GetString("name");
            form.Created          = reader.GetDateTime("created");
            form.MessageOnSubmit  = reader.GetString("MessageOnSubmit");
            form.GoToPageOnSubmit = reader.GetInt("GotoPageOnSubmit");

            form.ShowValidationSummary = reader.GetBoolean("ShowValidationSummary");

            form.HideFieldValidation  = reader.GetBoolean("HideFieldValidation");
            form.RequiredErrorMessage = reader.GetString("RequiredErrorMessage");
            form.InvalidErrorMessage  = reader.GetString("InvalidErrorMessage");
            form.ManualApproval       = reader.GetBoolean("ManualApproval");
            form.Archived             = reader.GetBoolean("Archived");
            form.StoreRecordsLocally  = reader.GetBoolean("StoreRecordsLocally");

            if (!reader.IsNull("DataSource"))
            {
                form.DataSource = reader.GetGuid("DataSource");
            }

            if (!reader.IsNull("FieldIndicationType"))
            {
                form.FieldIndicationType = (FormFieldIndication)System.Enum.Parse(typeof(FormFieldIndication), reader.GetInt("FieldIndicationType").ToString());
                form.Indicator           = reader.GetString("Indicator");
            }

            if (!reader.IsNull("DisableDefaultStylesheet"))
            {
                form.DisableDefaultStylesheet = reader.GetBoolean("DisableDefaultStylesheet");
            }

            //check for xpath setting
            //Umbraco.Forms.Migration.Data.Storage.SettingsStorage ss = new Umbraco.Forms.Migration.Data.Storage.SettingsStorage();

            //string set = ss.GetSetting(form.Id, "XPathOnSubmit");
            //if (!string.IsNullOrEmpty(set))
            //    form.XPathOnSubmit = set;

            //ss.Dispose();

            return(form);
        }
示例#8
0
        public static List <Subscribtion> Subscribers(int topicId)
        {
            List <Subscribtion> l  = new List <Subscribtion>();
            IRecordsReader      rr = Data.SqlHelper.ExecuteReader("SELECT * from forumTopicSubscribers where topicid = @topicId",
                                                                  Data.SqlHelper.CreateParameter("@topicId", topicId));

            while (rr.Read())
            {
                Subscribtion s = new Subscribtion();
                s.MemberId = rr.GetInt("memberId");
                s.TopicId  = rr.GetInt("topicId");
                s.Date     = rr.GetDateTime("date");
                l.Add(s);
            }

            return(l);
        }
示例#9
0
 public Relation(int Id)
 {
     using (IRecordsReader dr = SqlHelper.ExecuteReader("select * from umbracoRelation where id = @id", SqlHelper.CreateParameter("@id", Id)))
     {
         if (dr.Read())
         {
             this._id         = dr.GetInt("id");
             this._parentNode = new CMSNode(dr.GetInt("parentId"));
             this._childNode  = new CMSNode(dr.GetInt("childId"));
             this._relType    = RelationType.GetById(dr.GetInt("relType"));
             this._comment    = dr.GetString("comment");
             this._datetime   = dr.GetDateTime("datetime");
         }
         else
         {
             throw new ArgumentException("No relation found for id " + Id.ToString());
         }
     }
 }
示例#10
0
文件: Media.cs 项目: jraghu24/Rraghu
        protected void PopulateMediaFromReader(IRecordsReader dr)
        {
            var hc = dr.GetInt("children") > 0;

            SetupMediaForTree(dr.GetGuid("uniqueId")
                              , dr.GetShort("level")
                              , dr.GetInt("parentId")
                              , dr.GetInt("nodeUser")
                              , dr.GetString("path")
                              , dr.GetString("text")
                              , dr.GetDateTime("createDate")
                              , dr.GetString("icon")
                              , hc
                              , dr.GetString("alias")
                              , dr.GetString("thumbnail")
                              , dr.GetString("description")
                              , null
                              , dr.GetInt("contentTypeId")
                              , dr.GetBoolean("isContainer"));
        }
示例#11
0
        private void Initialize(int id)
        {
            IRecordsReader dr =
                SqlHelper.ExecuteReader(
                    "select id, uninstalled, upgradeId, installDate, userId, package, versionMajor, versionMinor, versionPatch from umbracoInstalledPackages where id = @id",
                    SqlHelper.CreateParameter("@id", id));

            if (dr.Read())
            {
                Id           = id;
                Uninstalled  = dr.GetBoolean("uninstalled");
                UpgradeId    = dr.GetInt("upgradeId");
                InstallDate  = dr.GetDateTime("installDate");
                User         = User.GetUser(dr.GetInt("userId"));
                PackageId    = dr.GetGuid("package");
                VersionMajor = dr.GetInt("versionMajor");
                VersionMinor = dr.GetInt("versionMinor");
                VersionPatch = dr.GetInt("versionPatch");
            }
            dr.Close();
        }
示例#12
0
        protected void PopulateCMSNodeFromReader(IRecordsReader dr)
        {
            // testing purposes only > original umbraco data hasn't any unique values ;)
            // And we need to have a newParent in order to create a new node ..
            // Should automatically add an unique value if no exists (or throw a decent exception)
            if (dr.IsNull("uniqueID"))
            {
                _uniqueID = Guid.NewGuid();
            }
            else
            {
                _uniqueID = dr.GetGuid("uniqueID");
            }

            _nodeObjectType = dr.GetGuid("nodeObjectType");
            _level          = dr.GetShort("level");
            _path           = dr.GetString("path");
            _parentid       = dr.GetInt("parentId");
            _text           = dr.GetString("text");
            _sortOrder      = dr.GetInt("sortOrder");
            _userId         = dr.GetInt("nodeUser");
            _createDate     = dr.GetDateTime("createDate");
            _isTrashed      = dr.GetBoolean("trashed");
        }
        /// <summary>
        /// This function shows all version history for each current node
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvCurVer_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            // Set Text for no versions to show
            if (e.Row.RowType.Equals(DataControlRowType.EmptyDataRow))
            {
                Label lblNoVersionsToShow = (Label)e.Row.FindControl("lblNoVersionsToShow");
                lblNoVersionsToShow.Text = getDictionaryItem("versions_Label_NoLogsToShow") + " '" + dtpckrDateFrom.DateTime.ToShortDateString() + "'";
            }

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Label   lblNodeId   = (Label)e.Row.FindControl("lblNodeId");
                Literal ltrlHistVer = (Literal)e.Row.FindControl("ltrlHistVer");

                using (IRecordsReader dr = SqlHelper.ExecuteReader(GetSQLHistoryVersions(), SqlHelper.CreateParameter("@nodeId", int.Parse(lblNodeId.Text))))
                {
                    while (dr.Read())
                    {
                        ltrlHistVer.Text += dr.GetString("text") + " <small>(Created: " + dr.GetDateTime("updateDate").ToShortDateString() + " " + dr.GetDateTime("updateDate").ToShortTimeString() + ") ";
                        if (dr.GetBoolean("published"))
                        {
                            ltrlHistVer.Text += "(<span style='color: green;'>published</span>)";
                        }

                        if (dr.GetBoolean("newest"))
                        {
                            ltrlHistVer.Text += "(<span style='color: navy;'>newest</span>)";
                        }

                        ltrlHistVer.Text += "</small><br />";
                    }
                }
            }
        }
示例#14
0
        protected void PopulateDocumentFromReader(IRecordsReader dr)
        {
            bool _hc = false;

            if (dr.GetInt("children") > 0)
                _hc = true;

            int? masterContentType = null;

            if (!dr.IsNull("masterContentType"))
                masterContentType = dr.GetInt("masterContentType");

            SetupDocumentForTree(dr.GetGuid("uniqueId")
                , dr.GetShort("level")
                , dr.GetInt("parentId")
                , dr.GetInt("nodeUser")
                , dr.GetInt("documentUser")
                , (dr.GetInt("isPublished") == 1)
                , dr.GetString("path")
                , dr.GetString("text")
                , dr.GetDateTime("createDate")
                , dr.GetDateTime("updateDate")
                , dr.GetDateTime("versionDate")
                , dr.GetString("icon")
                , _hc
                , dr.GetString("alias")
                , dr.GetString("thumbnail")
                , dr.GetString("description")
                , masterContentType
                , dr.GetInt("contentTypeId")
                , dr.GetInt("templateId"));
        }
示例#15
0
        /// <summary>
        /// Get Logs
        /// </summary>
        /// <param name="ColumnOrder"></param>
        protected void GetLogs(string ColumnOrder)
        {
            sqlReadLog  = "SELECT umbracoLog.userId, umbracoUser.userName, umbracoUser.userLogin, umbracoLog.NodeId, umbracoNode.text AS nodeName, umbracoLog.DateStamp, umbracoLog.logHeader, umbracoLog.logComment ";
            sqlReadLog += "FROM umbracoLog INNER JOIN umbracoUser ON umbracoLog.userId = umbracoUser.id LEFT OUTER JOIN umbracoNode ON umbracoLog.NodeId = umbracoNode.id ";
            sqlReadLog += "WHERE (";

            if ((dtpckrDateFrom.Text.Equals(string.Empty)) && (dtpckrDateTo.Text.Equals(string.Empty)))
            {
                dtpckrDateFrom.DateTime = DateTime.Now.Subtract(new TimeSpan(iLastDays, 0, 0, 0));
                dtpckrDateTo.DateTime   = DateTime.Now.Subtract(new TimeSpan(0, 0, 0, 0));

                sqlReadLog += "umbracoLog.DateStamp >= CONVERT(DATETIME, '" + dtpckrDateFrom.DateTime.ToString("yyyy.MM.dd") + " 00:00:00', 102) AND umbracoLog.DateStamp <= CONVERT(DATETIME, '" + dtpckrDateTo.DateTime.ToString("yyyy.MM.dd") + " 23:59:00', 102) ";
            }
            else if ((dtpckrDateFrom.Text.Equals(string.Empty)) && (!dtpckrDateTo.Text.Equals(string.Empty)))
            {
                sqlReadLog += "umbracoLog.DateStamp <= CONVERT(DATETIME, '" + dtpckrDateTo.DateTime.ToString("yyyy.MM.dd") + " 23:59:00', 102) ";
            }
            else if ((!dtpckrDateFrom.Text.Equals(string.Empty)) && (dtpckrDateTo.Text.Equals(string.Empty)))
            {
                sqlReadLog += "umbracoLog.DateStamp >= CONVERT(DATETIME, '" + dtpckrDateFrom.DateTime.ToString("yyyy.MM.dd") + " 00:00:00', 102) ";
            }
            else if (dtpckrDateFrom.DateTime <= dtpckrDateTo.DateTime)
            {
                sqlReadLog += "umbracoLog.DateStamp >= CONVERT(DATETIME, '" + dtpckrDateFrom.DateTime.ToString("yyyy.MM.dd") + " 00:00:00', 102) AND umbracoLog.DateStamp <= CONVERT(DATETIME, '" + dtpckrDateTo.DateTime.ToString("yyyy.MM.dd") + " 23:59:00', 102) ";
            }
            else
            {
                string strDateFrom = dtpckrDateFrom.Text;
                string strDateTo   = dtpckrDateTo.Text;

                dtpckrDateFrom.DateTime = DateTime.Parse(strDateTo);
                dtpckrDateTo.DateTime   = DateTime.Parse(strDateFrom);

                sqlReadLog += "umbracoLog.DateStamp >= CONVERT(DATETIME, '" + dtpckrDateFrom.DateTime.ToString("yyyy.MM.dd") + " 00:00:00', 102) AND umbracoLog.DateStamp <= CONVERT(DATETIME, '" + dtpckrDateTo.DateTime.ToString("yyyy.MM.dd") + " 23:59:00', 102) ";

                ltrlLogInfo.Text    = getDictionaryItem("logs_StartDateGreaterThanEndDate");
                ltrlLogInfo.Visible = true;
            }

            if (!txtbNodeID.Text.Equals(string.Empty))
            {
                sqlReadLog += "AND umbracoLog.NodeId = " + int.Parse(txtbNodeID.Text) + " ";
            }

            if (ddlLogTypes.SelectedValue.ToString() != "any")
            {
                sqlReadLog += "AND logHeader LIKE '" + ddlLogTypes.SelectedValue.ToString() + "' ";
            }

            if (ddlUsers.SelectedValue.ToString() != "any")
            {
                sqlReadLog += "AND UserId = " + ddlUsers.SelectedValue;
            }

            sqlReadLog += ") ORDER BY umbracoLog.DateStamp DESC";

            //Set up Cache Object and determine if it exists
            dgCache = (DataView)Cache.Get("dgCache");

            //Assign ColumnOrder to ViewState
            ViewState["SortOrder"] = ColumnOrder;

            if (dgCache == null)
            {
                //Create DataTable
                DataTable  DataReaderTable = new DataTable();
                DataColumn dc1             = new DataColumn("UserName", typeof(string));
                DataColumn dc2             = new DataColumn("NodeId", typeof(int));
                DataColumn dc3             = new DataColumn("NodeName", typeof(string));
                DataColumn dc4             = new DataColumn("DateStamp", typeof(DateTime));
                DataColumn dc5             = new DataColumn("logHeader", typeof(string));
                DataColumn dc6             = new DataColumn("logComment", typeof(string));

                DataReaderTable.Columns.Add(dc1);
                DataReaderTable.Columns.Add(dc2);
                DataReaderTable.Columns.Add(dc3);
                DataReaderTable.Columns.Add(dc4);
                DataReaderTable.Columns.Add(dc5);
                DataReaderTable.Columns.Add(dc6);

                //Loop through DataReader
                IRecordsReader irLogs = SqlHelper.ExecuteReader(sqlReadLog);

                while (irLogs.Read())
                {
                    //Set up DataRow object
                    DataRow dr = DataReaderTable.NewRow();

                    dr[0] = irLogs.GetString("userName");
                    dr[1] = irLogs.GetInt("NodeId");
                    dr[2] = irLogs.GetString("NodeName");
                    dr[3] = irLogs.GetDateTime("DateStamp");
                    dr[4] = irLogs.GetString("logHeader");
                    dr[5] = irLogs.GetString("logComment");

                    //Add rows to existing DataTable
                    DataReaderTable.Rows.Add(dr);
                }

                //Create DataView to support our column sorting
                DataView Source = DataReaderTable.DefaultView;

                //Assign column sort order for DataView
                Source.Sort = ColumnOrder;

                //Insert DataTable into Cache object
                Cache.Insert("dgCache", Source);

                //Bind DataGrid from DataView
                gvLogTypesList.DataSource = Source;
            }
            else
            {
                //Assign Cached DataView new sort order
                dgCache.Sort = ViewState["SortOrder"].ToString();

                //Bind DataGrid from Cached DataView
                gvLogTypesList.DataSource = dgCache;
            }

            gvLogTypesList.Style.Add("width", "100%");
            gvLogTypesList.DataBind();
        }
示例#16
0
        public static List<LogItem> ConvertIRecordsReader(IRecordsReader reader)
        {
            var items = new List<LogItem>();
            while (reader.Read())
            {
                items.Add(new LogItem(
                    reader.GetInt("userId"),
                    reader.GetInt("nodeId"),
                    reader.GetDateTime("DateStamp"),
                    ConvertLogHeader(reader.GetString("logHeader")),
                    reader.GetString("logComment")));
            }

            return items;

        }
示例#17
0
        protected void PopulateMemberFromReader(IRecordsReader dr)
        {

            SetupNodeForTree(dr.GetGuid("uniqueId"),
                _objectType, dr.GetShort("level"),
                dr.GetInt("parentId"),
                dr.GetInt("nodeUser"),
                dr.GetString("path"),
                dr.GetString("text"),
                dr.GetDateTime("createDate"), false);

            if (!dr.IsNull("Email"))
                m_Email = dr.GetString("Email");
            m_LoginName = dr.GetString("LoginName");
            m_Password = dr.GetString("Password");

        }
示例#18
0
        public static List <UrlTrackerModel> GetUrlTrackerEntries(int?maximumRows, int?startRowIndex, string sortExpression = "", bool _404 = false, bool include410Gone = false, bool showAutoEntries = true, bool showCustomEntries = true, bool showRegexEntries = true, string keyword = "", bool onlyForcedRedirects = false)
        {
            List <UrlTrackerModel> urlTrackerEntries = new List <UrlTrackerModel>();
            int intKeyword = 0;

            string query = "SELECT * FROM icUrlTracker WHERE Is404 = @is404 AND RedirectHttpCode != @redirectHttpCode";

            if (onlyForcedRedirects)
            {
                query = string.Concat(query, " AND ForceRedirect = 1");
            }

            if (!string.IsNullOrEmpty(keyword))
            {
                query = string.Concat(query, " AND (OldUrl LIKE @keyword OR OldUrlQueryString LIKE @keyword OR OldRegex LIKE @keyword OR RedirectUrl LIKE @keyword OR Notes LIKE @keyword");
                if (int.TryParse(keyword, out intKeyword))
                {
                    query = string.Concat(query, " OR RedirectNodeId = @intKeyword");
                }
                query = string.Concat(query, ")");
            }
            List <IParameter> parameters = new List <IParameter>
            {
                _sqlHelper.CreateParameter("is404", _404 ? 1 : 0),
                _sqlHelper.CreateParameter("redirectHttpCode", include410Gone ? 0 : 410)
            };

            if (!string.IsNullOrEmpty(keyword))
            {
                parameters.Add(_sqlHelper.CreateParameter("keyword", "%" + keyword + "%"));
            }
            if (intKeyword != 0)
            {
                parameters.Add(_sqlHelper.CreateParameter("intKeyword", intKeyword));
            }
            using (IRecordsReader reader = _sqlHelper.ExecuteReader(query, parameters.ToArray()))
            {
                while (reader.Read())
                {
                    urlTrackerEntries.Add(new UrlTrackerModel(reader.GetInt("Id"), reader.GetString("OldUrl"), reader.GetString("OldUrlQueryString"), reader.GetString("OldRegex"), reader.GetInt("RedirectRootNodeId"), reader.Get <int?>("RedirectNodeId"), reader.GetString("RedirectUrl"), reader.GetInt("RedirectHttpCode"), reader.GetBoolean("RedirectPassThroughQueryString"), reader.GetBoolean("ForceRedirect"), reader.GetString("Notes"), reader.GetBoolean("Is404"), reader.GetString("Referrer"), reader.GetDateTime("Inserted")));
                }
            }

            urlTrackerEntries = urlTrackerEntries.Where(x => x.RedirectNodeIsPublished).ToList();

            if (!showAutoEntries || !showCustomEntries || !showRegexEntries || !string.IsNullOrEmpty(keyword))
            {
                IEnumerable <UrlTrackerModel> filteredUrlTrackerEntries = urlTrackerEntries;
                if (!showAutoEntries)
                {
                    filteredUrlTrackerEntries = filteredUrlTrackerEntries.Where(x => x.ViewType != UrlTrackerViewTypes.Auto);
                }
                if (!showCustomEntries)
                {
                    filteredUrlTrackerEntries = filteredUrlTrackerEntries.Where(x => x.ViewType != UrlTrackerViewTypes.Custom || (showRegexEntries ? string.IsNullOrEmpty(x.OldUrl) : false));
                }
                if (!showRegexEntries)
                {
                    filteredUrlTrackerEntries = filteredUrlTrackerEntries.Where(x => !string.IsNullOrEmpty(x.OldUrl));
                }
                //if (!string.IsNullOrEmpty(keyword))
                //{
                //	filteredUrlTrackerEntries = filteredUrlTrackerEntries.Where(x =>
                //		(x.CalculatedOldUrl != null && x.CalculatedOldUrl.ToLower().Contains(keyword)) ||
                //		(x.CalculatedRedirectUrl != null && x.CalculatedRedirectUrl.ToLower().Contains(keyword)) ||
                //		(x.OldRegex != null && x.OldRegex.ToLower().Contains(keyword)) ||
                //		(x.Notes != null && x.Notes.ToLower().Contains(keyword))
                //	);
                //}
                urlTrackerEntries = filteredUrlTrackerEntries.ToList();
            }

            if (!string.IsNullOrEmpty(sortExpression))
            {
                string sortBy       = sortExpression;
                bool   isDescending = false;

                if (sortExpression.ToLowerInvariant().EndsWith(" desc"))
                {
                    sortBy       = sortExpression.Substring(0, sortExpression.Length - " desc".Length);
                    isDescending = true;
                }

                switch (sortBy)
                {
                case "RedirectRootNodeName":
                    urlTrackerEntries = (isDescending ? urlTrackerEntries.OrderByDescending(x => x.RedirectRootNodeName) : urlTrackerEntries.OrderBy(x => x.RedirectRootNodeName)).ToList();
                    break;

                case "CalculatedOldUrl":
                    urlTrackerEntries = (isDescending ? urlTrackerEntries.OrderByDescending(x => x.CalculatedOldUrl) : urlTrackerEntries.OrderBy(x => x.CalculatedOldUrl)).ToList();
                    break;

                case "CalculatedRedirectUrl":
                    urlTrackerEntries = (isDescending ? urlTrackerEntries.OrderByDescending(x => x.CalculatedRedirectUrl) : urlTrackerEntries.OrderBy(x => x.CalculatedRedirectUrl)).ToList();
                    break;

                case "RedirectHttpCode":
                    urlTrackerEntries = (isDescending ? urlTrackerEntries.OrderByDescending(x => x.RedirectHttpCode) : urlTrackerEntries.OrderBy(x => x.RedirectHttpCode)).ToList();
                    break;

                case "Referrer":
                    urlTrackerEntries = (isDescending ? urlTrackerEntries.OrderByDescending(x => x.Referrer) : urlTrackerEntries.OrderBy(x => x.Referrer)).ToList();
                    break;

                case "NotFoundCount":
                    urlTrackerEntries = (isDescending ? urlTrackerEntries.OrderByDescending(x => x.NotFoundCount) : urlTrackerEntries.OrderBy(x => x.NotFoundCount)).ToList();
                    break;

                case "Notes":
                    urlTrackerEntries = (isDescending ? urlTrackerEntries.OrderByDescending(x => x.Notes) : urlTrackerEntries.OrderBy(x => x.Notes)).ToList();
                    break;

                case "Inserted":
                    urlTrackerEntries = (isDescending ? urlTrackerEntries.OrderByDescending(x => x.Inserted) : urlTrackerEntries.OrderBy(x => x.Inserted)).ToList();
                    break;
                }
            }
            if (startRowIndex.HasValue)
            {
                urlTrackerEntries = urlTrackerEntries.Skip(startRowIndex.Value).ToList();
            }
            if (maximumRows.HasValue)
            {
                urlTrackerEntries = urlTrackerEntries.Take(maximumRows.Value).ToList();
            }

            return(urlTrackerEntries);
        }
示例#19
0
文件: Task.cs 项目: elrute/Triphulcas
 private void PopulateTaskFromReader(IRecordsReader dr)
 {
     _id = dr.GetInt("id");
     Type = new TaskType((int)dr.GetByte("taskTypeId"));
     Node = new CMSNode(dr.GetInt("nodeId"));
     ParentUser = User.GetUser(dr.GetInt("parentUserId"));
     User = User.GetUser(dr.GetInt("userId"));
     Date = dr.GetDateTime("DateTime");
     Comment = dr.GetString("comment");
     Closed = dr.GetBoolean("closed");
 } 
示例#20
0
        protected void PopulateMediaFromReader(IRecordsReader dr)
        {
            var hc = dr.GetInt("children") > 0;

            SetupMediaForTree(dr.GetGuid("uniqueId")
                , dr.GetShort("level")
                , dr.GetInt("parentId")
                , dr.GetInt("nodeUser")
                , dr.GetString("path")
                , dr.GetString("text")
                , dr.GetDateTime("createDate")
                , dr.GetString("icon")
                , hc
                , dr.GetString("alias")
                , dr.GetString("thumbnail")
                , dr.GetString("description")
                , null
                , dr.GetInt("contentTypeId")
                , dr.GetBoolean("isContainer"));
        } 
示例#21
0
        public static UrlTrackerModel GetUrlTrackerEntryById(int id)
        {
            string query = "SELECT * FROM icUrlTracker WHERE Id = @id";

            using (IRecordsReader reader = _sqlHelper.ExecuteReader(query, _sqlHelper.CreateParameter("id", id)))
            {
                if (reader.Read())
                {
                    return(new UrlTrackerModel(reader.GetInt("Id"), reader.GetString("OldUrl"), reader.GetString("OldUrlQueryString"), reader.GetString("OldRegex"), reader.GetInt("RedirectRootNodeId"), reader.Get <int?>("RedirectNodeId"), reader.GetString("RedirectUrl"), reader.GetInt("RedirectHttpCode"), reader.GetBoolean("RedirectPassThroughQueryString"), reader.GetBoolean("ForceRedirect"), reader.GetString("Notes"), reader.GetBoolean("Is404"), reader.GetString("Referrer"), reader.GetDateTime("Inserted")));
                }
            }
            return(null);
        }
示例#22
0
        protected void PopulateDocumentFromReader(IRecordsReader dr)
        {
            var hc = dr.GetInt("children") > 0;

            SetupDocumentForTree(dr.GetGuid("uniqueId")
                , dr.GetShort("level")
                , dr.GetInt("parentId")
                , dr.GetInt("nodeUser")
                , dr.GetInt("documentUser")
                , !dr.GetBoolean("trashed") && (dr.GetInt("isPublished") == 1) //set published... double check trashed property
                , dr.GetString("path")
                , dr.GetString("text")
                , dr.GetDateTime("createDate")
                , dr.GetDateTime("updateDate")
                , dr.GetDateTime("versionDate")
                , dr.GetString("icon")
                , hc
                , dr.GetString("alias")
                , dr.GetString("thumbnail")
                , dr.GetString("description")
                     , null
                , dr.GetInt("contentTypeId")
                     , dr.GetInt("templateId")
                     , dr.GetBoolean("isContainer"));

            if (!dr.IsNull("releaseDate"))
                _release = dr.GetDateTime("releaseDate");
            if (!dr.IsNull("expireDate"))
                _expire = dr.GetDateTime("expireDate");
        }
示例#23
0
        public static int MigrateData()
        {
            if (!GetUrlTrackerTableExists())
            {
                throw new Exception("Url Tracker table not found.");
            }
            if (!GetUrlTrackeOldTableExists())
            {
                throw new Exception("Old Url Tracker table not found.");
            }

            int newUrlTrackerEntriesCount = 0;
            List <OldUrlTrackerModel> oldUrlTrackerEntries = new List <OldUrlTrackerModel>();
            string         query         = string.Format("SELECT * FROM {0}", UrlTrackerSettings.OldTableName);
            IRecordsReader recordsReader = _sqlHelper.ExecuteReader(query);

            while (recordsReader.Read())
            {
                oldUrlTrackerEntries.Add(new OldUrlTrackerModel()
                {
                    NodeId   = recordsReader.GetInt("NodeID"),
                    OldUrl   = recordsReader.GetString("OldUrl"),
                    IsCustom = recordsReader.GetBoolean("IsCustom"),
                    Message  = recordsReader.GetString("Message"),
                    Inserted = recordsReader.GetDateTime("Inserted"),
                    IsRegex  = recordsReader.GetBoolean("IsRegex")
                });
            }

            foreach (OldUrlTrackerModel oldUrlTrackerEntry in oldUrlTrackerEntries)
            {
                Node node = new Node(oldUrlTrackerEntry.NodeId);
                if ((node.Id > 0 || true) && !string.IsNullOrEmpty(oldUrlTrackerEntry.OldUrl) && oldUrlTrackerEntry.OldUrl != "#")
                {
                    string oldUrl = oldUrlTrackerEntry.OldUrl;
                    Uri    oldUri = null;
                    if (!oldUrlTrackerEntry.IsRegex)
                    {
                        if (!oldUrl.StartsWith(Uri.UriSchemeHttp))
                        {
                            oldUri = new Uri(_baseUri, oldUrl);
                        }
                        else
                        {
                            oldUri = new Uri(oldUrl);
                        }
                        oldUrl = UrlTrackerHelper.ResolveShortestUrl(oldUri.AbsolutePath);
                    }
                    else
                    {
                        if (oldUrl.StartsWith("^/"))
                        {
                            oldUrl = string.Concat("^", oldUrl.Substring(2));
                        }
                        if (oldUrl.StartsWith("/"))
                        {
                            oldUrl = oldUrl.Substring(1);
                        }
                        if (oldUrl.EndsWith("/$"))
                        {
                            oldUrl = string.Concat(oldUrl.Substring(0, oldUrl.Length - 2), "$");
                        }
                        if (oldUrl.EndsWith("/"))
                        {
                            oldUrl = oldUrl.Substring(0, oldUrl.Length - 1);
                        }
                    }

                    UrlTrackerModel newUrlTrackerEntry = new UrlTrackerModel(
                        !oldUrlTrackerEntry.IsRegex ? oldUrl : string.Empty,
                        oldUri != null ? !string.IsNullOrEmpty(oldUri.Query) && oldUri.Query.StartsWith("?") ? oldUri.Query.Substring(1) : oldUri.Query : string.Empty,
                        oldUrlTrackerEntry.IsRegex ? oldUrl : string.Empty,
                        node.GetDomainRootNode().Id,
                        oldUrlTrackerEntry.NodeId,
                        string.Empty,
                        301,
                        true,
                        false,
                        oldUrlTrackerEntry.Message);
                    newUrlTrackerEntry.Inserted = oldUrlTrackerEntry.Inserted;

                    AddUrlTrackerEntry(newUrlTrackerEntry);

                    newUrlTrackerEntriesCount++;
                }
            }

            return(newUrlTrackerEntriesCount);
        }
示例#24
0
        private static XPathNodeIterator CommentsToXml(IRecordsReader rr)
        {
            XmlDocument xd = new XmlDocument();

            XmlNode x = umbraco.xmlHelper.addTextNode(xd, "comments", "");

            while (rr.Read())
            {
                XmlNode c = xd.CreateElement("comment");

                c.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "id", rr.GetInt("id").ToString()));
                c.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "nodeid", rr.GetInt("nodeid").ToString()));
                c.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "created", rr.GetDateTime("created").ToString()));

                c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "name", rr.GetString("name")));
                c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "email", rr.GetString("email")));
                c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "website", rr.GetString("website")));
                c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "message", rr.GetString("comment")));

                x.AppendChild(c);
            }

            xd.AppendChild(x);
            rr.Close();
            return xd.CreateNavigator().Select(".");
        }