Skip to content

Commit d176a90

Browse files
committed
show selected turns
1 parent 5250a41 commit d176a90

File tree

13 files changed

+90
-32
lines changed

13 files changed

+90
-32
lines changed

Snittlistan.Web/Areas/V2/Controllers/ActivityEditController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public ActionResult Create(ActivityEditViewModel vm)
4545
ParseDate(vm.Date!),
4646
vm.Message,
4747
vm.MessageHtml,
48-
User.CustomIdentity.PlayerId!);
48+
User!.CustomIdentity.PlayerId!);
4949
CompositionRoot.DocumentSession.Store(activity);
5050

5151
return RedirectToAction("Index", "ActivityIndex");
@@ -84,7 +84,7 @@ public ActionResult Edit(string id, ActivityEditViewModel vm)
8484
ParseDate(vm.Date!),
8585
vm.Message,
8686
vm.MessageHtml,
87-
User.CustomIdentity.PlayerId!);
87+
User!.CustomIdentity.PlayerId!);
8888
return RedirectToAction("Index", "ActivityIndex");
8989
}
9090

Snittlistan.Web/Areas/V2/Controllers/AdminRosterAcceptController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ public ActionResult AcceptPlayer(ViewModel vm)
4545
Roster roster = CompositionRoot.DocumentSession.Load<Roster>(vm.Model?.RosterId);
4646
Roster.Update update = new(
4747
Roster.ChangeType.PlayerAccepted,
48-
User.Identity.Name)
48+
User!.Identity.Name)
4949
{
5050
PlayerAccepted = vm.Model?.PlayerId!
5151
};
52-
roster.UpdateWith(CompositionRoot.CorrelationId, update);
52+
_ = roster.UpdateWith(CompositionRoot.CorrelationId, update);
5353
return RedirectToAction("View", "Roster", new
5454
{
5555
vm.Model?.Season,

Snittlistan.Web/Areas/V2/Controllers/AdminTasksController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public ActionResult ActivateUserConfirmed(string id, bool? invite)
132132
Debug.Assert(Request.Url != null, "Request.Url != null");
133133
TaskPublisher taskPublisher = GetTaskPublisher();
134134
user.ActivateWithEmail(
135-
t => taskPublisher.PublishTask(t, User.Identity.Name),
135+
t => taskPublisher.PublishTask(t, User!.Identity.Name),
136136
Url,
137137
Request.Url!.Scheme);
138138
}

Snittlistan.Web/Areas/V2/Controllers/AuthenticationController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ public ActionResult LogOff()
313313
{
314314
if (Request.IsAuthenticated)
315315
{
316-
NotifyEvent($"{User.CustomIdentity.Name} logged off");
316+
NotifyEvent($"{User!.CustomIdentity.Name} logged off");
317317
authenticationService.SignOut();
318318
}
319319

Snittlistan.Web/Areas/V2/Controllers/MatchResultController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public ActionResult Index(int? season)
2727
ResultHeaderReadModel[] headerReadModels = CompositionRoot.DocumentSession.Query<ResultHeaderReadModel, ResultHeaderIndex>()
2828
.Where(x => x.Season == season)
2929
.ToArray();
30-
Dictionary<string?, Roster> rosters = CompositionRoot.DocumentSession.Load<Roster>(headerReadModels.Select(x => x.RosterId))
30+
Dictionary<string, Roster> rosters = CompositionRoot.DocumentSession.Load<Roster>(headerReadModels.Select(x => x.RosterId))
3131
.ToDictionary(x => x.Id);
3232

3333
IEnumerable<ResultHeaderViewModel> headerViewModels = headerReadModels.Select(x => new ResultHeaderViewModel(x, rosters[x.RosterId]));

Snittlistan.Web/Areas/V2/Controllers/RosterAcceptController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ public ActionResult Accept(string rosterId, string playerId, int season, int tur
1515
Roster roster = CompositionRoot.DocumentSession.Load<Roster>(rosterId);
1616
Roster.Update update = new(
1717
Roster.ChangeType.PlayerAccepted,
18-
User.CustomIdentity.PlayerId!)
18+
User!.CustomIdentity.PlayerId!)
1919
{
2020
PlayerAccepted = playerId
2121
};
22-
roster.UpdateWith(CompositionRoot.CorrelationId, update);
22+
_ = roster.UpdateWith(CompositionRoot.CorrelationId, update);
2323
return Redirect(
2424
Url.RouteUrl(
2525
new

Snittlistan.Web/Areas/V2/Controllers/RosterController.cs

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,19 @@ public ActionResult Index(int? season)
4141
selectAll = false;
4242
}
4343

44-
List<Roster>? rosters = CompositionRoot.DocumentSession.Query<Roster, RosterSearchTerms>()
44+
Roster[] rosters = CompositionRoot.DocumentSession.Query<Roster, RosterSearchTerms>()
4545
.Where(r => r.Season == season)
46-
.ToList();
46+
.ToArray();
47+
InitialDataViewModel.SelectedTurn[] selectedTurns = Array.Empty<InitialDataViewModel.SelectedTurn>();
48+
if (User?.CustomIdentity.PlayerId is not null)
49+
{
50+
selectedTurns = rosters
51+
.Where(x => x.Players.Contains(User.CustomIdentity.PlayerId))
52+
.GroupBy(x => x.Turn)
53+
.Select(x => new InitialDataViewModel.SelectedTurn(x.Key))
54+
.ToArray();
55+
}
56+
4757
IEnumerable<InitialDataViewModel.TurnViewModel> q =
4858
from roster in rosters
4959
orderby roster.Turn
@@ -78,8 +88,12 @@ into g
7888
: string.Empty,
7989
CompositionRoot.CurrentTenant.AppleTouchIcon,
8090
CompositionRoot.CurrentTenant.TeamFullName));
81-
bool isFiltered = rosters.Count != turns.Sum(x => x.Rosters.Length);
82-
InitialDataViewModel vm = new(turns.Concat(activities).OrderBy(x => x.Date).ToArray(), season.Value, isFiltered);
91+
bool isFiltered = rosters.Length != turns.Sum(x => x.Rosters.Length);
92+
InitialDataViewModel vm = new(
93+
selectedTurns,
94+
turns.Concat(activities).OrderBy(x => x.Date).ToArray(),
95+
season.Value,
96+
isFiltered);
8397

8498
return turns.Length <= 0 ? View("Unscheduled", vm) : View(vm);
8599
}
@@ -299,6 +313,7 @@ public ActionResult View(int? season, int? turn, bool? print)
299313
if (rosterViewModels.Length <= 0)
300314
{
301315
InitialDataViewModel vm = new(
316+
Array.Empty<InitialDataViewModel.SelectedTurn>(),
302317
new InitialDataViewModel.ScheduledItem[0],
303318
season.Value,
304319
true);
@@ -417,7 +432,7 @@ public async Task<ActionResult> EditPlayers(string rosterId, RosterPlayersViewMo
417432

418433
Roster.Update update = new(
419434
Roster.ChangeType.EditPlayers,
420-
User.CustomIdentity.PlayerId ?? User.CustomIdentity.Email)
435+
User!.CustomIdentity.PlayerId ?? User.CustomIdentity.Email)
421436
{
422437
Preliminary = vm.Preliminary
423438
};
@@ -645,21 +660,27 @@ private static DateTime ParseDate(string date)
645660
public class InitialDataViewModel
646661
{
647662
public InitialDataViewModel(
663+
SelectedTurn[] selectedTurns,
648664
ScheduledItem[] scheduledItems,
649665
int seasonStart,
650666
bool isFiltered)
651667
{
668+
SelectedTurns = selectedTurns;
652669
ScheduledItems = scheduledItems;
653670
SeasonStart = seasonStart;
654671
IsFiltered = isFiltered;
655672
}
656673

674+
public SelectedTurn[] SelectedTurns { get; }
675+
657676
public ScheduledItem[] ScheduledItems { get; }
658677

659678
public int SeasonStart { get; }
660679

661680
public bool IsFiltered { get; }
662681

682+
public record SelectedTurn(int Turn);
683+
663684
public abstract class ScheduledItem
664685
{
665686
public abstract MvcHtmlString Render(HtmlHelper<InitialDataViewModel> helper);

Snittlistan.Web/Areas/V2/Controllers/UserProfileController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class UserProfileController : AbstractController
1414
{
1515
public async Task<ActionResult> Index()
1616
{
17-
string key = UserSettings.GetKey(User.CustomIdentity.PlayerId!);
17+
string key = UserSettings.GetKey(User!.CustomIdentity.PlayerId!);
1818
int tenantId = CompositionRoot.CurrentTenant.TenantId;
1919
KeyValueProperty? settingsProperty =
2020
await CompositionRoot.Databases.Snittlistan.KeyValueProperties.SingleOrDefaultAsync(
@@ -31,7 +31,7 @@ await CompositionRoot.Databases.Snittlistan.KeyValueProperties.SingleOrDefaultAs
3131
[HttpPost]
3232
public async Task<ActionResult> Save(UserSettingsViewModel vm)
3333
{
34-
string key = UserSettings.GetKey(User.CustomIdentity.PlayerId!);
34+
string key = UserSettings.GetKey(User!.CustomIdentity.PlayerId!);
3535
UpdateUserSettingsCommandHandler.Command command = new(
3636
key,
3737
vm.RosterMailEnabled,

Snittlistan.Web/Areas/V2/Domain/Roster.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public Roster(
8585
}
8686
}
8787

88-
public string? Id { get; set; }
88+
public string Id { get; set; } = null!;
8989

9090
public int Season { get; set; }
9191

Snittlistan.Web/Areas/V2/ReadModels/ResultHeaderReadModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ private ResultHeaderReadModel()
3636

3737
public int OpponentScore { get; private set; }
3838

39-
public string? RosterId { get; private set; }
39+
public string RosterId { get; private set; } = null!;
4040

4141
public int Season { get; private set; }
4242

0 commit comments

Comments
 (0)