コード例 #1
0
            public static void Migrate(int _coordinate, OutfitTriggerInfo _outfitTriggerInfo, Dictionary <string, VirtualGroupInfo> _outfitVirtualGroupInfo, ref List <TriggerProperty> _outputTriggerProperty, ref List <TriggerGroup> _outputTriggerGroup)
            {
                if (_outfitTriggerInfo == null)
                {
                    return;
                }
                if (_outfitVirtualGroupInfo == null)
                {
                    _outfitVirtualGroupInfo = new Dictionary <string, VirtualGroupInfo>();
                }

                Dictionary <string, int> _mapping = new Dictionary <string, int>();
                int _refBase = 9;

                List <AccTriggerInfo> _parts = _outfitTriggerInfo.Parts.Values.OrderBy(x => x.Kind).ThenBy(x => x.Group).ThenBy(x => x.Slot).ToList();

                foreach (AccTriggerInfo _part in _parts)
                {
                    if (MathfEx.RangeEqualOn(0, _part.Kind, 8))
                    {
                        for (int i = 0; i < 4; i++)
                        {
                            _outputTriggerProperty.Add(new TriggerProperty(_coordinate, _part.Slot, _part.Kind, i, _part.State[i], 0));
                        }
                    }
                    else if (_part.Kind >= 9)
                    {
                        if (!_mapping.ContainsKey(_part.Group))
                        {
                            _mapping[_part.Group] = _refBase;
                            _refBase++;
                        }

                        _outputTriggerProperty.Add(new TriggerProperty(_coordinate, _part.Slot, _mapping[_part.Group], 0, _part.State[0], 0));
                        _outputTriggerProperty.Add(new TriggerProperty(_coordinate, _part.Slot, _mapping[_part.Group], 1, _part.State[3], 0));
                    }
                }

                foreach (KeyValuePair <string, int> x in _mapping)
                {
                    if (!_outfitVirtualGroupInfo.ContainsKey(x.Key))
                    {
                        string _label = _accessoryParentNames.ContainsKey(x.Key) ? _accessoryParentNames[x.Key] : x.Key;
                        _outputTriggerGroup.Add(new TriggerGroup(_coordinate, x.Value, _label));
                    }
                    else
                    {
                        VirtualGroupInfo _group = _outfitVirtualGroupInfo[x.Key];
                        _outputTriggerGroup.Add(new TriggerGroup(_coordinate, x.Value, _group.Label, (_group.State ? 0 : 1), 0, (_group.Secondary ? 1 : -1)));
                    }
                }
            }
コード例 #2
0
        private void UpdateServer()
        {
            if (!Page.IsValid)
            {
                return;
            }

            ServerInfo server = new ServerInfo();

            // header
            server.ServerId       = PanelRequest.ServerId;
            server.ServerName     = Server.HtmlEncode(txtName.Text);
            server.Comments       = Server.HtmlEncode(txtComments.Text);
            server.PrimaryGroupId = Utils.ParseInt(ddlPrimaryGroup.SelectedValue, 0);

            // instant alias
            server.InstantDomainAlias = txtInstantAlias.Text;

            // gather groups info
            List <VirtualGroupInfo> groups = new List <VirtualGroupInfo>();

            for (int i = 0; i < dlServiceGroups.Items.Count; i++)
            {
                int          groupId = (int)dlServiceGroups.DataKeys[i];
                DataListItem item    = dlServiceGroups.Items[i];

                CheckBox     chkBind     = (CheckBox)item.FindControl("chkBind");
                DropDownList ddlDistType = (DropDownList)item.FindControl("ddlDistType");
                Control      rowBound    = item.FindControl("rowBound");

                VirtualGroupInfo group = new VirtualGroupInfo();
                group.GroupId                   = groupId;
                group.DistributionType          = Utils.ParseInt(ddlDistType.SelectedValue, 0);
                group.BindDistributionToPrimary = chkBind.Checked && rowBound.Visible;
                groups.Add(group);
            }

            try
            {
                // update server
                int result = ES.Services.Servers.UpdateServer(server);
                if (result < 0)
                {
                    ShowResultMessage(result);
                    return;
                }

                // update groups
                result = ES.Services.Servers.UpdateVirtualGroups(PanelRequest.ServerId, groups.ToArray());
                if (result < 0)
                {
                    ShowResultMessage(result);
                    return;
                }
            }
            catch (Exception ex)
            {
                ShowErrorMessage("VSERVER_UPDATE_SERVER", ex);
                return;
            }

            // return to browse page
            RedirectToBrowsePage();
        }