예제 #1
0
        public async Task <StatusViewModel> PutEnumAsync(int solutionId, Guid id, [FromBody] UpdateEnum updateEnum)
        {
            updateEnum.SolutionId = solutionId;
            await _mediator.Send(updateEnum);

            return(new StatusViewModel());
        }
예제 #2
0
        private void DrawPlayersPanel(List <BasePlayer> players, PanelSetup setup, UpdateEnum updateEnum)
        {
            HiddenPanelInfo info = _hiddenPanels[setup.PanelReg.Name];

            if (info.All)
            {
                return;
            }

            foreach (BasePlayer player in players)
            {
                PanelRegistration     reg       = setup.PanelReg;
                Hash <string, object> panelData = reg.Plugin.Call(reg.GetPanelMethod, player, reg.Name) as Hash <string, object>;
                if (panelData == null)
                {
                    PrintError($"DrawPlayersPanel: {reg.Plugin.Name} returned no data from {reg.GetPanelMethod} method");
                    return;
                }

                Panel panel = new Panel(panelData);
                foreach (PanelUpdate update in CreatePanel(panel, setup, updateEnum))
                {
                    CuiHelper.DestroyUi(player, update.PanelName);
                    if (!info.PlayerHidden.Contains(player.userID))
                    {
                        CuiHelper.AddUi(player, update.Container);
                    }
                }
            }
        }
예제 #3
0
        private List <PanelUpdate> CreatePanel(Panel panel, PanelSetup setup, UpdateEnum update)
        {
            List <PanelUpdate> containers = new List <PanelUpdate>();

            if (update == UpdateEnum.All || update == UpdateEnum.Panel)
            {
                TypePadding         dockPadding = _pluginConfig.Docks[setup.PanelReg.Dock].DockPadding;
                UiPosition          pos         = GetPanelPosition(setup, dockPadding);
                CuiElementContainer container   = Ui.Container(setup.PanelColor, pos, setup.UiParentPanel);
                containers.Add(new PanelUpdate
                {
                    Container = container,
                    PanelName = setup.UiParentPanel
                });
            }

            List <PanelType> panelTypes = new List <PanelType>();

            if (panel.Text != null)
            {
                panelTypes.Add(panel.Text);
            }

            if (panel.Image != null)
            {
                panelTypes.Add(panel.Image);
            }

            float offset = 0;

            foreach (PanelType type in panelTypes.Where(pt => pt.Enabled).OrderBy(pt => pt.Order))
            {
                if (type is PanelText)
                {
                    if (update == UpdateEnum.All || update == UpdateEnum.Text)
                    {
                        containers.Add(CreateText(panel, setup.UiParentPanel, offset));
                    }
                }
                else if (type is PanelImage)
                {
                    if (update == UpdateEnum.All || update == UpdateEnum.Image)
                    {
                        containers.Add(CreateImage(panel, setup.UiParentPanel, offset));
                    }
                }

                offset += type.Width;
            }

            return(containers);
        }
예제 #4
0
        public static string ToUpdateString(this UpdateEnum country)
        {
            switch (country)
            {
            case UpdateEnum.League:
                return("League");

            case UpdateEnum.Team:
                return("Team");

            case UpdateEnum.Match:
                return("Match");

            case UpdateEnum.Player:
                return("Player");

            case UpdateEnum.Stadium:
                return("Stadium");

            case UpdateEnum.Referee:
                return("Referee");

            case UpdateEnum.Event:
                return("Event");

            case UpdateEnum.EventMessage:
                return("EventMessage");

            case UpdateEnum.PlayerTeam:
                return("PlayerTeam");

            case UpdateEnum.PlayerMatch:
                return("PlayerMatch");

            case UpdateEnum.RefereeMatch:
                return("RefereeMatch");

            default:
                return("League");
            }
        }
예제 #5
0
        private void DrawPanel(IEnumerable <BasePlayer> players, PanelRegistration registeredPanel, UpdateEnum updateEnum)
        {
            if (!_init)
            {
                return;
            }

            players = players
                      .Where(p => _storedData.Settings[p.userID]?.Enabled ?? true &&
                             (string.IsNullOrEmpty(registeredPanel.Permission) ||
                              permission.UserHasPermission(p.UserIDString, registeredPanel.Permission)))
                      .ToList();
            if (!players.Any())
            {
                return;
            }

            PanelSetup setup = new PanelSetup
            {
                Pos           = _pluginConfig.Docks[registeredPanel.Dock].Position,
                PanelColor    = registeredPanel.BackgroundColor,
                StartPos      = _panelPositions[registeredPanel.Dock][registeredPanel.Name],
                UiParentPanel = GetPanelUiName(registeredPanel.Name),
                PanelReg      = registeredPanel,
            };

            if (registeredPanel.PanelType == PanelTypeEnum.Global)
            {
                DrawGlobalPanel(players, setup, updateEnum);
            }
            else if (registeredPanel.PanelType == PanelTypeEnum.Player)
            {
                DrawPlayersPanel(players, setup, updateEnum);
            }
        }
예제 #6
0
        private void DrawPanel(List <BasePlayer> players, PanelRegistration registeredPanel, UpdateEnum updateEnum)
        {
            if (!_init)
            {
                return;
            }

            players = players
                      .Where(p => _storedData.Settings[p.userID]?.Enabled ?? true)
                      .ToList();
            if (players.Count == 0)
            {
                return;
            }

            PanelSetup setup = new PanelSetup
            {
                Pos           = _pluginConfig.Docks[registeredPanel.Dock].Position,
                PanelColor    = registeredPanel.BackgroundColor,
                StartPos      = _panelPositions[registeredPanel.Dock][registeredPanel.Name],
                UiParentPanel = GetPanelUiName(registeredPanel.Name),
                PanelReg      = registeredPanel,
            };

            if (registeredPanel.PanelType == PanelTypeEnum.Global)
            {
                DrawGlobalPanel(players, setup, updateEnum);
            }
            else if (registeredPanel.PanelType == PanelTypeEnum.Player)
            {
                DrawPlayersPanel(players, setup, updateEnum);
            }
        }
예제 #7
0
 /// <summary>
 /// 初期化
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     UpdateEnum.Update();
 }