Skip to content

Commit fc38bcf

Browse files
authored
♻️ Replaced simple aggregate functions with direct use of properties. (#482)
1 parent 55b52bc commit fc38bcf

3 files changed

Lines changed: 38 additions & 23 deletions

File tree

src/Application/UseCases/Heroes/Commands/UpdateHero/UpdateHeroCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ public async Task<ErrorOr<Guid>> Handle(UpdateHeroCommand request, CancellationT
2828
if (hero is null)
2929
return HeroErrors.NotFound;
3030

31-
hero.UpdateName(request.Name);
32-
hero.UpdateAlias(request.Alias);
31+
hero.Name = request.Name;
32+
hero.Alias = request.Alias;
3333
var powers = request.Powers.Select(p => new Power(p.Name, p.PowerLevel));
3434
hero.UpdatePowers(powers);
3535

src/Domain/Heroes/Hero.cs

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,30 @@ namespace SSW.CleanArchitecture.Domain.Heroes;
99
public class Hero : AggregateRoot<HeroId>
1010
{
1111
private readonly List<Power> _powers = [];
12-
public string Name { get; private set; } = null!;
13-
public string Alias { get; private set; } = null!;
12+
13+
private string _name = null!;
14+
private string _alias = null!;
15+
16+
public string Name
17+
{
18+
get => _name;
19+
set
20+
{
21+
ThrowIfNullOrWhiteSpace(value, nameof(Name));
22+
_name = value;
23+
}
24+
}
25+
26+
public string Alias
27+
{
28+
get => _alias;
29+
set
30+
{
31+
ThrowIfNullOrWhiteSpace(value, nameof(Alias));
32+
_alias = value;
33+
}
34+
}
35+
1436
public int PowerLevel { get; private set; }
1537
public TeamId? TeamId { get; private set; }
1638

@@ -21,25 +43,11 @@ private Hero() { }
2143
public static Hero Create(string name, string alias)
2244
{
2345
Guid.CreateVersion7();
24-
var hero = new Hero { Id = HeroId.From(Guid.CreateVersion7()) };
25-
hero.UpdateName(name);
26-
hero.UpdateAlias(alias);
46+
var hero = new Hero { Id = HeroId.From(Guid.CreateVersion7()), Name = name, Alias = alias };
2747

2848
return hero;
2949
}
3050

31-
public void UpdateName(string name)
32-
{
33-
ThrowIfNullOrWhiteSpace(name);
34-
Name = name;
35-
}
36-
37-
public void UpdateAlias(string alias)
38-
{
39-
ThrowIfNullOrWhiteSpace(alias);
40-
Alias = alias;
41-
}
42-
4351
public void UpdatePowers(IEnumerable<Power> updatedPowers)
4452
{
4553
_powers.Clear();

src/Domain/Teams/Team.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,16 @@ namespace SSW.CleanArchitecture.Domain.Teams;
88

99
public class Team : AggregateRoot<TeamId>
1010
{
11-
public string Name { get; private set; } = null!;
11+
public string Name
12+
{
13+
get => _name;
14+
private set
15+
{
16+
ThrowIfNullOrWhiteSpace(value, nameof(Name));
17+
_name = value;
18+
}
19+
}
20+
1221
public int TotalPowerLevel { get; private set; }
1322
public TeamStatus Status { get; private set; }
1423

@@ -17,16 +26,14 @@ public class Team : AggregateRoot<TeamId>
1726
private Mission? CurrentMission => _missions.FirstOrDefault(m => m.Status == MissionStatus.InProgress);
1827

1928
private readonly List<Hero> _heroes = [];
29+
private string _name = null!;
2030
public IReadOnlyList<Hero> Heroes => _heroes.AsReadOnly();
2131

2232
private Team() { }
2333

2434
public static Team Create(string name)
2535
{
26-
ThrowIfNullOrWhiteSpace(name);
27-
2836
var team = new Team { Id = TeamId.From(Guid.CreateVersion7()), Name = name, Status = TeamStatus.Available };
29-
3037
return team;
3138
}
3239

0 commit comments

Comments
 (0)