Exemplo n.º 1
0
 public ValueTask <EntityScope <Draft> > CreateNew(Guid accountId, DraftMetadata draftMetadata) =>
 scopeFactory(
     () => konturExtern.Accounts.WithId(accountId).Drafts.CreateDraftAsync(draftMetadata),
     draft => konturExtern.Accounts.WithId(accountId).Drafts.WithId(draft.Id).DeleteAsync()
     );
Exemplo n.º 2
0
 public Task <DraftMeta> UpdateDraftMetadata(Guid accountId, Guid draftId, DraftMetadata metadata) =>
 konturExtern.Accounts.WithId(accountId).Drafts.WithId(draftId).UpdateMetadataAsync(metadata);
Exemplo n.º 3
0
        public void InitializeDraft()
        {
            config        = new DraftMetadata();
            draftControls = new Dictionary <string, DraftControl>();
            // Load data
            List <Team> teams = new List <Team>();

            using (FileStream file = new FileStream(configuration.GetSection("TeamFilePath").Value, FileMode.Open, FileAccess.Read))
            {
                System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(List <Team>));
                teams = (List <Team>)ser.Deserialize(file);
            }
            config.Teams = this.GenerateTeamsAndOrder(teams, chk_randomize.IsChecked ?? false);

            List <Player> players = new List <Player>();

            using (FileStream file = new FileStream(configuration.GetSection("PlayerFilePath").Value, FileMode.Open, FileAccess.Read))
            {
                System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(List <Player>));
                players = (List <Player>)ser.Deserialize(file);
            }

            List <StatsTeam> statsTeams = new List <StatsTeam>();

            using (FileStream file = new FileStream(configuration.GetSection("TeamStatsFilePath").Value, FileMode.Open, FileAccess.Read))
            {
                System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(List <StatsTeam>));
                statsTeams = (List <StatsTeam>)ser.Deserialize(file);
            }

            foreach (var player in players)
            {
                player?.PlayerAnalytics?.BackfillTeamStats(statsTeams);
            }

            config.Players = players.OrderBy(x => x.Gamertag).ToList();
            stackpanela.Children.Clear();
            stackpanelb.Children.Clear();

            // Every team is "pre-loaded" with its owner
            var  ownerGamertags = new List <string>();
            bool stackA         = true;

            foreach (var team in config.Teams)
            {
                ownerGamertags.Add(team.Value.Owner.Gamertag);
                var ownerPlayer = players.Single(x => String.Equals(x.Gamertag, team.Value.Owner.Gamertag, StringComparison.OrdinalIgnoreCase));
                team.Value.Roster.Add(0, ownerPlayer);
                team.Value.Owner = ownerPlayer;

                draftControls.Add(team.Value.Name, new DraftControl(team.Key + 1, team.Value));
                if (stackA)
                {
                    stackpanela.Children.Add(draftControls[team.Value.Name]);
                }
                else
                {
                    stackpanelb.Children.Add(draftControls[team.Value.Name]);
                }

                draftControls[team.Value.Name].AssignPlayer(0, team.Value.Roster[0]);


                stackA = !stackA;
            }

            // Remove owners from draft pool
            foreach (var owner in ownerGamertags)
            {
                config.Players.RemoveAll(x => String.Equals(x.Gamertag, owner, StringComparison.OrdinalIgnoreCase));
            }

            draft = new Draft(config.Teams, config.Players);


            grd_players.ItemsSource = null;
            grd_players.ItemsSource = draft.DraftPool;

            UpdateHeader();
            var draftFilterControl = new DraftFilterControl(grd_players, draft);

            draftFilterControl.chk_center.IsChecked  = true;
            draftFilterControl.chk_defense.IsChecked = true;
            draftFilterControl.chk_wing.IsChecked    = true;
            draftFilterControl.chk_goalie.IsChecked  = true;

            filterPanel.Children.Add(draftFilterControl);
        }