Exemple #1
0
        public override void SendEstateUpdateInfo(UUID invoice, UUID transactionID, EstateInfo estate, UUID fromSceneID, bool sendToAgentOnly = true)
        {
            var msg = new EstateOwnerMessage
            {
                AgentID       = Owner.ID,
                SessionID     = SessionID,
                Invoice       = invoice,
                TransactionID = transactionID,
                Method        = "estateupdateinfo"
            };

            msg.ParamList.Add(StringToBytes(estate.Name));
            msg.ParamList.Add(StringToBytes((string)estate.Owner.ID));
            msg.ParamList.Add(StringToBytes(estate.ID.ToString()));
            msg.ParamList.Add(StringToBytes(((uint)estate.Flags).ToString()));
            if (estate.UseGlobalTime)
            {
                msg.ParamList.Add(StringToBytes("0"));
            }
            else
            {
                msg.ParamList.Add(StringToBytes(((int)((estate.SunPosition + 6) * 1024)).ToString()));
            }
            msg.ParamList.Add(StringToBytes(estate.ParentEstateID.ToString()));
            msg.ParamList.Add(StringToBytes(estate.CovenantID.ToString()));
            msg.ParamList.Add(StringToBytes(estate.CovenantTimestamp.AsULong.ToString()));
            msg.ParamList.Add(StringToBytes(sendToAgentOnly?"1":"0"));
            msg.ParamList.Add(StringToBytes(estate.AbuseEmail));

            SendMessageIfRootAgent(msg, fromSceneID);
        }
Exemple #2
0
        private EstateInfo CheckEstateRights(IAgent agent)
        {
            UGUI       agentOwner = agent.Owner;
            uint       estateID   = EstateService.RegionMap[ID];
            EstateInfo estateInfo = EstateService[estateID];

            if (Owner.EqualsGrid(agentOwner) || IsEstateManager(agentOwner))
            {
                /* EM, EO and RO should never be blocked by estate access rights */
                return(estateInfo);
            }

            if (EstateService.EstateBans[estateID, agentOwner])
            {
                throw new ParcelAccessDeniedException(this.GetLanguageString(agent.CurrentCulture, "YouAreBannedFromThisEstate", "You are banned from this estate."));
            }

            if ((estateInfo.Flags & RegionOptionFlags.ExternallyVisible) == 0 &&
                !EstateService.EstateAccess[estateID, agentOwner])
            {
                List <UGI> estateGroups = EstateService.EstateGroup.All[estateID];
                foreach (GroupMembership group in GroupsService.Memberships[agentOwner, agentOwner])
                {
                    if (estateGroups.Contains(group.Group))
                    {
                        return(estateInfo);
                    }
                }
                throw new ParcelAccessDeniedException(this.GetLanguageString(agent.CurrentCulture, "YouAreNotAllowedToEnterTheEstate", "You are not allowed to enter the estate."));
            }

            return(estateInfo);
        }
Exemple #3
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="estateinfo"></param>
        /// <returns>是否成功</returns>
        public string GetUpdateStr(EstateInfo estateinfo)
        {
            StringBuilder part1 = new StringBuilder();

            part1.Append("update estateinfo set ");
            if (estateinfo.estateName != null)
            {
                part1.Append("estateName = @estateName,");
            }
            if (estateinfo.stationNo != null)
            {
                part1.Append("stationNo = @stationNo,");
            }
            if (estateinfo.areaNo != null)
            {
                part1.Append("areaNo = @areaNo,");
            }
            if (estateinfo.remark != null)
            {
                part1.Append("remark = @remark,");
            }
            if (estateinfo.shortName != null)
            {
                part1.Append("shortName = @shortName,");
            }
            int n = part1.ToString().LastIndexOf(",");

            part1.Remove(n, 1);
            part1.Append(" where estateNo= @estateNo  ");
            return(part1.ToString());
        }
