Beispiel #1
0
        //[NonPersistent()]
        //public bool PublishIntoDB { get; set; }
        //[NonPersistent()]
        //public bool PublishAsHtml { get; set; }

        protected DataGroup getGroupByNameOrNew(string name)
        {
            DataGroup returnValue = null;

            if (name != "")
            {
                //find group
                foreach (DataGroup group in Groups)
                {
                    if (group.Name == name)
                    {
                        returnValue = group;
                        break;
                    }
                }
                if (returnValue == null)
                {
                    //nieuwe groep aanmaken
                    DataGroup newgroup = new DataGroup();
                    newgroup.Name           = name;
                    newgroup.Site           = this.Site;
                    newgroup.DataCollection = this;
                    newgroup.Save();
                    returnValue = newgroup;
                }
            }
            return(returnValue);
        }
Beispiel #2
0
 public void FillObject(System.Data.DataRow dataRow, System.Data.DataColumnCollection columns)
 {
     base.FillObject(dataRow, columns);
     if (dataRow["FK_DataGroup"] != DBNull.Value)
     {
         this.DataGroup    = new DataGroup();
         this.DataGroup.ID = new Guid(dataRow["FK_DataGroup"].ToString());
     }
     this.IsLoaded = true;
 }
Beispiel #3
0
        //        public void UpdateAllOrderingNumbers()
        //        {
        //            string sql = String.Format(@"SELECT ID, Name, 'Item' AS Title, OrderingNumber From DataItem WHERE FK_DataCollection='{0}' AND FK_Parent_Group Is Null
        //UNION SELECT ID, Name, 'Group' AS Title, OrderingNumber From DataGroup WHERE FK_DataCollection='{0}' AND FK_Parent_Group Is Null ORDER BY OrderingNumber, Name", this.ID);
        //            BaseCollection<BaseDataObject> dataObjects = BaseCollection<BaseDataObject>.LoadFromSql(sql);
        //            int orderingNumber = 0;
        //            foreach (BaseDataObject dataObject in dataObjects)
        //            {
        //                orderingNumber++;
        //                string orderingNumberString = orderingNumber.ToString("0000");
        //                string updateSql = String.Format("UPDATE Data{0} SET OrderingNumber='{1}' WHERE ID='{2}'", dataObject.Title, orderingNumberString, dataObject.ID);
        //                DataBase.Get().Execute(updateSql);
        //                if (dataObject.Title == "Group")
        //                {
        //                    ((DataGroup)dataObject).UpdateSubOrderingNumbers(orderingNumberString);
        //                }
        //            }
        //        }

        //        public void MoveRootItemsAndGroups(int fromOrderingNumber, int? tillOrderingNumber, MoveDirectionEnum direction)
        //        {
        //            //zowel groepen als items krijgen volgorde in de tree
        //            //union query waarbij groepen en item in 1 query staan.
        //            //resultaat van query wordt in BaseDataObject gezet.
        //            //veld title misbruiken om hier type (groep of item) in te bewaren
        //            //alleen de lagere nummers hoef je te updaten  (OrderingNumber <= orderingNumber)
        //            //krijgen allemaal 1 plekje lager, totaan tillOrderingNumber
        //            //ook subgroepen moeten worden geupdate, want hier wordt nieuwe hierarchie in nummering weergegeven
        //            string fromOrderingNumberString = fromOrderingNumber.ToString("0000");
        //            string tillWhereClause = "";
        //            if (tillOrderingNumber.HasValue)
        //            {
        //                string tillOrderingNumberString = tillOrderingNumber.Value.ToString("0000");
        //                tillWhereClause = String.Format(" AND OrderingNumber <= '{0}'", tillOrderingNumberString);
        //            }

        //            string sql = String.Format(@"SELECT ID, Name, 'Item' AS Title, OrderingNumber From DataItem WHERE FK_DataCollection='{0}' AND FK_Parent_Group IS NULL AND OrderingNumber >= '{1}' {2}
        //UNION SELECT ID, Name, 'Group' AS Title, OrderingNumber From DataGroup WHERE FK_DataCollection='{0}' AND FK_Parent_Group IS NULL AND OrderingNumber >= '{1}' {2}
        //ORDER BY OrderingNumber, Name", this.ID, fromOrderingNumberString, tillWhereClause);
        //            BaseCollection<BaseDataObject> dataObjects = BaseCollection<BaseDataObject>.LoadFromSql(sql);
        //            int currentOrderingNumber = fromOrderingNumber;
        //            foreach (BaseDataObject dataObject in dataObjects)
        //            {
        //                string newOrderingNumberString = "";
        //                if (direction == MoveDirectionEnum.Down)
        //                {
        //                    newOrderingNumberString = (currentOrderingNumber - 1).ToString("0000");
        //                }
        //                else
        //                {
        //                    newOrderingNumberString = (currentOrderingNumber + 1).ToString("0000");
        //                }

        //                string updateSql = String.Format("UPDATE Data{0} SET OrderingNumber='{1}' WHERE ID='{2}'", dataObject.Title, newOrderingNumberString, dataObject.ID);
        //                DataBase.Get().Execute(updateSql);
        //                if (dataObject.Title == "Group")
        //                {
        //                    dataObject.UpdateSubOrderingNumbers(newOrderingNumberString);
        //                }
        //                currentOrderingNumber++;
        //            }
        //        }
        //        public void MoveRootItemsAndGroupsDown(int fromOrderingNumber, int? tillOrderingNumber)
        //        {

        //            MoveRootItemsAndGroups(fromOrderingNumber, tillOrderingNumber, MoveDirectionEnum.Down);

        //        }

        //        public void MoveRootItemsAndGroupsUp(int fromOrderingNumber, int? tillOrderingNumber)
        //        {
        //            MoveRootItemsAndGroups(fromOrderingNumber, tillOrderingNumber, MoveDirectionEnum.Up);

        //        }

        //        public void UpdateGroupOrderingNumbers(BaseDataObject group, string groupNumberString)
        //        {
        //            string sql = String.Format(@"SELECT ID, Name, 'Item' AS Title, OrderingNumber From DataItem WHERE FK_DataCollection='{0}' AND FK_Parent_Group = '{1}'
        //UNION SELECT ID, Name, 'Group' AS Title, OrderingNumber From DataGroup WHERE FK_DataCollection='{0}' AND FK_Parent_Group = '{1}' ORDER BY OrderingNumber, Name", this.ID, group.ID);
        //            BaseCollection<BaseDataObject> dataObjects = BaseCollection<BaseDataObject>.LoadFromSql(sql);
        //            int num = 0;
        //            foreach (BaseDataObject dataObject in dataObjects)
        //            {
        //                num++;
        //                string orderingNumberString = groupNumberString + "." + num.ToString("0000");
        //                string updateSql = String.Format("UPDATE Data{0} SET OrderingNumber='{1}' WHERE ID='{2}'", dataObject.Title, orderingNumberString, dataObject.ID);
        //                DataBase.Get().Execute(updateSql);
        //                if (dataObject.Title == "Group")
        //                {
        //                    UpdateGroupOrderingNumbers(dataObject, orderingNumberString);
        //                }
        //            }
        //        }


        internal DataGroup GetFirstGroup()
        {
            DataGroup returnValue = null;

            if (Groups.Count > 0)
            {
                returnValue = Groups[0];
            }
            return(returnValue);
        }
