public void AddClassified(Classified classified) { Dictionary<string, object> sendData = classified.ToKeyValuePairs(); sendData["METHOD"] = "addclassified"; string reqString = ServerUtils.BuildQueryString(sendData); try { string reply = SynchronousRestFormsRequester.MakeRequest("POST", m_ServerURI + "/auroradata", reqString); if (reply != string.Empty) { Dictionary<string, object> replyData = ServerUtils.ParseXmlResponse(reply); if (replyData != null) { if (replyData.ContainsKey("result") && (replyData["result"].ToString().ToLower() == "null")) { m_log.DebugFormat("[AuroraRemoteProfileConnector]: AddClassified {0} received null response", classified.ClassifiedUUID); } } else { m_log.DebugFormat("[AuroraRemoteProfileConnector]: AddClassified {0} received null response", classified.ClassifiedUUID); } } } catch (Exception e) { m_log.DebugFormat("[AuroraRemoteProfileConnector]: Exception when contacting server: {0}", e.Message); } }
public void ClassifiedInfoUpdate(UUID queryclassifiedID, uint queryCategory, string queryName, string queryDescription, UUID queryParcelID, uint queryParentEstate, UUID querySnapshotID, Vector3 queryGlobalPos, byte queryclassifiedFlags, int queryclassifiedPrice, IClientAPI remoteClient) { //Security check IUserProfileInfo info = ProfileFrontend.GetUserProfile(remoteClient.AgentId); if (info == null) return; if (info.Classifieds.ContainsKey(queryclassifiedID.ToString())) { OSDMap Classifieds = Util.DictionaryToOSD(info.Classifieds); Classified oldClassified = new Classified(Util.OSDToDictionary((OSDMap)Classifieds[queryclassifiedID.ToString()])); if (oldClassified.CreatorUUID != remoteClient.AgentId) return; info.Classifieds.Remove(queryclassifiedID.ToString()); } UUID creatorUUID = remoteClient.AgentId; UUID classifiedUUID = queryclassifiedID; uint category = queryCategory; string name = queryName; string description = queryDescription; uint parentestate = queryParentEstate; UUID snapshotUUID = querySnapshotID; string simname = remoteClient.Scene.RegionInfo.RegionName; Vector3 globalpos = queryGlobalPos; byte classifiedFlags = queryclassifiedFlags; int classifiedPrice = queryclassifiedPrice; ScenePresence p = m_scene.GetScenePresence(remoteClient.AgentId); UUID parceluuid = p.currentParcelUUID; string parcelname = "Unknown"; string pos_global = new Vector3(remoteClient.Scene.RegionInfo.RegionLocX * Constants.RegionSize + p.AbsolutePosition.X, remoteClient.Scene.RegionInfo.RegionLocY * Constants.RegionSize + p.AbsolutePosition.Y, p.AbsolutePosition.Z).ToString(); ILandObject parcel = m_scene.LandChannel.GetLandObject(p.AbsolutePosition.X, p.AbsolutePosition.Y); if(parcel != null) { parcelname = parcel.LandData.Name; parceluuid = parcel.LandData.InfoUUID; } uint creationdate = (uint)Util.UnixTimeSinceEpoch(); uint expirationdate = (uint)Util.UnixTimeSinceEpoch() + (365 * 24 * 60 * 60); Classified classified = new Classified(); classified.ClassifiedUUID = classifiedUUID; classified.CreatorUUID = creatorUUID; classified.CreationDate = creationdate; classified.ExpirationDate = expirationdate; classified.Category = category; classified.Name = name; classified.Description = description; classified.ParcelUUID = parceluuid; classified.ParentEstate = parentestate; classified.SnapshotUUID = snapshotUUID; classified.SimName = simname; classified.GlobalPos = globalpos; classified.ParcelName = parcelname; classified.ClassifiedFlags = classifiedFlags; classified.PriceForListing = classifiedPrice; info.Classifieds.Add(classified.ClassifiedUUID.ToString(), Util.DictionaryToOSD(classified.ToKeyValuePairs())); ProfileFrontend.UpdateUserProfile(info); }
public void ClassifiedInfoUpdate(UUID queryclassifiedID, uint queryCategory, string queryName, string queryDescription, UUID queryParcelID, uint queryParentEstate, UUID querySnapshotID, Vector3 queryGlobalPos, byte queryclassifiedFlags, int queryclassifiedPrice, IClientAPI remoteClient) { //Security check IUserProfileInfo info = ProfileFrontend.GetUserProfile(remoteClient.AgentId); if (info == null) return; ScenePresence p = GetRegionUserIsIn(remoteClient.AgentId).GetScenePresence(remoteClient.AgentId); if(p == null) return; //Just fail IMoneyModule money = p.Scene.RequestModuleInterface<IMoneyModule>(); if (money != null) { if (money.AmountCovered(remoteClient, queryclassifiedPrice)) money.ApplyCharge(remoteClient.AgentId, queryclassifiedPrice, "Add Classified"); else { remoteClient.SendAlertMessage("You do not have enough money to complete this upload."); return; } } if (info.Classifieds.ContainsKey(queryclassifiedID.ToString())) { OSDMap Classifieds = Util.DictionaryToOSD(info.Classifieds); Classified oldClassified = new Classified(); oldClassified.FromOSD((OSDMap)Classifieds[queryclassifiedID.ToString()]); if (oldClassified.CreatorUUID != remoteClient.AgentId) return; info.Classifieds.Remove(queryclassifiedID.ToString()); } UUID creatorUUID = remoteClient.AgentId; UUID classifiedUUID = queryclassifiedID; uint category = queryCategory; string name = queryName; string description = queryDescription; uint parentestate = queryParentEstate; UUID snapshotUUID = querySnapshotID; string simname = remoteClient.Scene.RegionInfo.RegionName; Vector3 globalpos = queryGlobalPos; byte classifiedFlags = queryclassifiedFlags; int classifiedPrice = queryclassifiedPrice; UUID parceluuid = p.currentParcelUUID; string parcelname = "Unknown"; ILandObject parcel = GetRegionUserIsIn(remoteClient.AgentId).LandChannel.GetLandObject(p.AbsolutePosition.X, p.AbsolutePosition.Y); if(parcel != null) { parcelname = parcel.LandData.Name; parceluuid = parcel.LandData.InfoUUID; } uint creationdate = (uint)Util.UnixTimeSinceEpoch(); uint expirationdate = (uint)Util.UnixTimeSinceEpoch() + (365 * 24 * 60 * 60); Classified classified = new Classified(); classified.ClassifiedUUID = classifiedUUID; classified.CreatorUUID = creatorUUID; classified.CreationDate = creationdate; classified.ExpirationDate = expirationdate; classified.Category = category; classified.Name = name; classified.Description = description; classified.ParcelUUID = parceluuid; classified.ParentEstate = parentestate; classified.SnapshotUUID = snapshotUUID; classified.SimName = simname; classified.GlobalPos = globalpos; classified.ParcelName = parcelname; classified.ClassifiedFlags = classifiedFlags; classified.PriceForListing = classifiedPrice; info.Classifieds.Add(classified.ClassifiedUUID.ToString(), Util.DictionaryToOSD(classified.ToKeyValuePairs())); ProfileFrontend.UpdateUserProfile(info); }