Exemple #4
0
        /// <summary>
        /// 插入
        /// </summary>
        /// <param name="estateinfo"></param>
        /// <returns>是否成功</returns>
        public string GetInsertStr(EstateInfo estateinfo)
        {
            StringBuilder part1 = new StringBuilder();
            StringBuilder part2 = new StringBuilder();

            if (estateinfo.estateName != null)
            {
                part1.Append("estateName,");
                part2.Append("@estateName,");
            }
            if (estateinfo.stationNo != null)
            {
                part1.Append("stationNo,");
                part2.Append("@stationNo,");
            }
            if (estateinfo.areaNo != null)
            {
                part1.Append("areaNo,");
                part2.Append("@areaNo,");
            }
            if (estateinfo.remark != null)
            {
                part1.Append("remark,");
                part2.Append("@remark,");
            }
            if (estateinfo.shortName != null)
            {
                part1.Append("shortName,");
                part2.Append("@shortName,");
            }
            StringBuilder sql = new StringBuilder();

            sql.Append("insert into estateinfo(").Append(part1.ToString().Remove(part1.Length - 1)).Append(") values (").Append(part2.ToString().Remove(part2.Length - 1)).Append(")");
            return(sql.ToString());
        }
Exemple #5
0
        /// <summary>
        /// 获取参数
        /// </summary>
        /// <param name="estateinfo"></param>
        /// <returns></returns>
        public Dictionary <string, string> GetParameters(EstateInfo estateinfo)
        {
            Dictionary <string, string> dict = new Dictionary <string, string>();

            if (estateinfo.estateNo != null)
            {
                dict.Add("@estateNo", estateinfo.estateNo.ToString());
            }
            if (estateinfo.estateName != null)
            {
                dict.Add("@estateName", estateinfo.estateName.ToString());
            }
            if (estateinfo.stationNo != null)
            {
                dict.Add("@stationNo", estateinfo.stationNo.ToString());
            }
            if (estateinfo.areaNo != null)
            {
                dict.Add("@areaNo", estateinfo.areaNo.ToString());
            }
            if (estateinfo.remark != null)
            {
                dict.Add("@remark", estateinfo.remark.ToString());
            }
            if (estateinfo.shortName != null)
            {
                dict.Add("@shortName", estateinfo.shortName.ToString());
            }

            return(dict);
        }
Exemple #6
0
        /// <summary>
        /// update
        /// </summary>
        /// <param name="EstateInfo"></param>
        /// <returns></returns>
        public void Update(EstateInfo model, SqlConnection connection = null, SqlTransaction transaction = null)
        {
            var str  = GetUpdateStr(model);
            var dict = GetParameters(model);

            SqlHelper.Instance.ExcuteNon(str, dict, connection, transaction);
        }
Exemple #7
0
        /// <summary>
        /// add
        /// </summary>
        /// <param name="EstateInfo"></param>
        /// <returns></returns>
        public int Add(EstateInfo model, SqlConnection connection = null, SqlTransaction transaction = null)
        {
            var str  = GetInsertStr(model) + " select @@identity";
            var dict = GetParameters(model);

            return(Convert.ToInt32(SqlHelper.Instance.ExecuteScalar(str, dict, connection, transaction)));
        }
Exemple #8
0
        public void SendEstateInfo(IAgent agent)
        {
            EstateInfo info;

            lock (m_EstateDataUpdateLock)
            {
                info = new EstateInfo(m_EstateData);
            }
            agent.SendEstateUpdateInfo(UUID.Zero, UUID.Zero, info, ID, true);
        }
Exemple #9
0
        private bool CompareEstates(EstateInfo a, EstateInfo b)
        {
            List <string> mismatches = new List <string>();

            if (a.Name != b.Name)
            {
                mismatches.Add("Name");
            }
            if (a.ID != b.ID)
            {
                mismatches.Add("ID");
            }
            if (a.AbuseEmail != b.AbuseEmail)
            {
                mismatches.Add("AbuseEmail");
            }
            if (a.CovenantID != b.CovenantID)
            {
                mismatches.Add("CovenantID");
            }
            if (a.CovenantTimestamp.AsULong != b.CovenantTimestamp.AsULong)
            {
                mismatches.Add("CovenantTimestamp");
            }
            if (a.Flags != b.Flags)
            {
                mismatches.Add("Flags");
            }
            if (a.ParentEstateID != b.ParentEstateID)
            {
                mismatches.Add("ParentEstateID");
            }
            if (a.PricePerMeter != b.PricePerMeter)
            {
                mismatches.Add("PricePerMeter");
            }
            if (a.SunPosition != b.SunPosition)
            {
                mismatches.Add("SunPosition");
            }
            if (a.UseGlobalTime != b.UseGlobalTime)
            {
                mismatches.Add("UseGlobalTime");
            }
            if (mismatches.Count > 0)
            {
                m_Log.InfoFormat("Mismatch detected: {0}", string.Join(" ", mismatches));
                return(false);
            }
            else
            {
                return(true);
            }
        }