Beispiel #4
0
        public static DataGroup LoadNew(bool isActive)
        {
            DataGroup group = new DataGroup();

            if (!isActive)
            {
                group.DateTill = DateTime.Today.AddDays(-1);
            }
            return(group);
        }
Beispiel #5
0
        //        public void MoveItemsAndGroups(int fromOrderingNumber, int? tillOrderingNumber, MoveDirectionEnum direction)
        //        {
        //            //zowel groepen als items krijgen volgorde in de tree
        //            //union query waarbij groepen en item in 1 query staan.
        //            //resultaat van query wordt in BaseDataObject gezet.
        //            //veld title misbruiken om hier type (groep of item) in te bewaren
        //            //alleen de lagere nummers hoef je te updaten  (OrderingNumber <= orderingNumber)
        //            //krijgen allemaal 1 plekje lager, totaan tillOrderingNumber
        //            //ook subgroepen moeten worden geupdate, want hier wordt nieuwe hierarchie in nummering weergegeven
        //            string fromOrderingNumberString = this.OrderingNumber + "." + fromOrderingNumber.ToString("0000");
        //            string tillWhereClause = "";
        //            if (tillOrderingNumber.HasValue)
        //            {
        //                string tillOrderingNumberString = this.OrderingNumber + "." + tillOrderingNumber.Value.ToString("0000");
        //                tillWhereClause = String.Format(" AND OrderingNumber <= '{0}'", tillOrderingNumberString);
        //            }

        //            string sql = String.Format(@"SELECT ID, Name, 'Item' AS Title, OrderingNumber From DataItem WHERE FK_Parent_Group='{0}' AND OrderingNumber >= '{1}' {2}
        //UNION SELECT ID, Name, 'Group' AS Title, OrderingNumber From DataGroup WHERE FK_Parent_Group='{0}' AND OrderingNumber >= '{1}' {2}
        //ORDER BY OrderingNumber, Name", this.ID, fromOrderingNumberString, tillWhereClause);
        //            BaseCollection<BaseDataObject> dataObjects = BaseCollection<BaseDataObject>.LoadFromSql(sql);
        //            int currentOrderingNumber = fromOrderingNumber;
        //            foreach (BaseDataObject dataObject in dataObjects)
        //            {
        //                string newOrderingNumberString = "";
        //                if (direction == MoveDirectionEnum.Down)
        //                {
        //                    newOrderingNumberString = this.OrderingNumber + "." + (currentOrderingNumber - 1).ToString("0000");
        //                }
        //                else
        //                {
        //                    newOrderingNumberString = this.OrderingNumber + "." + (currentOrderingNumber + 1).ToString("0000");
        //                }

        //                string updateSql = String.Format("UPDATE Data{0} SET OrderingNumber='{1}' WHERE ID='{2}'", dataObject.Title, newOrderingNumberString, dataObject.ID);
        //                DataBase.Get().Execute(updateSql);
        //                if (dataObject.Title == "Group")
        //                {
        //                    dataObject.UpdateSubOrderingNumbers(newOrderingNumberString);
        //                }
        //                currentOrderingNumber++;
        //            }
        //        }

        //        public void MoveItemsAndGroupsDown(int fromOrderingNumber, int? tillOrderingNumber)
        //        {

        //            MoveItemsAndGroups(fromOrderingNumber, tillOrderingNumber, MoveDirectionEnum.Down);

        //        }

        //        public void MoveItemsAndGroupsUp(int fromOrderingNumber, int? tillOrderingNumber)

        //        {
        //            MoveItemsAndGroups(fromOrderingNumber, tillOrderingNumber, MoveDirectionEnum.Up);

        //        }

        //        internal string CalculateNewOrderingNumber()
        //        {
        //            string sql = String.Format(@"SELECT ID, Name, 'Item' AS Title, OrderingNumber From DataItem WHERE FK_Parent_Group='{0}'
        //UNION SELECT ID, Name, 'Group' AS Title, OrderingNumber From DataGroup WHERE FK_Parent_Group='{0}'", this.ID);
        //            BaseCollection<BaseDataObject> dataObjects = BaseCollection<BaseDataObject>.LoadFromSql(sql);
        //            int newOrderNumber = dataObjects.Count + 1;
        //            string newOrderingNumberString = this.OrderingNumber + "." + newOrderNumber.ToString("0000");
        //            return newOrderingNumberString;
        //        }

        public void Copy(string newName, Guid?dataCollectionID, Guid?parentGroupID, bool updateOrderNumber = false)
        {
            DataGroup newGroup = this.CreateCopy <DataGroup>(false);

            if (newName != "")
            {
                newGroup.Name = newName;
            }
            newGroup.LastPublishedDate = null;

            if (dataCollectionID.HasValue)
            {
                newGroup.DataCollection    = new DataCollection();
                newGroup.DataCollection.ID = dataCollectionID.Value;
            }
            if (parentGroupID.HasValue)
            {
                newGroup.ParentGroup    = new DataGroup();
                newGroup.ParentGroup.ID = parentGroupID.Value;
            }
            if (updateOrderNumber)
            {
                //gekopieerde item krijgt 1 plek hoger volgnummer
                newGroup.OrderNumber++;
            }
            newGroup.Save();

            if (updateOrderNumber)
            {
                //de rest van de items moeten 1 plek opschuiven om plaats te maken
                int newOrderNumber = newGroup.OrderNumber;
                if (newGroup.ParentGroup != null)
                {
                    string sql = String.Format("UPDATE DataGroup SET OrderNumber = OrderNumber + 1 WHERE OrderNumber >= {0} AND ID != '{1} ' AND FK_Parent_Group = '{2}'", newOrderNumber, newGroup.ID, this.ParentGroup.ID);
                    DataBase.Get().Execute(sql);
                }
                else
                {
                    string sql = String.Format("UPDATE DataGroup SET OrderNumber = OrderNumber + 1 WHERE OrderNumber >= {0} AND ID != '{1} ' AND FK_DataCollection = '{2}' AND FK_Parent_Group IS NULL", newOrderNumber, newGroup.ID, this.DataCollection.ID);
                    DataBase.Get().Execute(sql);
                }
            }


            foreach (DataItem item in this.GetItems())
            {
                item.Copy(item.Name, newGroup.DataCollection.ID, newGroup.ID);
            }

            foreach (DataGroup subGroup in this.GetSubGroups())
            {
                subGroup.Copy(subGroup.Name, newGroup.DataCollection.ID, newGroup.ID);
            }
        }
