public void ChangeEstateCmd(List <string> args, Common.CmdIO.TTY io, UUID limitedToScene) { EstateInfo estateInfo; uint estateID; if (limitedToScene != UUID.Zero) { io.WriteFormatted("create region not allowed from restricted console"); } else if (args[0] == "help" || args.Count < 3) { io.Write("change estate <estateid> parameters...\n\n" + "Parameters:\n" + "name <name>\n" + "parentestateid <id>\n" + "owner <uui>|<uuid>|<firstname>.<lastname>\n" + "pricepermeter <value>\n" + "billablefactor <factor>\n" + "abuseemail <email>"); } else if (!uint.TryParse(args[2], out estateID)) { io.WriteFormatted("{0} is not a valid number.", args[2]); } else if (!m_EstateService.TryGetValue(estateID, out estateInfo)) { io.WriteFormatted("Estate with id {0} does not exist.", estateID); } else { int argi; bool changeEstateData = false; for (argi = 3; argi < args.Count; argi += 2) { switch (args[argi].ToLower()) { case "name": estateInfo.Name = args[argi + 1]; changeEstateData = true; break; case "abuseemail": estateInfo.AbuseEmail = args[argi + 1]; changeEstateData = true; break; case "parentestateid": if (!uint.TryParse(args[argi + 1], out estateInfo.ParentEstateID)) { io.WriteFormatted("{0} is not a number", args[argi + 1]); return; } changeEstateData = true; break; case "owner": if (!m_AvatarNameService.TranslateToUUI(args[argi + 1], out estateInfo.Owner)) { io.WriteFormatted("{0} is not a valid owner.", args[argi + 1]); return; } changeEstateData = true; break; case "billablefactor": if (!double.TryParse(args[argi + 1], NumberStyles.Float, CultureInfo.InvariantCulture, out estateInfo.BillableFactor)) { io.WriteFormatted("{0} is not a valid float number.", args[argi + 1]); return; } changeEstateData = true; break; case "pricepermeter": if (!int.TryParse(args[argi + 1], NumberStyles.Float, CultureInfo.InvariantCulture, out estateInfo.PricePerMeter)) { io.WriteFormatted("{0} is not a valid integer number.", args[argi + 1]); return; } changeEstateData = true; break; default: io.WriteFormatted("Parameter {0} is not valid.", args[argi]); return; } } if (changeEstateData) { try { m_EstateService.Update(estateInfo); } catch (Exception e) { io.WriteFormatted("Could not change estate parameters: {0}", e.Message); } /* trigger estate data update */ foreach (UUID regionid in m_EstateService.RegionMap[estateInfo.ID]) { SceneInterface scene; if (m_Scenes.TryGetValue(regionid, out scene)) { scene.TriggerEstateUpdate(); } } } } }
private void HandleUpdate(HttpRequest req, Map jsondata) { EstateInfo estateInfo; uint estateID; if (jsondata.TryGetValue("id", out estateID) && m_EstateService.TryGetValue(estateID, out estateInfo)) { /* found estate via id */ } else { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.NotFound); return; } string owner; if (jsondata.TryGetValue("owner", out owner) && !m_WebIF.TranslateToUUI(owner, out estateInfo.Owner)) { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidParameter); return; } try { string name; if (jsondata.TryGetValue("name", out name)) { estateInfo.Name = name; } uint uval; int ival; double fval; string sval; if (jsondata.TryGetValue("flags", out uval)) { estateInfo.Flags = (RegionOptionFlags)uval; } if (jsondata.TryGetValue("pricepermeter", out ival)) { estateInfo.PricePerMeter = ival; } if (jsondata.TryGetValue("billablefactor", out fval)) { estateInfo.BillableFactor = fval; } if (jsondata.TryGetValue("abuseemail", out sval)) { estateInfo.AbuseEmail = sval; } if (jsondata.TryGetValue("parentestateid", out uval)) { estateInfo.ParentEstateID = uval; } } catch { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidRequest); return; } try { m_EstateService.Update(estateInfo); } catch { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.NotPossible); return; } foreach (UUID regionid in m_EstateService.RegionMap[estateInfo.ID]) { SceneInterface scene; if (m_Scenes.TryGetValue(regionid, out scene)) { scene.TriggerEstateUpdate(); } } m_WebIF.SuccessResponse(req, new Map()); }
public bool Run() { string estateName = "Test Estate"; uint estateId = 100; UUID covenantId = UUID.Random; m_Log.Info("Testing non-existence of estate via name"); if (m_EstateService.ContainsKey(estateName)) { return(false); } m_Log.Info("Testing non-existence of estate via id"); if (m_EstateService.ContainsKey(estateId)) { return(false); } m_Log.Info("Creating estate"); EstateInfo info = new EstateInfo() { ID = estateId, Name = estateName, Owner = m_EstateOwner, CovenantID = covenantId, AbuseEmail = "*****@*****.**", Flags = RegionOptionFlags.AllowDirectTeleport, BillableFactor = 5, PricePerMeter = 2, ParentEstateID = 2 }; m_EstateService.Add(info); m_Log.Info("Testing existence of estate via name"); if (!m_EstateService.ContainsKey(estateName)) { return(false); } m_Log.Info("Testing existence of estate via id"); if (!m_EstateService.ContainsKey(estateId)) { return(false); } EstateInfo retrievedInfo; m_Log.Info("Testing retrieval via name"); if (!m_EstateService.TryGetValue(estateName, out retrievedInfo)) { return(false); } if (!CompareEstates(info, retrievedInfo)) { return(false); } m_Log.Info("Testing retrieval via id"); if (!m_EstateService.TryGetValue(estateId, out retrievedInfo)) { return(false); } if (!CompareEstates(info, retrievedInfo)) { return(false); } m_Log.Info("Testing update"); info.Name = "New Test Estate"; info.ParentEstateID = 3; estateName = info.Name; m_EstateService.Update(info); m_Log.Info("Testing retrieval via old name"); if (m_EstateService.TryGetValue("Test Estate", out retrievedInfo)) { return(false); } m_Log.Info("Testing retrieval via name"); if (!m_EstateService.TryGetValue(estateName, out retrievedInfo)) { return(false); } if (!CompareEstates(info, retrievedInfo)) { return(false); } m_Log.Info("Testing retrieval via id"); if (!m_EstateService.TryGetValue(estateId, out retrievedInfo)) { return(false); } if (!CompareEstates(info, retrievedInfo)) { return(false); } m_Log.Info("Testing deletion"); if (!m_EstateService.Remove(estateId)) { return(false); } m_Log.Info("Testing non-existence of estate via name"); if (m_EstateService.ContainsKey(estateName)) { return(false); } m_Log.Info("Testing non-existence of estate via id"); if (m_EstateService.ContainsKey(estateId)) { return(false); } return(true); }