//[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); }
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; }
// 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); }
public static DataGroup LoadNew(bool isActive) { DataGroup group = new DataGroup(); if (!isActive) { group.DateTill = DateTime.Today.AddDays(-1); } return(group); }
// 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); } }
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); }
/// <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; } }
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(); }
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); }