Ejemplo n.º 1
0
    protected void Display_AddEdit()
    {
        RegionData rRegion = new RegionData();
        if (m_iID > 0)
        {
            rRegion = m_refRegion.GetItem(this.m_iID);
        }

        Util_BindCountries();

        txt_name.Text = rRegion.Name;
        lbl_id.Text = rRegion.Id.ToString();
        chk_enabled.Checked = (countryId > 0) || rRegion.Enabled;
        txt_code.Text = rRegion.Code;
        drp_country.SelectedIndex = Util_GetCountryIndex(Convert.ToInt32(rRegion.CountryId));
        chk_addanother.Checked = countryId > 0;

        tr_addanother.Visible = m_iID == 0;
        tr_id.Visible = m_iID > 0;
        pnl_view.Visible = true;
        pnl_viewall.Visible = false;

        TotalPages.Visible = false;
        CurrentPage.Visible = false;
        lnkBtnPreviousPage.Visible = false;
        NextPage.Visible = false;
        LastPage.Visible = false;
        FirstPage.Visible = false;
        PageLabel.Visible = false;
        OfLabel.Visible = false;
    }
 public RegionCombinerLargeLandChannel(RegionData regData, ILandChannel rootRegionLandChannel,
                                       List<RegionData> regionConnections)
 {
     RegData = regData;
     RootRegionLandChannel = rootRegionLandChannel;
     RegionConnections = regionConnections;
 }
Ejemplo n.º 3
0
        public Region(int id)
        {
            _creaturesRWLS = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
            _propsRWLS = new ReaderWriterLockSlim();
            _itemsRWLS = new ReaderWriterLockSlim();

            this.Id = id;

            _creatures = new Dictionary<long, Creature>();
            _props = new Dictionary<long, Prop>();
            _items = new Dictionary<long, Item>();

            _clients = new HashSet<ChannelClient>();

            _regionData = AuraData.RegionInfoDb.Find(this.Id);
            if (_regionData == null)
            {
                Log.Warning("Region: No data found for '{0}'.", this.Id);
                return;
            }

            this.Collissions = new RegionCollision(_regionData.X1, _regionData.Y1, _regionData.X2, _regionData.Y2);
            this.Collissions.Init(_regionData);

            this.LoadClientProps();
        }
 public RegionCombinerLargeLandChannel(RegionData regData, IParcelManagementModule rootRegionLandChannel,
                                       List<RegionData> regionConnections)
 {
     RegData = regData;
     RootRegionLandChannel = rootRegionLandChannel;
     RegionConnections = regionConnections;
 }
 public void AddRegion(RegionData rData, ITerrainChannel thisRegionTerrainChannel)
 {
     if (RegData == null)
     {
         //Root region
         RegData = rData;
     }
     RegionConnections.Add(rData, thisRegionTerrainChannel);
     RegData.RegionScene.Heightmap = this;
 }
 public void AddRegion(RegionData rData, ITerrainChannel thisRegionTerrainChannel)
 {
     if (RegData == null)
     {
         //Root region
         RegData = rData;
     }
     RegionConnections.Add(rData, thisRegionTerrainChannel);
     RegData.RegionScene.RegisterModuleInterface<ITerrainChannel>(this);
 }