Exemple #10
0
        private void HandleCreate(HttpRequest req, Map jsondata)
        {
            var estateInfo = new EstateInfo();

            if (!m_WebIF.TranslateToUUI(jsondata["owner"].ToString(), out estateInfo.Owner))
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidParameter);
                return;
            }
            try
            {
                if (jsondata.ContainsKey("id"))
                {
                    estateInfo.ID = jsondata["id"].AsUInt;
                }
                else
                {
                    var  estateids = m_EstateService.AllIDs;
                    uint id        = 100;
                    while (estateids.Contains(id))
                    {
                        ++id;
                    }
                    estateInfo.ID = id;
                }
                estateInfo.Name  = jsondata["name"].ToString();
                estateInfo.Flags = jsondata.ContainsKey("flags") ?
                                   (RegionOptionFlags)jsondata["flags"].AsUInt :
                                   RegionOptionFlags.AllowVoice | RegionOptionFlags.AllowSetHome | RegionOptionFlags.AllowLandmark | RegionOptionFlags.AllowDirectTeleport | RegionOptionFlags.AllowParcelChanges | RegionOptionFlags.ExternallyVisible;

                estateInfo.PricePerMeter  = jsondata["pricepermeter"].AsInt;
                estateInfo.BillableFactor = jsondata["billablefactor"].AsReal;
                estateInfo.AbuseEmail     = jsondata["abuseemail"].ToString();
                estateInfo.ParentEstateID = jsondata["parentestateid"].AsUInt;
            }
            catch
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidRequest);
                return;
            }

            try
            {
                m_EstateService.Add(estateInfo);
            }
            catch
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.NotPossible);
                return;
            }
            m_WebIF.SuccessResponse(req, new Map());
        }
 public override bool TryGetValue(string estateName, out EstateInfo estateInfo)
 {
     foreach (var intern in m_Data.Values)
     {
         if (string.Equals(intern.Name, estateName, StringComparison.OrdinalIgnoreCase))
         {
             estateInfo = new EstateInfo(intern);
             return(true);
         }
     }
     estateInfo = default(EstateInfo);
     return(false);
 }
 public static Map ToJsonMap(this EstateInfo estate, IAdminWebIF webif) => new Map
 {
     { "ID", (int)estate.ID },
     { "ParentEstateID", (int)estate.ParentEstateID },
     { "Name", estate.Name },
     { "Flags", ((uint)estate.Flags).ToString() },
     { "Owner", webif.ResolveName(estate.Owner).ToMap() },
     { "PricePerMeter", estate.PricePerMeter },
     { "BillableFactor", estate.BillableFactor },
     { "SunPosition", estate.SunPosition },
     { "AbuseEmail", estate.AbuseEmail },
     { "UseGlobalTime", estate.UseGlobalTime }
 };
