Ejemplo n.º 1
0
        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");
        }