Ejemplo n.º 7
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            RegionData<DateTime> regionSource = new RegionData<DateTime>(new DateTime(2012,12,10),new DateTime(2012,12,20));

            RegionData<DateTime> regionTarget1 = new RegionData<DateTime>(new  DateTime(2012,12,15),new DateTime(2012,12,18));
            this.Literal1.Text = string.Format("时间15-18号,跟目标区间10-20号,有交集:{0}<br/>", RegionHelper.HasOverlap(regionSource, regionTarget1));

            RegionData<DateTime> regionTarget2 = new RegionData<DateTime>(new DateTime(2012, 12, 15), new DateTime(2012, 12, 22));
            this.Literal1.Text += string.Format("时间15-22号,跟目标区间10-20号,有交集:{0}<br/>", RegionHelper.HasOverlap(regionSource, regionTarget2));

            RegionData<DateTime> regionTarget3 = new RegionData<DateTime>(new DateTime(2012, 12, 9), new DateTime(2012, 12, 18));
            this.Literal1.Text += string.Format("时间9-18号,跟目标区间10-22号,有交集:{0}<br/>", RegionHelper.HasOverlap(regionSource, regionTarget3));

            RegionData<DateTime> regionTarget4 = new RegionData<DateTime>(new DateTime(2012, 12, 9), new DateTime(2012, 12, 22));
            this.Literal1.Text += string.Format("时间9-22号,跟目标区间10-22号,有交集:{0}<br/>", RegionHelper.HasOverlap(regionSource, regionTarget4));

            RegionData<DateTime> regionTarget5 = new RegionData<DateTime>(new DateTime(2012, 12, 8), new DateTime(2012, 12, 9));
            this.Literal1.Text += string.Format("时间8-9号,跟目标区间10-22号,有交集:{0}<br/>", RegionHelper.HasOverlap(regionSource, regionTarget5));
        }
 public override float getDTime(RegionData d)
 {
     return(0.1f);
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Loads the regions.
        /// </summary>
        /// <returns>The regions.</returns>
        /// <param name="account">Account who wants the load the regions.</param>
        /// <param name="regionPositions">Positions of the regions.</param>
        public RegionData LoadRegions(
            Core.Models.Account account,
            Core.Models.RegionPosition[] regionPositions)
        {
            // List<@base.model.Region>, List<@base.control.action.Action>
            var controller = Core.Controllers.Controller.Instance;
            var regionManagerC = controller.RegionManagerController;

            var accountC = (Server.Controllers.AccountController)account.Control;

            var entityDict = new LinkedList<LinkedList<Core.Models.Entity>>();
            var actionDict = new LinkedList<LinkedList<Core.Models.Action>>();

            var lockedRegions = new LinkedList<Core.Models.Region>();
            try
            {
                foreach (var regionPosition in regionPositions)
                {
                    var region = regionManagerC.GetRegion(regionPosition);
                    if (region.Exist)
                    {
                        region.LockReader();
                        lockedRegions.AddLast(region);
                    }
                }

                foreach (var regionPosition in regionPositions)
                {
                    var region = regionManagerC.GetRegion(regionPosition);
                    if (!region.Exist)
                    {
                        continue;
                    }

                    var status = accountC.GetRegionStatus(regionPosition);
                    var newStatus = new DateTime();
                    // account has't loaded the region
                    /*if (status == null)
                    {
                        var entities = region.GetEntities();
                        entityDict.AddFirst(entities.Entities);
                        newStatus = entities.DateTime;
                    }
                    else*/
                    {
                        // account has already loaded the region - now just load changes (actions)
                        var actions = region.GetCompletedActions(status.Value);
                        actionDict.AddFirst(actions.Actions);
                        newStatus = actions.DateTime;
                    }
                    accountC.RefreshRegion(regionPosition, newStatus);
                }
            }
            finally
            {
                foreach (var region in lockedRegions)
                {
                    region.ReleaseReader();
                }
            }

            var regionData = new RegionData();
            regionData.ActionDict = actionDict;
            regionData.EntityDict = entityDict;
            return regionData;
        }
Ejemplo n.º 10
0
 public TaskDungeonInstance(ushort ID, GameTimer.TimeManager time, RegionData dat)
     : base(ID, time, dat)
 {
 }
Ejemplo n.º 11
0
        public bool Store(RegionData data)
        {
            if (m_useStaticInstance && Instance != this)
                return Instance.Store(data);

//            m_log.DebugFormat(
//                "[NULL REGION DATA]: Storing region {0} {1}, scope {2}", data.RegionName, data.RegionID, data.ScopeID);

            m_regionData[data.RegionID] = data;

            return true;
        }
Ejemplo n.º 12
0
        public List <RegionData> RunCommand(MySqlCommand cmd)
        {
            List <RegionData> retList = new List <RegionData>();

            using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
            {
                dbcon.Open();
                cmd.Connection = dbcon;

                using (IDataReader result = cmd.ExecuteReader())
                {
                    while (result.Read())
                    {
                        RegionData ret = new RegionData();
                        ret.Data = new Dictionary <string, object>();

                        ret.RegionID = DBGuid.FromDB(result["uuid"]);
                        ret.ScopeID  = DBGuid.FromDB(result["ScopeID"]);

                        ret.RegionName = result["regionName"].ToString();
                        ret.posX       = Convert.ToInt32(result["locX"]);
                        ret.posY       = Convert.ToInt32(result["locY"]);
                        ret.sizeX      = Convert.ToInt32(result["sizeX"]);
                        ret.sizeY      = Convert.ToInt32(result["sizeY"]);

                        if (m_ColumnNames == null)
                        {
                            m_ColumnNames = new List <string>();

                            DataTable schemaTable = result.GetSchemaTable();

                            foreach (DataRow row in schemaTable.Rows)
                            {
                                if (row["ColumnName"] != null)
                                {
                                    m_ColumnNames.Add(row["ColumnName"].ToString());
                                }
                            }
                        }

                        foreach (string s in m_ColumnNames)
                        {
                            if (s == "uuid")
                            {
                                continue;
                            }

                            if (s == "ScopeID")
                            {
                                continue;
                            }

                            if (s == "regionName")
                            {
                                continue;
                            }

                            if (s == "locX")
                            {
                                continue;
                            }

                            if (s == "locY")
                            {
                                continue;
                            }

                            ret.Data[s] = result[s].ToString();
                        }

                        retList.Add(ret);
                    }
                }
            }

            return(retList);
        }
Ejemplo n.º 13
0
    protected void Process_AddEdit()
    {
        RegionData rRegion = null;
        if (this.m_iID > 0)
        {
            rRegion = m_refRegion.GetItem(this.m_iID);
            rRegion.Name = (string)txt_name.Text;
            rRegion.CountryId = Convert.ToInt64(drp_country.SelectedValue);
            rRegion.Code = (string)txt_code.Text;
            rRegion.Enabled = System.Convert.ToBoolean(chk_enabled.Checked);
            m_refRegion.Update(rRegion);
            Response.Redirect(m_sPageName + "?action=view&id=" + m_iID.ToString(), false);
        }
        else
        {
            rRegion = new RegionData(txt_name.Text, Convert.ToInt64(drp_country.SelectedValue), txt_code.Text, chk_enabled.Checked);
            m_refRegion.Add(rRegion);
            if (chk_addanother.Checked)
            {
                Response.Redirect(m_sPageName + "?action=addedit&country=" + drp_country.SelectedValue, false);
            }
            else
            {
                Response.Redirect(m_sPageName, false);
            }
        }

        TotalPages.Visible = false;
        CurrentPage.Visible = false;
        lnkBtnPreviousPage.Visible = false;
        NextPage.Visible = false;
        LastPage.Visible = false;
        FirstPage.Visible = false;
        PageLabel.Visible = false;
        OfLabel.Visible = false;
    }
Ejemplo n.º 14
0
 public override double buffSwitch(RegionData a)
 {
     return(a.earthquakeBuff);
 }
Ejemplo n.º 15
0
    protected void Process_ViewAddress()
    {
        AddressData aAddress = null;
        long originalAddressId = this.m_iID;

        //need to get customer before address update to see if default addresses have changed.
        cCustomer = CustomerManager.GetItem(m_iCustomerId);
        aAddress = this.m_iID > 0 ? (AddressManager.GetItem(this.m_iID)) : (new AddressData());

        aAddress.Name = (string)txt_address_name.Text;
        aAddress.Company = (string)txt_address_company.Text;
        aAddress.AddressLine1 = (string)txt_address_line1.Text;
        aAddress.AddressLine2 = (string)txt_address_line2.Text;
        aAddress.City = (string)txt_address_city.Text;
        RegionData rData = new RegionData();
        rData.Id = Convert.ToInt64(drp_address_region.SelectedValue);
        aAddress.Region = rData;
        aAddress.PostalCode = (string)txt_address_postal.Text;
        CountryData cData = new CountryData();
        cData.Id = System.Convert.ToInt32(drp_address_country.SelectedValue);
        aAddress.Country = cData;
        aAddress.Phone = (string)txt_address_phone.Text;

        if (this.m_iID > 0)
        {
            AddressManager.Update(aAddress);
        }
        else
        {
            AddressManager.Add(aAddress, m_iCustomerId);
        }

        this.m_iID = aAddress.Id;

        bool updateBilling = false;
        bool updateShipping = false;

        if (chk_default_billing.Checked)
        {
            cCustomer.BillingAddressId = aAddress.Id;
            updateBilling = true;
        }

        if (chk_default_shipping.Checked)
        {
            cCustomer.ShippingAddressId = aAddress.Id;
            updateShipping = true;
        }

        //if the default addresses have been unchecked - need to reset them to 0.
        if (!chk_default_billing.Checked && cCustomer.BillingAddressId == originalAddressId)
        {
            cCustomer.BillingAddressId = 0;
            updateBilling = true;
        }

        if (!chk_default_shipping.Checked && cCustomer.ShippingAddressId == originalAddressId)
        {
            cCustomer.ShippingAddressId = 0;
            updateShipping = true;
        }

        if (updateBilling)
        {
            CustomerManager.ChangeBillingAddress(m_iCustomerId, cCustomer.BillingAddressId);
        }
        if (updateShipping)
        {
            CustomerManager.ChangeShippingAddress(m_iCustomerId, cCustomer.ShippingAddressId);
        }

        string pagemode = (string)("&page=" + Request.QueryString["page"]);
        Response.Redirect(this.m_sPageName + "?action=viewaddress&id=" + this.m_iID.ToString() + "&customerid=" + this.m_iCustomerId.ToString() + pagemode, false);
    }
Ejemplo n.º 16
0
 public abstract void refreshLevel(RegionData data);
        public void ObjectsShouldMergeProperties()
        {
            RegionData rdMerged = rd1WithCorruptionData.merge(rd1WithPopulationData);

            Assert.AreEqual(rd1WithCorruptionAndPopulationData, rdMerged);
        }
Ejemplo n.º 18
0
        /// <summary>
        /// 初始化区域管理器
        /// </summary>
        /// <param name="slotContainerList">插槽容器链表</param>
        /// <param name="connectorContainerList">连接线链表</param>
        /// <param name="canvasSize">绘图板的大小</param>
        public void Init(List<SlotContainer> slotContainerList, List<ConnectorContainer> connectorContainerList, Size canvasSize, int gridWidth)
        {
            regionDataList.Clear();

            for (int i = 0; i < canvasSize.Width; i += 600)
            {
                for (int j = 0; j < canvasSize.Height; j += 600)
                {
                    Rectangle regionRectangle = Rectangle.Empty;
                    regionRectangle.Location = new Point(i, j);
                    int regionWidth = 600;
                    int regionHeight = 600;

                    if (i + 600 > canvasSize.Width)
                    {
                        regionWidth = canvasSize.Width - i;
                    }

                    if (j + 600 > canvasSize.Height)
                    {
                        regionHeight = canvasSize.Height - j;
                    }

                    regionRectangle.Size = new Size(regionWidth, regionHeight);

                    RegionData regionData = new RegionData(regionRectangle);
                    regionDataList.Add(regionData);
                }
            }

            foreach (SlotContainer slotContainer in slotContainerList)
            {
                foreach (RegionData regionData in regionDataList)
                {
                    if (regionData.IsInRegion(slotContainer.InvalidRectangle))
                    {
                        regionData.Add(slotContainer);
                    }
                }
            }

            foreach (ConnectorContainer line in connectorContainerList)
            {
                foreach (RegionData regionData in regionDataList)
                {
                    if (regionData.IsInRegion(line.InvalidRectangle))
                    {
                        regionData.Add(line);
                    }
                }
            }

            InitCanvasGridBoard(slotContainerList, canvasSize, gridWidth);

            backupRegionData = new RegionData(Rectangle.Empty);
        }
Ejemplo n.º 19
0
 // String describing name and region location of passed region
 private String RegionString(RegionData reg)
 {
     return(String.Format("{0}/{1} at <{2},{3}>",
                          reg.RegionName, reg.RegionID, reg.coordX, reg.coordY));
 }
Ejemplo n.º 20
0
        public string RegisterRegion(UUID scopeID, GridRegion regionInfos)
        {
            IConfig gridConfig = m_config.Configs["GridService"];

            if (regionInfos.RegionID == UUID.Zero)
            {
                return("Invalid RegionID - cannot be zero UUID");
            }

            if (regionInfos.RegionLocY <= Constants.MaximumRegionSize)
            {
                return("Region location reserved for HG links coord Y must be higher than " + (Constants.MaximumRegionSize / 256).ToString());
            }

            String reason = "Region overlaps another region";

            List <RegionData> rdatas = m_Database.Get(
                regionInfos.RegionLocX,
                regionInfos.RegionLocY,
                regionInfos.RegionLocX + regionInfos.RegionSizeX - 1,
                regionInfos.RegionLocY + regionInfos.RegionSizeY - 1,
                scopeID);

            RegionData region = null;

            if (rdatas.Count > 1)
            {
                m_log.WarnFormat("{0} Register region overlaps with {1} regions", LogHeader, scopeID, rdatas.Count);
                return(reason);
            }
            else if (rdatas.Count == 1)
            {
                region = rdatas[0];
            }

            if ((region != null) && (region.RegionID != regionInfos.RegionID))
            {
                // If not same ID and same coordinates, this new region has conflicts and can't be registered.
                m_log.WarnFormat("{0} Register region conflict in scope {1}. {2}", LogHeader, scopeID, reason);
                return(reason);
            }

            if (region != null)
            {
                // There is a preexisting record
                //
                // Get it's flags
                //
                OpenSim.Framework.RegionFlags rflags = (OpenSim.Framework.RegionFlags)Convert.ToInt32(region.Data["flags"]);

                // Is this a reservation?
                //
                if ((rflags & OpenSim.Framework.RegionFlags.Reservation) != 0)
                {
                    // Regions reserved for the null key cannot be taken.
                    if ((string)region.Data["PrincipalID"] == UUID.Zero.ToString())
                    {
                        return("Region location is reserved");
                    }

                    // Treat it as an auth request
                    //
                    // NOTE: Fudging the flags value here, so these flags
                    //       should not be used elsewhere. Don't optimize
                    //       this with the later retrieval of the same flags!
                    rflags |= OpenSim.Framework.RegionFlags.Authenticate;
                }

                if ((rflags & OpenSim.Framework.RegionFlags.Authenticate) != 0)
                {
                    // Can we authenticate at all?
                    //
                    if (m_AuthenticationService == null)
                    {
                        return("No authentication possible");
                    }

                    if (!m_AuthenticationService.Verify(new UUID(region.Data["PrincipalID"].ToString()), regionInfos.Token, 30))
                    {
                        return("Bad authentication");
                    }
                }
            }

            // If we get here, the destination is clear. Now for the real check.

            if (!m_AllowDuplicateNames)
            {
                List <RegionData> dupe = m_Database.Get(Util.EscapeForLike(regionInfos.RegionName), scopeID);
                if (dupe != null && dupe.Count > 0)
                {
                    foreach (RegionData d in dupe)
                    {
                        if (d.RegionID != regionInfos.RegionID)
                        {
                            m_log.WarnFormat("[GRID SERVICE]: Region tried to register using a duplicate name. New region: {0} ({1}), existing region: {2} ({3}).",
                                             regionInfos.RegionName, regionInfos.RegionID, d.RegionName, d.RegionID);
                            return("Duplicate region name");
                        }
                    }
                }
            }

            // If there is an old record for us, delete it if it is elsewhere.
            region = m_Database.Get(regionInfos.RegionID, scopeID);
            if ((region != null) && (region.RegionID == regionInfos.RegionID) &&
                ((region.posX != regionInfos.RegionLocX) || (region.posY != regionInfos.RegionLocY)))
            {
                if ((Convert.ToInt32(region.Data["flags"]) & (int)OpenSim.Framework.RegionFlags.NoMove) != 0)
                {
                    return("Can't move this region");
                }

                if ((Convert.ToInt32(region.Data["flags"]) & (int)OpenSim.Framework.RegionFlags.LockedOut) != 0)
                {
                    return("Region locked out");
                }

                // Region reregistering in other coordinates. Delete the old entry
                m_log.DebugFormat("[GRID SERVICE]: Region {0} ({1}) was previously registered at {2}-{3}. Deleting old entry.",
                                  regionInfos.RegionName, regionInfos.RegionID, regionInfos.RegionCoordX, regionInfos.RegionCoordY);

                try
                {
                    m_Database.Delete(regionInfos.RegionID);
                }
                catch (Exception e)
                {
                    m_log.DebugFormat("[GRID SERVICE]: Database exception: {0}", e);
                }
            }

            // Everything is ok, let's register
            RegionData rdata = RegionInfo2RegionData(regionInfos);

            rdata.ScopeID = scopeID;

            if (region != null)
            {
                int oldFlags = Convert.ToInt32(region.Data["flags"]);

                oldFlags &= ~(int)OpenSim.Framework.RegionFlags.Reservation;

                rdata.Data["flags"] = oldFlags.ToString(); // Preserve flags
            }
            else
            {
                rdata.Data["flags"] = "0";
                if ((gridConfig != null) && rdata.RegionName != string.Empty)
                {
                    int    newFlags   = 0;
                    string regionName = rdata.RegionName.Trim().Replace(' ', '_');
                    newFlags            = ParseFlags(newFlags, gridConfig.GetString("DefaultRegionFlags", String.Empty));
                    newFlags            = ParseFlags(newFlags, gridConfig.GetString("Region_" + regionName, String.Empty));
                    newFlags            = ParseFlags(newFlags, gridConfig.GetString("Region_" + rdata.RegionID.ToString(), String.Empty));
                    rdata.Data["flags"] = newFlags.ToString();
                }
            }

            int flags = Convert.ToInt32(rdata.Data["flags"]);

            flags |= (int)OpenSim.Framework.RegionFlags.RegionOnline;
            rdata.Data["flags"] = flags.ToString();

            try
            {
                rdata.Data["last_seen"] = Util.UnixTimeSinceEpoch();
                m_Database.Store(rdata);
            }
            catch (Exception e)
            {
                m_log.DebugFormat("[GRID SERVICE]: Database exception: {0}", e);
            }

            m_log.DebugFormat
                ("[GRID SERVICE]: Region {0} ({1}, {2}x{3}) registered at {4},{5} with flags {6}",
                regionInfos.RegionName, regionInfos.RegionID, regionInfos.RegionSizeX, regionInfos.RegionSizeY,
                regionInfos.RegionCoordX, regionInfos.RegionCoordY,
                (OpenSim.Framework.RegionFlags)flags);

            return(String.Empty);
        }
Ejemplo n.º 21
0
        public bool Store(RegionData data)
        {
            if (data.Data.ContainsKey("uuid"))
            {
                data.Data.Remove("uuid");
            }

            if (data.Data.ContainsKey("ScopeID"))
            {
                data.Data.Remove("ScopeID");
            }

            if (data.Data.ContainsKey("regionName"))
            {
                data.Data.Remove("regionName");
            }

            if (data.Data.ContainsKey("posX"))
            {
                data.Data.Remove("posX");
            }

            if (data.Data.ContainsKey("posY"))
            {
                data.Data.Remove("posY");
            }

            if (data.Data.ContainsKey("sizeX"))
            {
                data.Data.Remove("sizeX");
            }

            if (data.Data.ContainsKey("sizeY"))
            {
                data.Data.Remove("sizeY");
            }

            if (data.Data.ContainsKey("locX"))
            {
                data.Data.Remove("locX");
            }

            if (data.Data.ContainsKey("locY"))
            {
                data.Data.Remove("locY");
            }

            if (data.RegionName.Length > 32)
            {
                data.RegionName = data.RegionName.Substring(0, 32);
            }

            string[] fields = new List <string>(data.Data.Keys).ToArray();

            using (MySqlCommand cmd = new MySqlCommand())
            {
                string update = "update `" + m_Realm + "` set locX=?posX, locY=?posY, sizeX=?sizeX, sizeY=?sizeY";

                foreach (string field in fields)
                {
                    update += ", ";
                    update += "`" + field + "` = ?" + field;

                    cmd.Parameters.AddWithValue("?" + field, data.Data[field]);
                }

                update += " where uuid = ?regionID";

                if (data.ScopeID != UUID.Zero)
                {
                    update += " and ScopeID = ?scopeID";
                }

                cmd.CommandText = update;
                cmd.Parameters.AddWithValue("?regionID", data.RegionID.ToString());
                cmd.Parameters.AddWithValue("?regionName", data.RegionName);
                cmd.Parameters.AddWithValue("?scopeID", data.ScopeID.ToString());
                cmd.Parameters.AddWithValue("?posX", data.posX.ToString());
                cmd.Parameters.AddWithValue("?posY", data.posY.ToString());
                cmd.Parameters.AddWithValue("?sizeX", data.sizeX.ToString());
                cmd.Parameters.AddWithValue("?sizeY", data.sizeY.ToString());

                if (ExecuteNonQuery(cmd) < 1)
                {
                    string insert = "insert into `" + m_Realm + "` (`uuid`, `ScopeID`, `locX`, `locY`, `sizeX`, `sizeY`, `regionName`, `" +
                                    String.Join("`, `", fields) + "`) values ( ?regionID, ?scopeID, ?posX, ?posY, ?sizeX, ?sizeY, ?regionName, ?" + String.Join(", ?", fields) + ")";

                    cmd.CommandText = insert;

                    if (ExecuteNonQuery(cmd) < 1)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 22
0
    protected void Display_AddEdit()
    {
        int page_data = _CurrentPageNumber;
        Ektron.Cms.Common.Criteria<TaxClassProperty> TaxClasscriteria = new Ektron.Cms.Common.Criteria<TaxClassProperty>(TaxClassProperty.Name, Ektron.Cms.Common.EkEnumeration.OrderByDirection.Ascending);
        System.Collections.Generic.List<TaxClassData> TaxClassList = new System.Collections.Generic.List<TaxClassData>();
        Ektron.Cms.Common.Criteria<TaxRateProperty> postalCriteria = new Ektron.Cms.Common.Criteria<TaxRateProperty>(TaxRateProperty.PostalCode, EkEnumeration.OrderByDirection.Ascending);
        string postalCode = "0";
        long id = 0;
        TaxApi taxApi = new TaxApi();
        RegionData rRegion = new RegionData();
        Ektron.Cms.Common.Criteria<RegionProperty> criteria = new Ektron.Cms.Common.Criteria<RegionProperty>(RegionProperty.Name, Ektron.Cms.Common.EkEnumeration.OrderByDirection.Ascending);
        int cCountryId = 0;
        int txtClassList = 0;

        Util_BindCountries();

        if (Request.QueryString["postalid"] != "")
        {
            postalCode = Request.QueryString["postalid"];
        }

        if (Request.QueryString["id"] != "")
        {
            id = Convert.ToInt64(Request.QueryString["id"]);
        }

        postalCriteria.PagingInfo.CurrentPage = page_data;
        postalCriteria.AddFilter(TaxRateProperty.TaxTypeId, CriteriaFilterOperator.EqualTo, TaxRateType.PostalSalesTax);

        List<TaxRateData> postalRateList;
        postalRateList = taxApi.GetList(postalCriteria);

        TaxClassList = _TaxClassApi.GetList(TaxClasscriteria);

        txt_name.Text = postalCode;
        if (txt_name.Text == "0" || 0 == txt_name.Text.Length)
        {
            txt_name.Enabled = true;
        }
        else
        {
            txt_name.Enabled = false;
        }
        lbl_id.Text = id.ToString();

        _RegionList = _RegionApi.GetList(criteria);

        cCountryId = System.Convert.ToInt32(drp_country.SelectedValue);
        Util_BindRegions(cCountryId);

        ltr_txtClass.Text = "<table class=\"ektronGrid\">";
        for (txtClassList = 0; txtClassList <= TaxClassList.Count - 1; txtClassList++)
        {
            PostalCodeTaxRateData postalRegion = new PostalCodeTaxRateData();
            postalRegion = (PostalCodeTaxRateData)taxApi.GetItemByPostalId(TaxClassList[txtClassList].Id, id);
            if (postalRegion != null)
            {
                criteria.AddFilter(RegionProperty.Id, CriteriaFilterOperator.EqualTo, postalRegion.RegionId);
                _RegionList = _RegionApi.GetList(criteria);
                drp_region.SelectedValue = _RegionList[0].Id.ToString();
                cCountryId = System.Convert.ToInt32(_RegionList[0].CountryId);
                drp_country.SelectedValue = cCountryId.ToString();
                Util_BindRegions(cCountryId);
            }

            ltr_txtClass.Text += "<tr>";
            ltr_txtClass.Text += "   <td class=\"label\">" + TaxClassList[txtClassList].Name + "</td>";
            if (taxApi.GetItemByPostalId(TaxClassList[txtClassList].Id, id) == null)
            {
                ltr_txtClass.Text += "   <td class=\"value\">";
                ltr_txtClass.Text += "       <input type=\"text\" name=\"txtClassRate" + txtClassList + "\" id=\"txtClassRate" + txtClassList + "\" value=\"0\" />%";
                ltr_txtClass.Text += "   </td>";
            }
            else
            {
                ltr_txtClass.Text += "   <td class=\"value\">";
                ltr_txtClass.Text += "       <input type=\"text\" name=\"txtClassRate" + txtClassList + "\" id=\"txtClassRate" + txtClassList + "\" value=\"" + taxApi.GetItemByPostalId(TaxClassList[txtClassList].Id, id).Rate * 100 + "\"/>%";
                ltr_txtClass.Text += "   </td>";
            }
            ltr_txtClass.Text += "</tr>";
        }
        ltr_txtClass.Text += "</table>";

        tr_id.Visible = m_iID > 0;
        pnl_view.Visible = true;
        pnl_viewall.Visible = false;

        if (this.m_iID > 0)
        {
            drp_country.Enabled = false;
            drp_region.Enabled = false;
        }

        TotalPages.Visible = false;
        CurrentPage.Visible = false;
        lnkBtnPreviousPage.Visible = false;
        NextPage.Visible = false;
        LastPage.Visible = false;
        FirstPage.Visible = false;
        PageLabel.Visible = false;
        OfLabel.Visible = false;
    }
Ejemplo n.º 23
0
        public bool Store(RegionData data)
        {
            if (data.Data.ContainsKey("uuid"))
                data.Data.Remove("uuid");
            if (data.Data.ContainsKey("ScopeID"))
                data.Data.Remove("ScopeID");
            if (data.Data.ContainsKey("regionName"))
                data.Data.Remove("regionName");
            if (data.Data.ContainsKey("posX"))
                data.Data.Remove("posX");
            if (data.Data.ContainsKey("posY"))
                data.Data.Remove("posY");
            if (data.Data.ContainsKey("sizeX"))
                data.Data.Remove("sizeX");
            if (data.Data.ContainsKey("sizeY"))
                data.Data.Remove("sizeY");
            if (data.Data.ContainsKey("locX"))
                data.Data.Remove("locX");
            if (data.Data.ContainsKey("locY"))
                data.Data.Remove("locY");

            string[] fields = new List<string>(data.Data.Keys).ToArray();

            using (SqliteCommand cmd = new SqliteCommand())
            {
                string update = "update '" + m_Realm + "' set locX=:posX, locY=:posY, sizeX=:sizeX, sizeY=:sizeY";
                foreach (string field in fields)
                {
                    update += ", ";
                    update += "`" + field + "` = :" + field;

                    cmd.Parameters.AddWithValue(":" + field, data.Data[field]);
                }

                update += " where uuid = :regionID";

                if (data.ScopeID != UUID.Zero)
                    update += " and ScopeID = :scopeID";

                cmd.CommandText = update;
                cmd.Parameters.AddWithValue(":regionID", data.RegionID.ToString());
                cmd.Parameters.AddWithValue(":regionName", data.RegionName);
                cmd.Parameters.AddWithValue(":scopeID", data.ScopeID.ToString());
                cmd.Parameters.AddWithValue(":posX", data.posX.ToString());
                cmd.Parameters.AddWithValue(":posY", data.posY.ToString());
                cmd.Parameters.AddWithValue(":sizeX", data.sizeX.ToString());
                cmd.Parameters.AddWithValue(":sizeY", data.sizeY.ToString());
                if (ExecuteNonQuery(cmd) < 1)
                {
                    string insert = "insert into '" + m_Realm + "' ('uuid', 'ScopeID', 'locX', 'locY', 'sizeX', 'sizeY', 'regionName', '" +
                            String.Join("', '", fields) +
                            "') values ( :regionID, :scopeID, :posX, :posY, :sizeX, :sizeY, :regionName, :" + String.Join(", :", fields) + ")";

                    cmd.CommandText = insert;

                    if (ExecuteNonQuery(cmd) < 1)
                    {
                        return false;
                    }
                }
            }

            return true;
        }
Ejemplo n.º 24
0
 public override float getDTime(RegionData d)
 {
     return(1.5f + (2.5f + riotLevel * 8) * UnityEngine.Random.Range(0f, 1f));
 }
Ejemplo n.º 25
0
        public List<RegionData> RunCommand(MySqlCommand cmd)
        {
            List<RegionData> retList = new List<RegionData>();

            IDataReader result = ExecuteReader(cmd);

            while (result.Read())
            {
                RegionData ret = new RegionData();
                ret.Data = new Dictionary<string, object>();

                UUID regionID;
                UUID.TryParse(result["uuid"].ToString(), out regionID);
                ret.RegionID = regionID;
                UUID scope;
                UUID.TryParse(result["ScopeID"].ToString(), out scope);
                ret.ScopeID = scope;
                ret.RegionName = result["regionName"].ToString();
                ret.posX = Convert.ToInt32(result["locX"]);
                ret.posY = Convert.ToInt32(result["locY"]);
                ret.sizeX = Convert.ToInt32(result["sizeX"]);
                ret.sizeY = Convert.ToInt32(result["sizeY"]);

                if (m_ColumnNames == null)
                {
                    m_ColumnNames = new List<string>();

                        DataTable schemaTable = result.GetSchemaTable();
                        foreach (DataRow row in schemaTable.Rows)
                        {
                            if (row["ColumnName"] != null)
                                m_ColumnNames.Add(row["ColumnName"].ToString());
                        }
                    }

                foreach (string s in m_ColumnNames)
                {
                    if (s == "uuid")
                        continue;
                    if (s == "ScopeID")
                        continue;
                    if (s == "regionName")
                        continue;
                    if (s == "locX")
                        continue;
                    if (s == "locY")
                        continue;

                    ret.Data[s] = result[s].ToString();
                }

                retList.Add(ret);
            }

            result.Close();
            CloseReaderCommand(cmd);

            return retList;
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Search the region map for regions conflicting with this region.
        /// The region to be added is passed and we look for any existing regions that are
        /// in the requested location, that are large varregions that overlap this region, or
        /// are previously defined regions that would lie under this new region.
        /// </summary>
        /// <param name="regionInfos">Information on region requested to be added to the world map</param>
        /// <param name="scopeID">Grid id for region</param>
        /// <param name="reason">The reason the returned region conflicts with passed region</param>
        /// <returns></returns>
        private RegionData FindAnyConflictingRegion(GridRegion regionInfos, UUID scopeID, out string reason)
        {
            reason = "Reregistration";
            // First see if there is an existing region right where this region is trying to go
            // (We keep this result so it can be returned if suppressing errors)
            RegionData noErrorRegion = m_Database.Get(regionInfos.RegionLocX, regionInfos.RegionLocY, scopeID);
            RegionData region        = noErrorRegion;

            if (region != null &&
                region.RegionID == regionInfos.RegionID &&
                region.sizeX == regionInfos.RegionSizeX &&
                region.sizeY == regionInfos.RegionSizeY)
            {
                // If this seems to be exactly the same region, return this as it could be
                //     a re-registration (permissions checked by calling routine).
                m_log.DebugFormat("{0} FindAnyConflictingRegion: re-register of {1}",
                                  LogHeader, RegionString(regionInfos));
                return(region);
            }

            // No region exactly there or we're resizing an existing region.
            // Fetch regions that could be varregions overlapping requested location.
            int xmin = regionInfos.RegionLocX - (int)Constants.MaximumRegionSize + 10;
            int xmax = regionInfos.RegionLocX;
            int ymin = regionInfos.RegionLocY - (int)Constants.MaximumRegionSize + 10;
            int ymax = regionInfos.RegionLocY;
            List <RegionData> rdatas = m_Database.Get(xmin, ymin, xmax, ymax, scopeID);

            foreach (RegionData rdata in rdatas)
            {
                // m_log.DebugFormat("{0} FindAnyConflictingRegion: find existing. Checking {1}", LogHeader, RegionString(rdata) );
                if ((rdata.posX + rdata.sizeX > regionInfos.RegionLocX) &&
                    (rdata.posY + rdata.sizeY > regionInfos.RegionLocY))
                {
                    region = rdata;
                    m_log.WarnFormat("{0} FindAnyConflictingRegion: conflict of {1} by existing varregion {2}",
                                     LogHeader, RegionString(regionInfos), RegionString(region));
                    reason = String.Format("Region location is overlapped by existing varregion {0}",
                                           RegionString(region));

                    return(region);
                }
            }

            // There isn't a region that overlaps this potential region.
            // See if this potential region overlaps an existing region.
            // First, a shortcut of not looking for overlap if new region is legacy region sized
            //     and connot overlap anything.
            if (regionInfos.RegionSizeX != Constants.RegionSize ||
                regionInfos.RegionSizeY != Constants.RegionSize)
            {
                // trim range looked for so we don't pick up neighbor regions just off the edges
                xmin   = regionInfos.RegionLocX;
                xmax   = regionInfos.RegionLocX + regionInfos.RegionSizeX - 10;
                ymin   = regionInfos.RegionLocY;
                ymax   = regionInfos.RegionLocY + regionInfos.RegionSizeY - 10;
                rdatas = m_Database.Get(xmin, ymin, xmax, ymax, scopeID);

                // If the region is being resized, the found region could be ourself.
                foreach (RegionData rdata in rdatas)
                {
                    // m_log.DebugFormat("{0} FindAnyConflictingRegion: see if overlap. Checking {1}", LogHeader, RegionString(rdata) );
                    if (region == null || region.RegionID != regionInfos.RegionID)
                    {
                        region = rdata;
                        m_log.WarnFormat("{0} FindAnyConflictingRegion: conflict of varregion {1} overlaps existing region {2}",
                                         LogHeader, RegionString(regionInfos), RegionString(region));
                        reason = String.Format("Region {0} would overlap existing region {1}",
                                               RegionString(regionInfos), RegionString(region));

                        return(region);
                    }
                }
            }

            // If we get here, region is either null (nothing found here) or
            //     is the non-conflicting region found at the location being requested.
            return(region);
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Creates the data for the specified row.
        /// </summary>
        /// <param name="Row">The row.</param>
        internal Data Create(Row Row)
        {
            Data Data;

            switch (this.Index)
            {
            case 0:
            {
                Data = new BuildingData(Row, this);
                break;
            }

            case 1:
            {
                Data = new LocaleData(Row, this);
                break;
            }

            case 2:
            {
                Data = new ResourceData(Row, this);
                break;
            }

            case 3:
            {
                Data = new CharacterData(Row, this);
                break;
            }

            case 6:
            {
                Data = new BuildingClassData(Row, this);
                break;
            }

            case 7:
            {
                Data = new ObstacleData(Row, this);
                break;
            }

            case 8:
            {
                Data = new EffectData(Row, this);
                break;
            }

            case 9:
            {
                Data = new ParticleEmitterData(Row, this);
                break;
            }

            case 10:
            {
                Data = new ExperienceLevelData(Row, this);
                break;
            }

            case 11:
            {
                Data = new TrapData(Row, this);
                break;
            }

            case 12:
            {
                Data = new AllianceBadgeData(Row, this);
                break;
            }

            case 13:
            {
                Data = new GlobalData(Row, this);
                break;
            }

            case 14:
            {
                Data = new TownhallLevelData(Row, this);
                break;
            }

            case 15:
            {
                Data = new PrototypeData(Row, this);
                break;
            }

            case 16:
            {
                Data = new NpcData(Row, this);
                break;
            }

            case 17:
            {
                Data = new DecoData(Row, this);
                break;
            }

            case 18:
            {
                Data = new ResourcePackData(Row, this);
                break;
            }

            case 20:
            {
                Data = new MissionData(Row, this);
                break;
            }

            case 21:
            {
                Data = new BillingPackageData(Row, this);
                break;
            }

            case 22:
            {
                Data = new AchievementData(Row, this);
                break;
            }

            case 25:
            {
                Data = new SpellData(Row, this);
                break;
            }

            case 26:
            {
                Data = new HintData(Row, this);
                break;
            }

            case 27:
            {
                Data = new LandingShipData(Row, this);
                break;
            }

            case 28:
            {
                Data = new ArtifactData(Row, this);
                break;
            }

            case 29:
            {
                Data = new ArtifactBonusData(Row, this);
                break;
            }

            case 30:
            {
                Data = new DeepseaParameterData(Row, this);
                break;
            }

            case 31:
            {
                Data = new ExplorationCostData(Row, this);
                break;
            }

            case 34:
            {
                Data = new ResourceShipData(Row, this);
                break;
            }

            case 35:
            {
                Data = new LootBoxData(Row, this);
                break;
            }

            case 36:
            {
                Data = new LiberatedIncomeData(Row, this);
                break;
            }

            case 37:
            {
                Data = new RegionData(Row, this);
                break;
            }

            case 38:
            {
                Data = new DefenseRewardData(Row, this);
                break;
            }

            case 39:
            {
                Data = new LocatorData(Row, this);
                break;
            }

            case 40:
            {
                Data = new EventData(Row, this);
                break;
            }

            case 41:
            {
                Data = new FootstepData(Row, this);
                break;
            }

            case 42:
            {
                Data = new PersistentEventRewardData(Row, this);
                break;
            }

            case 43:
            {
                Data = new CommunityLinkData(Row, this);
                break;
            }

            case 44:
            {
                Data = new ShieldData(Row, this);
                break;
            }

            case 45:
            {
                Data = new AbTestData(Row, this);
                break;
            }

            case 46:
            {
                Data = new LetterData(Row, this);
                break;
            }

            case 47:
            {
                Data = new RankData(Row, this);
                break;
            }

            case 48:
            {
                Data = new CountryData(Row, this);
                break;
            }

            case 51:
            {
                Data = new BoomboxData(Row, this);
                break;
            }

            case 52:
            {
                Data = new HeroData(Row, this);
                break;
            }

            case 53:
            {
                Data = new HeroAbilityData(Row, this);
                break;
            }

            case 54:
            {
                Data = new OfferData(Row, this);
                break;
            }

            case 55:
            {
                Data = new DeepLinkData(Row, this);
                break;
            }

            case 56:
            {
                Data = new SectorData(Row, this);
                break;
            }

            case 57:
            {
                Data = new SectorBonusData(Row, this);
                break;
            }

            default:
            {
                Data = new Data(Row, this);
                break;
            }
            }

            return(Data);
        }
Ejemplo n.º 28
0
        public bool Store(RegionData data)
        {
            if (data.Data.ContainsKey("uuid"))
                data.Data.Remove("uuid");
            if (data.Data.ContainsKey("ScopeID"))
                data.Data.Remove("ScopeID");
            if (data.Data.ContainsKey("regionName"))
                data.Data.Remove("regionName");
            if (data.Data.ContainsKey("posX"))
                data.Data.Remove("posX");
            if (data.Data.ContainsKey("posY"))
                data.Data.Remove("posY");
            if (data.Data.ContainsKey("sizeX"))
                data.Data.Remove("sizeX");
            if (data.Data.ContainsKey("sizeY"))
                data.Data.Remove("sizeY");
            if (data.Data.ContainsKey("locX"))
                data.Data.Remove("locX");
            if (data.Data.ContainsKey("locY"))
                data.Data.Remove("locY");

            string[] fields = new List<string>(data.Data.Keys).ToArray();

            using (NpgsqlConnection conn = new NpgsqlConnection(m_ConnectionString))
            using (NpgsqlCommand cmd = new NpgsqlCommand())
            {

                string update = "update " + m_Realm + " set \"locX\"=:posX, \"locY\"=:posY, \"sizeX\"=:sizeX, \"sizeY\"=:sizeY ";
                
                foreach (string field in fields)
                {

                    update += ", ";
                    update += " \"" + field + "\" = :" + field;

                    if (m_FieldTypes.ContainsKey(field))
                        cmd.Parameters.Add(m_database.CreateParameter(field, data.Data[field], m_FieldTypes[field]));
                    else
                        cmd.Parameters.Add(m_database.CreateParameter(field, data.Data[field]));
                }

                update += " where uuid = :regionID";

                if (data.ScopeID != UUID.Zero)
                    update += " and \"ScopeID\" = :scopeID";

                cmd.CommandText = update;
                cmd.Connection = conn;
                cmd.Parameters.Add(m_database.CreateParameter("regionID", data.RegionID));
                cmd.Parameters.Add(m_database.CreateParameter("regionName", data.RegionName));
                cmd.Parameters.Add(m_database.CreateParameter("scopeID", data.ScopeID));
                cmd.Parameters.Add(m_database.CreateParameter("posX", data.posX));
                cmd.Parameters.Add(m_database.CreateParameter("posY", data.posY));
                cmd.Parameters.Add(m_database.CreateParameter("sizeX", data.sizeX));
                cmd.Parameters.Add(m_database.CreateParameter("sizeY", data.sizeY));
                conn.Open();
                try
                {
                    if (cmd.ExecuteNonQuery() < 1)
                    {
                        string insert = "insert into " + m_Realm + " (uuid, \"ScopeID\", \"locX\", \"locY\", \"sizeX\", \"sizeY\", \"regionName\", \"" +
                                String.Join("\", \"", fields) +
                                "\") values (:regionID, :scopeID, :posX, :posY, :sizeX, :sizeY, :regionName, :" + String.Join(", :", fields) + ")";

                        cmd.CommandText = insert;

                        try
                        {
                            if (cmd.ExecuteNonQuery() < 1)
                            {
                                return false;
                            }
                        }
                        catch (Exception ex)
                        {
                            m_log.Warn("[PGSQL Grid]: Error inserting into Regions table: " + ex.Message + ", INSERT sql: " + insert);
                        }
                    }
                }
                catch (Exception ex)
                {
                    m_log.Warn("[PGSQL Grid]: Error updating Regions table: " + ex.Message + ", UPDATE sql: " + update);
                }
            }

            return true;
        }
Ejemplo n.º 29
0
    protected void Process_AddEdit()
    {
        WarehouseData wareHouse = null;
        m_refWarehouse = new WarehouseApi();

        if (this.m_iID > 0)
        {
            wareHouse = m_refWarehouse.GetItem(this.m_iID);
        }

        RegionData rData;
        rData = new RegionData();
        rData = m_refRegion.GetItem(Convert.ToInt64(drp_address_region.SelectedValue));

        CountryData cData;
        cData = new CountryData();
        cData = m_refCountry.GetItem(System.Convert.ToInt32(drp_address_country.SelectedValue));

        if (this.m_iID == 0)
        {
            wareHouse = new WarehouseData(txt_address_name.Text, new AddressData());
        }

        wareHouse.Name = (string)txt_address_name.Text;

        if (this.m_iID > 0)
        {
            wareHouse.Id = Convert.ToInt64(lbl_address_id.Text);
        }

        wareHouse.Address.AddressLine1 = (string)txt_address_line1.Text;
        wareHouse.Address.AddressLine2 = (string)txt_address_line2.Text;
        wareHouse.Address.City = (string)txt_address_city.Text;
        if (wareHouse.Address.Region == null)
        {
            wareHouse.Address.Region = new RegionData();
        }
        wareHouse.Address.Region.Id = Convert.ToInt64(drp_address_region.SelectedValue);
        wareHouse.Address.PostalCode = (string)txt_address_postal.Text;
        if (wareHouse.Address.Country == null)
        {
            wareHouse.Address.Country = new CountryData();
        }
        wareHouse.Address.Country.Id = System.Convert.ToInt32(drp_address_country.SelectedValue);
        wareHouse.IsDefaultWarehouse = System.Convert.ToBoolean(chk_default_warehouse.Checked);

        if (this.m_iID > 0)
        {
            m_refWarehouse.Update(wareHouse);
            Response.Redirect(m_sPageName + "?action=view&id=" + this.m_iID.ToString(), false);
        }
        else
        {
            m_refWarehouse.Add(wareHouse);
            Response.Redirect(m_sPageName, false);
        }
    }
Ejemplo n.º 30
0
    protected void Process_AddEdit()
    {
        RegionData rRegion = null;
        TaxRateData tTax = null;
        Ektron.Cms.Common.Criteria<TaxClassProperty> TaxClasscriteria = new Ektron.Cms.Common.Criteria<TaxClassProperty>(TaxClassProperty.Name, Ektron.Cms.Common.EkEnumeration.OrderByDirection.Ascending);
        System.Collections.Generic.List<TaxClassData> TaxClassList = new System.Collections.Generic.List<TaxClassData>();

        TaxClassList = _TaxClassApi.GetList(TaxClasscriteria);
        _TaxApi = new TaxApi();

        if (this.m_iID > 0)
        {
            rRegion = _RegionApi.GetItem(this.m_iID);
            rRegion.Name = (string)txt_name.Text;
            rRegion.CountryId = Convert.ToInt64(drp_country.SelectedValue);
            rRegion.Code = (string)txt_code.Text;
            rRegion.Enabled = System.Convert.ToBoolean(chk_enabled.Checked);
            _RegionApi.Update(rRegion);

            for (int i = 0; i <= TaxClassList.Count - 1; i++)
            {
                tTax = _TaxApi.GetItemByRegionId(TaxClassList[i].Id, rRegion.Id);
                if (tTax == null)
                {
                    tTax = new RegionTaxRateData(rRegion.Id, TaxClassList[i].Id, 0);
                    if (Information.IsNumeric(Request.Form["txtClassRate" + i]))
                    {
                        tTax.Rate = System.Convert.ToDecimal(Convert.ToDecimal(Request.Form["txtClassRate" + i]) / 100);
                        _TaxApi.Add(tTax);
                    }
                }
                else
                {
                    if (Information.IsNumeric(Request.Form["txtClassRate" + i]))
                    {
                        tTax.Rate = System.Convert.ToDecimal(Convert.ToDecimal(Request.Form["txtClassRate" + i]) / 100);
                        _TaxApi.Update(tTax);
                    }
                }
            }

            Response.Redirect(_PageName + "?action=view&id=" + m_iID.ToString(), false);
        }
        else
        {
            rRegion = new RegionData(txt_name.Text, Convert.ToInt64(drp_country.SelectedValue), txt_code.Text, chk_enabled.Checked);
            _RegionApi.Add(rRegion);
            string Country = (string)drp_country.SelectedValue;

            for (int i = 0; i <= TaxClassList.Count - 1; i++)
            {
                tTax = new RegionTaxRateData(rRegion.Id, TaxClassList[i].Id, 0);
                if (Information.IsNumeric(Request.Form["txtClassRate" + i]))
                {
                    tTax.Rate = System.Convert.ToDecimal(Convert.ToDecimal(Request.Form["txtClassRate" + i]) / 100);
                    _TaxApi.Add(tTax);
                }
            }
            Response.Redirect(_PageName, false);
        }

        TotalPages.Visible = false;
        CurrentPage.Visible = false;
        lnkBtnPreviousPage.Visible = false;
        NextPage.Visible = false;
        LastPage.Visible = false;
        FirstPage.Visible = false;
        PageLabel.Visible = false;
        OfLabel.Visible = false;
    }
Ejemplo n.º 31
0
 internal RegionDataWrapper(RegionData rgn)
 {
     rgnData = rgn.Data;
 }
Ejemplo n.º 32
0
        public List<RegionData> RunCommand(SqliteCommand cmd)
        {
            List<RegionData> retList = new List<RegionData>();

            using (SqliteConnection dbcon = new SqliteConnection(m_connectionString))
            {
                dbcon.Open();
                cmd.Connection = dbcon;

                using (IDataReader result = cmd.ExecuteReader())
                {
                    while (result.Read())
                    {
                        RegionData ret = new RegionData();
                        ret.Data = new Dictionary<string, object>();

                        ret.RegionID = DBGuid.FromDB(result["uuid"]);
                        ret.ScopeID = DBGuid.FromDB(result["ScopeID"]);

                        ret.RegionName = result["regionName"].ToString();
                        ret.posX = Convert.ToInt32(result["locX"]);
                        ret.posY = Convert.ToInt32(result["locY"]);
                        ret.sizeX = Convert.ToInt32(result["sizeX"]);
                        ret.sizeY = Convert.ToInt32(result["sizeY"]);

                        if (m_ColumnNames == null)
                        {
                            m_ColumnNames = new List<string>();

                            DataTable schemaTable = result.GetSchemaTable();
                            foreach (DataRow row in schemaTable.Rows)
                            {
                                if (row["ColumnName"] != null)
                                    m_ColumnNames.Add(row["ColumnName"].ToString());
                            }
                        }

                        foreach (string s in m_ColumnNames)
                        {
                            if (s == "uuid")
                                continue;
                            if (s == "ScopeID")
                                continue;
                            if (s == "regionName")
                                continue;
                            if (s == "locX")
                                continue;
                            if (s == "locY")
                                continue;

                            ret.Data[s] = result[s].ToString();
                        }

                        retList.Add(ret);
                    }
                }
            }

            return retList;
        }
Ejemplo n.º 33
0
    protected void Display_AddEdit()
    {
        RegionData rRegion = new RegionData();

        Ektron.Cms.Common.Criteria<TaxClassProperty> TaxClasscriteria = new Ektron.Cms.Common.Criteria<TaxClassProperty>(TaxClassProperty.Name, Ektron.Cms.Common.EkEnumeration.OrderByDirection.Ascending);
        System.Collections.Generic.List<TaxClassData> TaxClassList = new System.Collections.Generic.List<TaxClassData>();

        TaxClassList = _TaxClassApi.GetList(TaxClasscriteria);
        _TaxApi = new TaxApi();

        if (m_iID > 0)
        {
            rRegion = _RegionApi.GetItem(this.m_iID);
        }

        Util_BindCountries();

        txt_name.Text = rRegion.Name;
        lbl_id.Text = rRegion.Id.ToString();
        chk_enabled.Checked = rRegion.Enabled;
        txt_code.Text = rRegion.Code;
        drp_country.SelectedIndex = Util_GetCountryIndex(Convert.ToInt32(rRegion.CountryId));
        if (m_iID > 0)
        {
            drp_country.Enabled = false;
            txt_code.Enabled = false;
        }

        int txtClassList = 0;
        ltr_txtClass.Text = "<table class=\"ektronGrid\">";
        for (txtClassList = 0; txtClassList <= TaxClassList.Count - 1; txtClassList++)
        {
            ltr_txtClass.Text += "<tr>";
            ltr_txtClass.Text += "   <td class=\"label\">";
            ltr_txtClass.Text += "       <label id=\"taxClass" + txtClassList + "\" value=\"" + TaxClassList[txtClassList].Name + "\">" + TaxClassList[txtClassList].Name + ":</label>";
            ltr_txtClass.Text += "   </td>";
            if (_TaxApi.GetItemByRegionId(TaxClassList[txtClassList].Id, rRegion.Id) == null)
            {
                ltr_txtClass.Text += "   <td class=\"value\">";
                ltr_txtClass.Text += "       <input type=\"text\" name=\"txtClassRate" + txtClassList + "\" id=\"txtClassRate" + txtClassList + "\" value=\"0\" />%";
                ltr_txtClass.Text += "   </td>";
            }
            else
            {
                ltr_txtClass.Text += "   <td class=\"value\">";
                ltr_txtClass.Text += "       <input type=\"text\" name=\"txtClassRate" + txtClassList + "\" id=\"txtClassRate" + txtClassList + "\" value=\"" + _TaxApi.GetItemByRegionId(TaxClassList[txtClassList].Id, rRegion.Id).Rate * 100 + "\"/>%";
                ltr_txtClass.Text += "   </td>";
            }
            ltr_txtClass.Text += "</tr>";
        }
        ltr_txtClass.Text += "</table>";

        tr_id.Visible = m_iID > 0;
        pnl_view.Visible = true;
        pnl_viewall.Visible = false;

        TotalPages.Visible = false;
        CurrentPage.Visible = false;
        lnkBtnPreviousPage.Visible = false;
        NextPage.Visible = false;
        LastPage.Visible = false;
        FirstPage.Visible = false;
        PageLabel.Visible = false;
        OfLabel.Visible = false;
    }
Ejemplo n.º 34
0
        public bool Store(RegionData data)
        {
            if (data.Data.ContainsKey("uuid"))
                data.Data.Remove("uuid");
            if (data.Data.ContainsKey("ScopeID"))
                data.Data.Remove("ScopeID");
            if (data.Data.ContainsKey("regionName"))
                data.Data.Remove("regionName");
            if (data.Data.ContainsKey("posX"))
                data.Data.Remove("posX");
            if (data.Data.ContainsKey("posY"))
                data.Data.Remove("posY");
            if (data.Data.ContainsKey("sizeX"))
                data.Data.Remove("sizeX");
            if (data.Data.ContainsKey("sizeY"))
                data.Data.Remove("sizeY");
            if (data.Data.ContainsKey("locX"))
                data.Data.Remove("locX");
            if (data.Data.ContainsKey("locY"))
                data.Data.Remove("locY");

            string[] fields = new List<string>(data.Data.Keys).ToArray();

            using (SqlConnection conn = new SqlConnection(m_ConnectionString))
            using (SqlCommand cmd = new SqlCommand())
            {

                string update = "update [" + m_Realm + "] set locX=@posX, locY=@posY, sizeX=@sizeX, sizeY=@sizeY ";
                
                foreach (string field in fields)
                {

                    update += ", ";
                    update += "[" + field + "] = @" + field;

                    cmd.Parameters.Add(m_database.CreateParameter("@" + field, data.Data[field]));
                }

                update += " where uuid = @regionID";

                if (data.ScopeID != UUID.Zero)
                    update += " and ScopeID = @scopeID";

                cmd.CommandText = update;
                cmd.Connection = conn;
                cmd.Parameters.Add(m_database.CreateParameter("@regionID", data.RegionID));
                cmd.Parameters.Add(m_database.CreateParameter("@regionName", data.RegionName));
                cmd.Parameters.Add(m_database.CreateParameter("@scopeID", data.ScopeID));
                cmd.Parameters.Add(m_database.CreateParameter("@posX", data.posX));
                cmd.Parameters.Add(m_database.CreateParameter("@posY", data.posY));
                cmd.Parameters.Add(m_database.CreateParameter("@sizeX", data.sizeX));
                cmd.Parameters.Add(m_database.CreateParameter("@sizeY", data.sizeY));
                conn.Open();
                try
                {
                    if (cmd.ExecuteNonQuery() < 1)
                    {
                        string insert = "insert into [" + m_Realm + "] ([uuid], [ScopeID], [locX], [locY], [sizeX], [sizeY], [regionName], [" +
                                String.Join("], [", fields) +
                                "]) values (@regionID, @scopeID, @posX, @posY, @sizeX, @sizeY, @regionName, @" + String.Join(", @", fields) + ")";

                        cmd.CommandText = insert;

                        try
                        {
                            if (cmd.ExecuteNonQuery() < 1)
                            {
                                return false;
                            }
                        }
                        catch (Exception ex)
                        {
                            m_log.Warn("[MSSQL Grid]: Error inserting into Regions table: " + ex.Message + ", INSERT sql: " + insert);
                        }
                    }
                }
                catch (Exception ex)
                {
                    m_log.Warn("[MSSQL Grid]: Error updating Regions table: " + ex.Message + ", UPDATE sql: " + update);
                }
            }

            return true;
        }
Ejemplo n.º 35
0
        /// <summary>
        /// Loads collision objects from region data.
        /// </summary>
        /// <param name="data"></param>
        public void Init(RegionData data)
        {
            foreach (var area in data.Areas.Values)
            {
                foreach (var prop in area.Props.Values)
                {
                    foreach (var shape in prop.Shapes)
                    {
                        var p1 = new Point(shape.X1, shape.Y1);
                        var p2 = new Point(shape.X2, shape.Y2);
                        var p3 = new Point(shape.X3, shape.Y3);
                        var p4 = new Point(shape.X4, shape.Y4);

                        _tree.Insert(new LinePath(p1, p2));
                        _tree.Insert(new LinePath(p2, p3));
                        _tree.Insert(new LinePath(p3, p4));
                        _tree.Insert(new LinePath(p4, p1));
                    }
                }
                foreach (var ev in area.Events.Values.Where(a => a.Type == EventType.Collision))
                {
                    foreach (var shape in ev.Shapes)
                    {
                        var p1 = new Point(shape.X1, shape.Y1);
                        var p2 = new Point(shape.X2, shape.Y2);
                        var p3 = new Point(shape.X3, shape.Y3);
                        var p4 = new Point(shape.X4, shape.Y4);

                        _tree.Insert(new LinePath(p1, p2));
                        _tree.Insert(new LinePath(p2, p3));
                        _tree.Insert(new LinePath(p3, p4));
                        _tree.Insert(new LinePath(p4, p1));
                    }
                }
            }
        }
Ejemplo n.º 36
0
        public bool Store(RegionData data)
        {
            if (data.Data.ContainsKey("uuid"))
                data.Data.Remove("uuid");
            if (data.Data.ContainsKey("ScopeID"))
                data.Data.Remove("ScopeID");
            if (data.Data.ContainsKey("regionName"))
                data.Data.Remove("regionName");
            if (data.Data.ContainsKey("posX"))
                data.Data.Remove("posX");
            if (data.Data.ContainsKey("posY"))
                data.Data.Remove("posY");
            if (data.Data.ContainsKey("sizeX"))
                data.Data.Remove("sizeX");
            if (data.Data.ContainsKey("sizeY"))
                data.Data.Remove("sizeY");
            if (data.Data.ContainsKey("locX"))
                data.Data.Remove("locX");
            if (data.Data.ContainsKey("locY"))
                data.Data.Remove("locY");

            string[] fields = new List<string>(data.Data.Keys).ToArray();

            MySqlCommand cmd = new MySqlCommand();

            string update = "update `"+m_Realm+"` set locX=?posX, locY=?posY, sizeX=?sizeX, sizeY=?sizeY";
            foreach (string field in fields)
            {
                update += ", ";
                update += "`" + field + "` = ?"+field;

                cmd.Parameters.AddWithValue("?"+field, data.Data[field]);
            }

            update += " where uuid = ?regionID";

            if (data.ScopeID != UUID.Zero)
                update += " and ScopeID = ?scopeID";

            cmd.CommandText = update;
            cmd.Parameters.AddWithValue("?regionID", data.RegionID.ToString());
            cmd.Parameters.AddWithValue("?regionName", data.RegionName);
            cmd.Parameters.AddWithValue("?scopeID", data.ScopeID.ToString());
            cmd.Parameters.AddWithValue("?posX", data.posX.ToString());
            cmd.Parameters.AddWithValue("?posY", data.posY.ToString());
            cmd.Parameters.AddWithValue("?sizeX", data.sizeX.ToString());
            cmd.Parameters.AddWithValue("?sizeY", data.sizeY.ToString());

            if (ExecuteNonQuery(cmd) < 1)
            {
                string insert = "insert into `" + m_Realm + "` (`uuid`, `ScopeID`, `locX`, `locY`, `sizeX`, `sizeY`, `regionName`, `" +
                        String.Join("`, `", fields) +
                        "`) values ( ?regionID, ?scopeID, ?posX, ?posY, ?sizeX, ?sizeY, ?regionName, ?" + String.Join(", ?", fields) + ")";

                cmd.CommandText = insert;

                if (ExecuteNonQuery(cmd) < 1)
                {
                    cmd.Dispose();
                    return false;
                }
            }

            cmd.Dispose();

            return true;
        }
Ejemplo n.º 37
0
        private bool ArcHit(ushort zoneId, Point3D pinPos, Point3D worldPos)
        {
            if (_weapon.LOSHit(zoneId, pinPos))
            {
                return(true);
            }

            #if DEBUG && ARTILLERY_ARC_DEBUG
            Log.Info("Artillery", "Direct LOS check failed, checking arc...");
            #endif

            WarZoneLib.Vector3 playnice = new WarZoneLib.Vector3();

            int maxZDisplacement = Math.Min(_Owner.Z, pinPos.Z) + 100 * 12; // check 100 feet upwards

            Point3D weaponTopPoint = new Point3D();
            Point3D destPoint      = new Point3D();

            Vector2 toTarget = new Vector2(worldPos.X - _weapon.WorldPosition.X, worldPos.Y - _weapon.WorldPosition.Y);
            toTarget.Normalize();

            weaponTopPoint.SetCoordsFrom(_weapon);
            destPoint.SetCoordsFrom(_weapon);

            #if DEBUG && ARTILLERY_ARC_DEBUG
            Log.Info("Artillery", "Weapon location: " + weaponTopPoint);
            #endif

            // Check LOS between weapon and close apex (if applicable)
            if (weaponTopPoint.Z < maxZDisplacement)
            {
                destPoint.Z = maxZDisplacement;

                // Check 50 feet in front of the weapon
                destPoint.X += (int)(toTarget.X * 50 * 12);
                destPoint.Y += (int)(toTarget.Y * 50 * 12);

                #if DEBUG && ARTILLERY_ARC_DEBUG
                Log.Info("Artillery", "Checking weapon to destination point: " + destPoint);
                #endif

                RegionData.OcclusionResult arc1Result = RegionData.OcclusionQuery(
                    zoneId, weaponTopPoint.X, weaponTopPoint.Y, weaponTopPoint.Z + 120,
                    zoneId, destPoint.X, destPoint.Y, destPoint.Z, ref playnice);

                if (arc1Result == RegionData.OcclusionResult.Occluded)
                {
                    #if DEBUG && ARTILLERY_ARC_DEBUG
                    Log.Info("Artillery", "Arc check failed (obstruction between cannon and arc apex 1)");
                    foreach (var player in Players)
                    {
                        player.Key.ZoneTeleport((ushort)destPoint.X, (ushort)destPoint.Y, (ushort)destPoint.Z, 0);
                    }
                    #endif
                    return(false);
                }

                weaponTopPoint.SetCoordsFrom(destPoint);
            }

            // Check LOS between target and far apex (if applicable)
            destPoint.SetCoordsFrom(pinPos);
            #if DEBUG && ARTILLERY_ARC_DEBUG
            Log.Info("Artillery", "Target location: " + pinPos);
            #endif

            if (pinPos.Z < maxZDisplacement)
            {
                destPoint.Z = maxZDisplacement;

                // Much more lenient on drop - 10ft
                destPoint.X -= (int)(toTarget.X * 10 * 12);
                destPoint.Y -= (int)(toTarget.Y * 10 * 12);
                #if DEBUG && ARTILLERY_ARC_DEBUG
                Log.Info("Artillery", "Checking target location to destination point: " + destPoint);
                #endif

                RegionData.OcclusionResult arc2Result = RegionData.OcclusionQuery(
                    zoneId, pinPos.X, pinPos.Y, pinPos.Z + 120,
                    zoneId, destPoint.X, destPoint.Y, destPoint.Z, ref playnice);

                if (arc2Result == RegionData.OcclusionResult.Occluded)
                {
                    #if DEBUG && ARTILLERY_ARC_DEBUG
                    Log.Info("Artillery", "Arc check failed (obstruction between target point and arc apex 2)");
                    foreach (var player in Players)
                    {
                        player.Key.ZoneTeleport((ushort)destPoint.X, (ushort)destPoint.Y, (ushort)destPoint.Z, 0);
                    }
                    #endif
                    return(false);
                }

                pinPos.SetCoordsFrom(destPoint);
            }

            #if DEBUG && ARTILLERY_ARC_DEBUG
            Log.Info("Artillery", "Checking apex 1 " + weaponTopPoint + " to apex 2 " + pinPos);
            #endif

            // Check LOS between two apex points
            RegionData.OcclusionResult result = RegionData.OcclusionQuery(
                zoneId, weaponTopPoint.X, weaponTopPoint.Y, weaponTopPoint.Z + 120,
                zoneId, pinPos.X, pinPos.Y, pinPos.Z + 120, ref playnice);

            if (result == RegionData.OcclusionResult.Occluded)
            {
                #if DEBUG && ARTILLERY_ARC_DEBUG
                Log.Info("Artillery", "Arc check failed (obstruction between arc apexes)");
                //foreach (var player in Players)
                //    player.Key.ZoneTeleport((ushort)weaponTopPoint.X, (ushort)weaponTopPoint.Y, (ushort)weaponTopPoint.Z, 0);
                foreach (var player in Players)
                {
                    player.Key.ZoneTeleport((ushort)pinPos.X, (ushort)pinPos.Y, (ushort)pinPos.Z, 0);
                }
                #endif
                return(false);
            }

            #if DEBUG && ARTILLERY_ARC_DEBUG
            Log.Info("Artillery", "Arc check passed");
            #endif
            return(true);
        }