Exemple #13
0
 public EstateInfo(EstateInfo src)
 {
     ID                = src.ID;
     ParentEstateID    = src.ParentEstateID;
     Name              = src.Name;
     Flags             = src.Flags;
     Owner             = new UGUI(src.Owner);
     PricePerMeter     = src.PricePerMeter;
     BillableFactor    = src.BillableFactor;
     SunPosition       = src.SunPosition;
     AbuseEmail        = src.AbuseEmail;
     UseGlobalTime     = src.UseGlobalTime;
     CovenantID        = src.CovenantID;
     CovenantTimestamp = new Date(src.CovenantTimestamp);
 }
        public override bool TryGetValue(uint estateID, out EstateInfo estateInfo)
        {
            EstateInfo intern;

            if (m_Data.TryGetValue(estateID, out intern))
            {
                lock (intern)
                {
                    estateInfo = new EstateInfo(intern);
                }
                return(true);
            }
            estateInfo = default(EstateInfo);
            return(false);
        }
 public override bool TryGetValue(uint estateID, out EstateInfo estateInfo)
 {
     using (var conn = new MySqlConnection(m_ConnectionString))
     {
         conn.Open();
         using (var cmd = new MySqlCommand("SELECT * FROM estates WHERE ID = @id LIMIT 1", conn))
         {
             cmd.Parameters.AddParameter("@id", estateID);
             using (MySqlDataReader reader = cmd.ExecuteReader())
             {
                 if (reader.Read())
                 {
                     estateInfo = reader.ToEstateInfo();
                     return(true);
                 }
             }
         }
     }
     estateInfo = default(EstateInfo);
     return(false);
 }
 public override bool TryGetValue(string estateName, out EstateInfo estateInfo)
 {
     using (var conn = new NpgsqlConnection(m_ConnectionString))
     {
         conn.Open();
         using (var cmd = new NpgsqlCommand("SELECT * FROM estates WHERE \"Name\" = @name LIMIT 1", conn))
         {
             cmd.Parameters.AddParameter("@name", estateName);
             using (NpgsqlDataReader reader = cmd.ExecuteReader())
             {
                 if (reader.Read())
                 {
                     estateInfo = reader.ToEstateInfo();
                     return(true);
                 }
             }
         }
     }
     estateInfo = default(EstateInfo);
     return(false);
 }
    static IEnumerator AsyncFetchOpen(int limit, int offset)
    {
        var www = new WWW(string.Format(API_URL + "?status=open&limit={0}&offset={1}", limit, offset));

        yield return(www);

//        Debug.Log(www.text);

        var response = JsonConvert.DeserializeObject <EstatesResponse>(www.text);

        for (int i = 0; i < response.data.estates.Count; i++)
        {
            var estate = response.data.estates[i];

            EstateInfo estateInfo;
            var        findInd = DclMap.EstateInfos.FindIndex(e => e.Estate.id == estate.id);
            if (findInd >= 0)
            {
                estateInfo = DclMap.EstateInfos[findInd];
                estateInfo.Update(estate);
            }
            else
            {
                estateInfo = new EstateInfo(estate);
                DclMap.EstateInfos.Add(estateInfo);
            }

            var data    = estate.data;
            var parcels = data.parcels;
            for (int j = 0; j < parcels.Count; j++)
            {
                var coord = parcels[j];
                var index = DclMap.CoordinatesToIndex(coord.x, coord.y);
                DclMap.ParcelInfos[index].Update(estateInfo);
            }
        }
    }
        public override void Add(EstateInfo estateInfo)
        {
            var dict = new Dictionary <string, object>
            {
                ["ID"]                = estateInfo.ID,
                ["Name"]              = estateInfo.Name,
                ["Owner"]             = estateInfo.Owner,
                ["Flags"]             = estateInfo.Flags,
                ["PricePerMeter"]     = estateInfo.PricePerMeter,
                ["BillableFactor"]    = estateInfo.BillableFactor,
                ["SunPosition"]       = estateInfo.SunPosition,
                ["AbuseEmail"]        = estateInfo.AbuseEmail,
                ["CovenantID"]        = estateInfo.CovenantID,
                ["CovenantTimestamp"] = estateInfo.CovenantTimestamp,
                ["UseGlobalTime"]     = estateInfo.UseGlobalTime,
                ["ParentEstateID"]    = estateInfo.ParentEstateID
            };

            using (var conn = new NpgsqlConnection(m_ConnectionString))
            {
                conn.Open();
                conn.InsertInto("estates", dict);
            }
        }
        public override void Update(EstateInfo value)
        {
            var dict = new Dictionary <string, object>
            {
                ["ID"]                = value.ID,
                ["Name"]              = value.Name,
                ["Owner"]             = value.Owner,
                ["Flags"]             = (uint)value.Flags,
                ["PricePerMeter"]     = value.PricePerMeter,
                ["BillableFactor"]    = value.BillableFactor,
                ["SunPosition"]       = value.SunPosition,
                ["AbuseEmail"]        = value.AbuseEmail,
                ["CovenantID"]        = value.CovenantID,
                ["CovenantTimestamp"] = value.CovenantTimestamp,
                ["UseGlobalTime"]     = value.UseGlobalTime,
                ["ParentEstateID"]    = value.ParentEstateID
            };

            using (var conn = new NpgsqlConnection(m_ConnectionString))
            {
                conn.Open();
                conn.ReplaceInto("estates", dict, new string[] { "ID" }, m_EnableOnConflict);
            }
        }
        public bool Run()
        {
            m_Log.InfoFormat("Testing Execution of {1} ({0})", m_AssetID, m_ScriptFile);
            IScriptAssembly scriptAssembly = null;

            try
            {
                using (var reader = new StreamReader(m_ScriptFile, new UTF8Encoding(false)))
                {
                    scriptAssembly = CompilerRegistry.ScriptCompilers.Compile(AppDomain.CurrentDomain, UGUI.Unknown, m_AssetID, reader, includeOpen: OpenFile);
                }
                m_Log.InfoFormat("Compilation of {1} ({0}) successful", m_AssetID, m_ScriptFile);
            }
            catch (CompilerException e)
            {
                m_Log.ErrorFormat("Compilation of {1} ({0}) failed: {2}", m_AssetID, m_ScriptFile, e.Message);
                m_Log.WarnFormat("Stack Trace:\n{0}", e.StackTrace);
                return(false);
            }
            catch (Exception e)
            {
                m_Log.ErrorFormat("Compilation of {1} ({0}) failed: {2}", m_AssetID, m_ScriptFile, e.Message);
                m_Log.WarnFormat("Stack Trace:\n{0}", e.StackTrace);
                return(false);
            }

            RegionInfo rInfo;

            try
            {
                var estate = new EstateInfo
                {
                    ParentEstateID = 1,
                    ID             = m_EstateID,
                    Owner          = m_EstateOwner,
                    Name           = m_EstateName
                };
                m_EstateService.Add(estate);
                m_EstateService.RegionMap[m_RegionID] = m_EstateID;

                rInfo = new RegionInfo
                {
                    Name        = m_RegionName,
                    ID          = m_RegionID,
                    Location    = m_RegionLocation,
                    Size        = m_RegionSize,
                    ProductName = m_ProductName,
                    ServerPort  = (uint)m_RegionPort,
                    Owner       = m_RegionOwner,
                    Flags       = RegionFlags.RegionOnline,
                    Access      = m_RegionAccess,
                    GridURI     = m_GatekeeperURI
                };
                m_RegionStorage.RegisterRegion(rInfo);
            }
            catch (Exception e)
            {
                m_Log.Error("Registration of region failed", e);
                return(false);
            }

            SceneInterface scene;

            try
            {
                scene = m_SceneFactory.Instantiate(rInfo);
            }
            catch (Exception e)
            {
                m_Log.ErrorFormat("Running of {1} ({0}) failed: Failed to start region ID {2}: {3}: {4}\n{5}", m_AssetID, m_ScriptFile, m_RegionID, e.GetType().FullName, e.Message, e.StackTrace);
                return(false);
            }

            try
            {
                m_Scenes.Add(scene);
                scene.LoadSceneSync();
            }
            catch (Exception e)
            {
                m_Log.Error("Starting region failed", e);
                return(false);
            }

            try
            {
                ExperienceServiceInterface experienceService = scene.ExperienceService;
                if (experienceService != null)
                {
                    experienceService.Add(new ExperienceInfo
                    {
                        ID         = m_ExperienceID,
                        Creator    = m_ScriptOwner,
                        Owner      = m_ScriptOwner,
                        Properties = ExperiencePropertyFlags.Grid /* make this grid-wide since otherwise we have to configure a lot more */
                    });
                }
                else
                {
                    m_ExperienceID = UEI.Unknown;
                }
            }
            catch (Exception e)
            {
                m_Log.Error("Creating experience failed", e);
                return(false);
            }

            if (!string.IsNullOrEmpty(m_AssetSourcesConfig))
            {
                AddAssets(scene.AssetService);
            }

            if (!string.IsNullOrEmpty(m_ScriptStatesConfig))
            {
                AddScriptStates();
            }

            if (!string.IsNullOrEmpty(m_LoadOarFileName))
            {
                try
                {
                    using (var s = new FileStream(m_LoadOarFileName, FileMode.Open))
                    {
                        OAR.Load(m_Scenes, scene, OAR.LoadOptions.PersistUuids, s);
                    }
                }
                catch (Exception e)
                {
                    m_Log.Error("Loading oar failed", e);
                    return(false);
                }
            }

            m_Runner.OtherThreadResult = false;

            foreach (string additionalObject in m_AdditionalObjectConfigs)
            {
                m_Log.InfoFormat("Adding object from section {0}", additionalObject);
                if (!TryAddAdditionalObject(scene, additionalObject))
                {
                    m_Log.Info("Failed to add object");
                    return(false);
                }
            }

            try
            {
                var grp = new ObjectGroup
                {
                    RezzingObjectID = m_RezzingObjID
                };
                var part = new ObjectPart(m_ObjectID);
                grp.Add(1, part.ID, part);
                part.ObjectGroup    = grp;
                grp.Owner           = m_ObjectOwner;
                grp.LastOwner       = m_ObjectLastOwner;
                part.Creator        = m_ObjectCreator;
                part.Name           = m_ObjectName;
                part.Description    = m_ObjectDescription;
                part.GlobalPosition = m_Position;
                part.GlobalRotation = m_Rotation;
                part.BaseMask       = m_ObjectPermissionsBase;
                part.OwnerMask      = m_ObjectPermissionsOwner;
                part.NextOwnerMask  = m_ObjectPermissionsNext;
                part.EveryoneMask   = m_ObjectPermissionsEveryone;
                part.GroupMask      = m_ObjectPermissionsGroup;

                var item = new ObjectPartInventoryItem(m_ItemID)
                {
                    AssetType     = AssetType.LSLText,
                    AssetID       = m_AssetID,
                    InventoryType = InventoryType.LSL,
                    LastOwner     = m_ScriptLastOwner,
                    Creator       = m_ScriptCreator,
                    Owner         = m_ScriptOwner,
                    Name          = m_ScriptName,
                    Description   = m_ScriptDescription
                };
                item.Permissions.Base      = m_ScriptPermissionsBase;
                item.Permissions.Current   = m_ScriptPermissionsOwner;
                item.Permissions.EveryOne  = m_ScriptPermissionsEveryone;
                item.Permissions.Group     = m_ScriptPermissionsGroup;
                item.Permissions.NextOwner = m_ScriptPermissionsNext;
                item.ExperienceID          = m_ExperienceID;

                scene.Add(grp);

                foreach (string invconfig in m_AdditionalInventoryConfigs)
                {
                    AddAdditionalInventory(part, invconfig);
                }
                ChatServiceInterface chatService = scene.GetService <ChatServiceInterface>();
                if (chatService != null)
                {
                    chatService.AddRegionListener(PUBLIC_CHANNEL, string.Empty, UUID.Zero, "", GetUUID, null, PublicChannelLog);
                    chatService.AddRegionListener(DEBUG_CHANNEL, string.Empty, UUID.Zero, "", GetUUID, null, DebugChannelLog);
                }
                byte[] serializedState;
                m_ScriptStates.TryGetValue(item.ID, out serializedState);
                ScriptInstance scriptInstance = scriptAssembly.Instantiate(part, item, serializedState);
                part.Inventory.Add(item);
                item.ScriptInstance = scriptInstance;
                item.ScriptInstance.Start(m_StartParameter);
                m_Log.Info("Script started");

                if (Debugger.IsAttached)
                {
                    m_RunTimeoutEvent.WaitOne();
                }
                else
                {
                    m_KillTimer = new Timer(KillTimerCbk, null, m_TimeoutMs + 5000, Timeout.Infinite);
                    m_RunTimeoutEvent.WaitOne(m_TimeoutMs);
                }
                return(m_Runner.OtherThreadResult);
            }
            catch (Exception e)
            {
                m_Log.Error("Starting script failed", e);
                return(false);
            }
        }
