public override void Save() { if (!IsNew) { //kijk of item naar andere groep is verhuisd DataItem itemFromDB = DataItem.GetById <DataItem>(this.ID); Guid parentGroupIDFromDB = itemFromDB.ParentGroup != null ? itemFromDB.ParentGroup.ID : Guid.Empty; Guid parentGroupIDFromWebForm = this.ParentGroup != null ? this.ParentGroup.ID : Guid.Empty; if (parentGroupIDFromDB != parentGroupIDFromWebForm) { //verhuisd naar andere groep --> volgnummers updaten. Item komt onderaan: if (this.ParentGroup != null) { this.OrderNumber = this.ParentGroup.GetMaxItemOrderNumber() + 1; } else { //root this.OrderNumber = this.DataCollection.GetMaxItemOrderNumber() + 1; } //er komt gat in lijst waar die vandaan kwam: alles wat hoger is 1 plek naar beneden zetten if (itemFromDB.ParentGroup != null) { string sql = String.Format("UPDATE DataItem SET OrderNumber = OrderNumber - 1 WHERE OrderNumber > {0} AND FK_Parent_Group = '{1}'", itemFromDB.OrderNumber, itemFromDB.ParentGroup.ID); DataBase.Get().Execute(sql); } else { string sql = String.Format("UPDATE DataItem SET OrderNumber = OrderNumber - 1 WHERE OrderNumber > {0} AND FK_Parent_Group IS NULL AND FK_Datacollection='{1}'", itemFromDB.OrderNumber, itemFromDB.DataCollection.ID); DataBase.Get().Execute(sql); } } } if (this.DataItemLanguages != null) { foreach (DataItemLanguage lang in this.DataItemLanguages) { if (lang.Image1 != null) { lang.Image1 = lang.Image1.Replace(Site.DomainName + "/", ""); } if (lang.Image2 != null) { lang.Image2 = lang.Image2.Replace(Site.DomainName + "/", ""); } if (lang.Image3 != null) { lang.Image3 = lang.Image3.Replace(Site.DomainName + "/", ""); } if (lang.Image4 != null) { lang.Image4 = lang.Image4.Replace(Site.DomainName + "/", ""); } if (lang.Image5 != null) { lang.Image5 = lang.Image5.Replace(Site.DomainName + "/", ""); } } } if (this.DataCollection.Type == DataCollectionTypeEnum.GoogleMaps) { string googleMapsKey = Site.GoogleMapsKey; //Utils.GPoint point = Utils.GoogleGeocoder.GetLatLng(this.Address, this.PostalCode, this.Place, this.Country, googleMapsKey); Utils.GPoint point = Utils.GoogleGeocoder.GetLatLng(this.Text1, this.Text2, this.Text3, this.Text4, googleMapsKey); this.Latitude = point.Lat; this.Longitude = point.Long; } base.Save(); UnpublishedItem.Set(this, "DataItem"); }