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() );
public Task <DraftMeta> UpdateDraftMetadata(Guid accountId, Guid draftId, DraftMetadata metadata) => konturExtern.Accounts.WithId(accountId).Drafts.WithId(draftId).UpdateMetadataAsync(metadata);
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); }