private void HandleNotice(HttpRequest req, Map jsondata) { uint estateID; string message; if (!jsondata.TryGetValue("id", out estateID) || !jsondata.TryGetValue("message", out message)) { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidRequest); } else { var regionIds = m_EstateService.RegionMap[estateID]; if (regionIds.Count == 0) { if (m_EstateService.ContainsKey(estateID)) { var m = new Map { ["noticed_regions"] = new AnArray() }; m_WebIF.SuccessResponse(req, m); } else { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.NotFound); } } else { var regions = new AnArray(); foreach (var regionId in regionIds) { SceneInterface si; if (m_Scenes.TryGetValue(regionId, out si)) { regions.Add(regionId); var regionOwner = si.Owner; foreach (var agent in si.RootAgents) { agent.SendRegionNotice(regionOwner, message, regionId); } } } var m = new Map { ["noticed_regions"] = regions }; m_WebIF.SuccessResponse(req, m); } } }
public void CreateEstateCmd(List <string> args, Common.CmdIO.TTY io, UUID limitedToScene) { EstateInfo estateInfo; uint estateID; if (limitedToScene != UUID.Zero) { io.WriteFormatted("create estate not allowed from restricted console"); } else if (args[0] == "help" || args.Count < 4) { io.Write("create estate <estatename> <estateid> parameters...\n\n" + "Parameters:\n" + "owner <uui>|<uuid>|<firstname>.<lastname>\n" + "parentestateid <parentestateid>\n" + "pricepermeter <value>\n" + "billablefactor <factor>\n" + "abuseemail <email>"); } else if (!uint.TryParse(args[3], out estateID)) { io.Write("Estate ID is not a number."); } else if (m_EstateService.ContainsKey(estateID)) { io.WriteFormatted("Estate with id {0} already exists.", estateID); } else { estateInfo = new EstateInfo { ID = estateID, Name = args[2], PricePerMeter = 1, BillableFactor = 1 }; for (int argi = 4; argi + 1 < args.Count; argi += 2) { switch (args[argi].ToLower()) { case "abuseemail": estateInfo.AbuseEmail = args[argi + 1]; break; case "parentestateid": if (!uint.TryParse(args[argi + 1], out estateInfo.ParentEstateID)) { io.WriteFormatted("{0} is not a number", args[argi + 1]); return; } 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; } 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; } break; case "pricepermeter": if (!int.TryParse(args[argi + 1], out estateInfo.PricePerMeter)) { io.WriteFormatted("{0} is not a valid integer number.", args[argi + 1]); return; } break; default: io.WriteFormatted("Parameter {0} is not valid.", args[argi]); return; } } try { m_EstateService.Update(estateInfo); } catch (Exception e) { io.WriteFormatted("Could not create estate: {0}", e.Message); } } }
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); }