Пример #1
0
        private void AddUpdate(RegionChange newRegionData)
        {
            //Output("Add update: " + newRegionData.Name);

            MySqlCommand cmd = new MySqlCommand(cmdAddUpdate, db);

            cmd.Parameters.AddWithValue("RegionHandle", newRegionData.RegionHandle);
            cmd.Parameters.AddWithValue("Type", newRegionData.Change);
            cmd.Parameters.AddWithValue("Name", newRegionData.Name);
            cmd.Parameters.AddWithValue("Access", (sbyte?)newRegionData.Access);
            cmd.Parameters.AddWithValue("X", newRegionData.X);
            cmd.Parameters.AddWithValue("Y", newRegionData.Y);
            cmd.Parameters.AddWithValue("AgentCount", newRegionData.AgentCount);

            int rowsAffected = 0;

            try
            {
                rowsAffected = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Output("Failed to add region '" + newRegionData.Name + "': " + ex.Message);
            }
        }
Пример #2
0
        public void ProcessData(RegionData newRegionData)
        {
            if (RegionMap.ContainsKey(newRegionData.RegionHandle))
            {
                RegionMap[newRegionData.RegionHandle].StillExists = true;

                RegionTable previousData = RegionMap[newRegionData.RegionHandle];
                if (!previousData.IsEqualTo(newRegionData))
                {
                    Output("Region update for: " + previousData.Name);

                    RegionChange changed = new RegionChange();
                    changed.RegionHandle = previousData.RegionHandle;
                    changed.Change       = RegionChange.ChangeType.Update;

                    if (previousData.Name != newRegionData.Name)
                    {
                        Output("  Name: " + previousData.Name + " -> " + newRegionData.Name);
                        changed.Name = newRegionData.Name;
                    }
                    if (previousData.Access != newRegionData.Access)
                    {
                        Output("  Access: " + previousData.Access + " -> " + newRegionData.Access);
                        changed.Access = newRegionData.Access;
                    }
                    if (previousData.X != newRegionData.X)
                    {
                        Output("  X: " + previousData.X + " -> " + newRegionData.X);
                        changed.X = newRegionData.X;
                    }
                    if (previousData.Y != newRegionData.Y)
                    {
                        Output("  Y: " + previousData.Y + " -> " + newRegionData.Y);
                        changed.Y = newRegionData.Y;
                    }
                    if (previousData.AgentCount != newRegionData.AgentCount)
                    {
                        Output("  AgentCount: " + previousData.AgentCount + " -> " + newRegionData.AgentCount);
                        changed.AgentCount = newRegionData.AgentCount;
                    }

                    UpdateRegion(newRegionData);
                    RegionChanges.Add(changed);
                }
            }
            else
            {
                RegionChange changed = new RegionChange();
                changed.RegionHandle = newRegionData.RegionHandle;
                changed.Change       = RegionChange.ChangeType.Add;
                RegionChanges.Add(changed);

                //Output("New region: " + newRegionData.Name);
                AddRegion(newRegionData);
            }
        }