Beispiel #6
0
        public string GetCompletePath()
        {
            string    path        = this.Name;
            DataGroup parentGroup = this.ParentGroup;

            while (parentGroup != null)
            {
                //path = this.ParentGroup.Name + "/" + path;
                path        = parentGroup.Name + "/" + path;
                parentGroup = parentGroup.ParentGroup;
            }
            return(path);
        }
Beispiel #7
0
        /// <summary>
        /// kijk of groep niet onderzichzelf valt
        /// </summary>
        protected void ValidateGroupPath()
        {
            DataGroup parentGroup = this.ParentGroup;

            while (parentGroup != null)
            {
                if (this.ID == parentGroup.ID && this.ID != Guid.Empty)
                {
                    throw new Exception("Groep mag niet onder zichzelf vallen.");
                }

                parentGroup = parentGroup.ParentGroup;
            }
        }
Beispiel #8
0
        public void MoveGroups(string groupid, int newOrderingnumber)
        {
            DataGroup group             = BaseObject.GetById <DataGroup>(new Guid(groupid));
            int       oldOrderingNumber = group.OrderNumber;

            if (oldOrderingNumber < newOrderingnumber)
            {
                //nummer wordt hoger: alles tussen oude nummer en nieuwe nummer 1 plek lager zetten
                string sql = String.Format("UPDATE DataGroup SET OrderNumber = OrderNumber - 1 WHERE OrderNumber > {0} And OrderNumber <= {1} AND FK_DataCollection = '{2}' AND FK_Parent_Group IS NULL", oldOrderingNumber, newOrderingnumber, this.ID);
                DataBase.Get().Execute(sql);
            }
            else if (oldOrderingNumber > newOrderingnumber)
            {
                //nummer wordt lager: alles tussen nieuwe nummer en oude nummer 1 plek verder zetten
                string sql = String.Format("UPDATE DataGroup SET OrderNumber = OrderNumber + 1 WHERE OrderNumber < {0} And OrderNumber >= {1} AND FK_DataCollection = '{2}' AND FK_Parent_Group IS NULL", oldOrderingNumber, newOrderingnumber, this.ID);
                DataBase.Get().Execute(sql);
            }
            group.OrderNumber = newOrderingnumber;
            group.Save();
        }