Exemple #21
0
 public override void SendEstateUpdateInfo(UUID invoice, UUID transactionID, EstateInfo estate, UUID fromSceneID, bool sendToAgentOnly = true)
 {
     /* ignored */
 }
 public abstract bool TryGetValue(string estateName, out EstateInfo estateInfo);
 public abstract bool TryGetValue(uint estateID, out EstateInfo estateInfo);
 public abstract void Update(EstateInfo estateInfo);
 public abstract void Add(EstateInfo estateInfo);
 public override void Add(EstateInfo estateInfo)
 {
     m_Data.Add(estateInfo.ID, new EstateInfo(estateInfo));
 }
 public override void Update(EstateInfo estateInfo)
 {
     m_Data[estateInfo.ID] = new EstateInfo(estateInfo);
 }
Exemple #28
0
 public abstract void SendEstateUpdateInfo(UUID invoice, UUID transactionID, EstateInfo estate, UUID fromSceneID, bool sendToAgentOnly = true);
        public bool Run()
        {
            m_Log.Info("Creating estate");
            EstateInfo info = new EstateInfo()
            {
                Name  = "Test Estate",
                ID    = 101,
                Owner = m_EstateOwner
            };

            m_EstateService.Add(info);

            m_Log.Info("Testing non-existence of Estate Accessor 1");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing non-existence of Estate Accessor 2");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 0)
            {
                return(false);
            }

            m_Log.Info("Enabling Estate Accessor 1");
            m_EstateService.EstateAccess[info.ID, m_EstateAccessor1] = true;

            m_Log.Info("Testing existence of Estate Accessor 1");
            if (!m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing non-existence of Estate Accessor 2");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 1)
            {
                return(false);
            }

            m_Log.Info("Enabling Estate Accessor 2");
            m_EstateService.EstateAccess[info.ID, m_EstateAccessor2] = true;

            m_Log.Info("Testing existence of Estate Accessor 1");
            if (!m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing existence of Estate Accessor 2");
            if (!m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 2)
            {
                return(false);
            }

            m_Log.Info("Disabling Estate Accessor 1");
            m_EstateService.EstateAccess[info.ID, m_EstateAccessor1] = false;

            m_Log.Info("Testing non-existence of Estate Accessor 1");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing existence of Estate Accessor 2");
            if (!m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 1)
            {
                return(false);
            }

            m_Log.Info("Disabling Estate Accessor 2");
            m_EstateService.EstateAccess[info.ID, m_EstateAccessor2] = false;

            m_Log.Info("Testing non-existence of Estate Accessor 1");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing non-existence of Estate Accessor 2");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 0)
            {
                return(false);
            }

            m_Log.Info("Testing deletion");
            if (!m_EstateService.Remove(info.ID))
            {
                return(false);
            }
            return(true);
        }
Exemple #30
0
        public bool Run()
        {
            m_Log.Info("Creating estates");
            EstateInfo info1 = new EstateInfo()
            {
                Name  = "Test Estate 1",
                ID    = 101,
                Owner = m_EstateOwner1
            };

            m_EstateService.Add(info1);

            EstateInfo info2 = new EstateInfo()
            {
                Name  = "Test Estate 2",
                ID    = 102,
                Owner = m_EstateOwner2
            };

            m_EstateService.Add(info2);

            m_Log.Info("Adding regions");
            m_EstateService.RegionMap[m_EstateRegion1] = 101;
            m_EstateService.RegionMap[m_EstateRegion2] = 102;

            m_Log.Info("Test that estate 101 has region 1 on list");
            List <UUID> infoList1 = m_EstateService.RegionMap[101];

            if (infoList1.Count != 1 || !infoList1.Contains(m_EstateRegion1))
            {
                return(false);
            }

            m_Log.Info("Test that estate 101 has region 1 on explicit");
            if (m_EstateService.RegionMap[m_EstateRegion1] != 101)
            {
                return(false);
            }

            m_Log.Info("Test that estate 102 has region 2");
            List <UUID> infoList2 = m_EstateService.RegionMap[102];

            if (infoList2.Count != 1 || !infoList2.Contains(m_EstateRegion2))
            {
                return(false);
            }

            m_Log.Info("Test that estate 102 has region 2 on explicit");
            if (m_EstateService.RegionMap[m_EstateRegion2] != 102)
            {
                return(false);
            }

            m_Log.Info("exchange regions between estates");
            m_EstateService.RegionMap[m_EstateRegion1] = 102;
            m_EstateService.RegionMap[m_EstateRegion2] = 101;

            m_Log.Info("Test that estate 101 has region 2 on list");
            infoList1 = m_EstateService.RegionMap[101];
            if (infoList1.Count != 1 || !infoList1.Contains(m_EstateRegion2))
            {
                return(false);
            }

            m_Log.Info("Test that estate 101 has region 2 on explicit");
            if (m_EstateService.RegionMap[m_EstateRegion2] != 101)
            {
                return(false);
            }

            m_Log.Info("Test that estate 102 has region 1");
            infoList2 = m_EstateService.RegionMap[102];
            if (infoList2.Count != 1 || !infoList2.Contains(m_EstateRegion1))
            {
                return(false);
            }

            m_Log.Info("Test that estate 102 has region 1 on explicit");
            if (m_EstateService.RegionMap[m_EstateRegion2] != 101)
            {
                return(false);
            }

            m_Log.Info("Testing deletion");
            if (!m_EstateService.Remove(info1.ID))
            {
                return(false);
            }
            if (!m_EstateService.Remove(info2.ID))
            {
                return(false);
            }
            return(true);
        }