Thank you to anyone who has already donated - your generous donations helped make three months of treatment possible.

My brother Nate continues to fight stage IV Hodgkin's lymphoma. He's just 31, with a wife and baby girl. They have no active income (since he's been unable to return to work), no insurance, and cannot afford the treatment he needs. Nate and his family need your help. Please consider a donation, every dollar helps. Thanks.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Book : Aggregate { //DOMAIN
  private List<AuthorData> _authors;

  private Book(IEvent @event) { ApplyEvent(@event); }

  public static Book NewBook(string isbn, params Author[] authors) {
    return new Book(new NewBookAdded(isbn, authors.Select(x => new BookAuthorData(x.Name, x.Identifier)));   
  }

  private void Apply(NewBookAdded @event) {
    _authors = new List<AuthorData>(@event.Authors.Select(x => new AuthorData { Name = x.Name, Identifier = x.Identifier}));
  }
}

internal class AuthorData { //DOMAIN
  public string Name { get; set; }
  public string Identifier { get; set; }
}

public class BookAuthorData { //EVENTS
  public string Name { get; private set; }
  public string Identifier { get; private set; }
  public BookAuthorData(string name, string identifier) { Name = name; Identifier = identifier; }
}

public class NewBookAdded {
  public string ISBN { get; private set; }
  public BookAuthorData[] Authors { get; private set; }
  public NewBookAdded(string isbn, IEnumerable<BookAuthorData> authors) { ISBN = isbn; Authors = authors.ToArray(); }
}