Beispiel #9
0
        public override void Save()
        {
            base.ValidateGroupPath();
            if (!IsNew)
            {
                //kijk of item naar andere groep is verhuisd
                DataGroup groupFromDB              = DataGroup.GetById <DataGroup>(this.ID);
                Guid      parentGroupIDFromDB      = groupFromDB.ParentGroup != null ? groupFromDB.ParentGroup.ID : Guid.Empty;
                Guid      parentGroupIDFromWebForm = this.ParentGroup != null ? this.ParentGroup.ID : Guid.Empty;

                if (parentGroupIDFromDB != parentGroupIDFromWebForm)
                {
                    //verhuisd naar andere groep --> volgnummers updaten. group komt onderaan:
                    if (this.ParentGroup != null)
                    {
                        this.OrderNumber = this.ParentGroup.GetMaxGroupOrderNumber() + 1;
                    }
                    else
                    {
                        //root
                        this.OrderNumber = this.DataCollection.GetMaxGroupOrderNumber() + 1;
                    }

                    //er komt gat in lijst waar die vandaan kwam: alles wat hoger is 1 plek naar beneden zetten
                    if (groupFromDB.ParentGroup != null)
                    {
                        string sql = String.Format("UPDATE DataGroup SET OrderNumber = OrderNumber - 1 WHERE OrderNumber > {0} AND FK_Parent_Group = '{1}'", groupFromDB.OrderNumber, groupFromDB.ParentGroup.ID);
                        DataBase.Get().Execute(sql);
                    }
                    else
                    {
                        string sql = String.Format("UPDATE DataGroup SET OrderNumber = OrderNumber - 1 WHERE OrderNumber > {0} AND FK_Parent_Group IS NULL AND FK_Datacollection='{1}'", groupFromDB.OrderNumber, groupFromDB.DataCollection.ID);
                        DataBase.Get().Execute(sql);
                    }
                }
            }
            base.Save();
            UnpublishedItem.Set(this, "DataGroup");
            //Save(true);
        }