public async Task SetUp()
    {
        eventController = EventControllerTest.GetEventController();
        testEvent       = (await eventController.Add(new DtoEvent
        {
            Date = new DateTime(1775, 7, 2),
            Description = "Independence",
            Location = "Philly",
            Title = "Sign Here"
        })).Value;

        unassignedDonation = new DtoDonation
        {
            EventID = testEvent.ID,
            Amount  = 1_000M,
            Date    = new DateTime(1775, 7, 4)
        };

        donationController = GetDonationController();
        dtoDonation        = (await donationController.Add(unassignedDonation)).Value;

        var personController = PersonControllerTest.GetPersonController();

        team1Owner = (await personController.Add(new DtoPerson {
            Name = "Team 1 Owner"
        })).Value;
        team2Owner = (await personController.Add(new DtoPerson {
            Name = "Team 2 Owner"
        })).Value;

        var teamController = TeamControllerTest.GetTeamController();

        team1 = (await teamController.Add(new DtoTeam {
            Description = "Team1", EventID = testEvent.ID, Name = "Team1", OwnerID = team1Owner.ID
        })).Value;
        team2 = (await teamController.Add(new DtoTeam {
            Description = "Team2", EventID = testEvent.ID, Name = "Team2", OwnerID = team2Owner.ID
        })).Value;


        team1Donations = new[]
        {
            createDonation(testEvent.ID, team1.ID, 100),
            createDonation(testEvent.ID, team1.ID, 200)
        };

        team2Donations = new[]
        {
            createDonation(testEvent.ID, team2.ID, 300),
            createDonation(testEvent.ID, team2.ID, 400)
        };

        foreach (var donation in team1Donations.Union(team2Donations))
        {
            await donationController.Add(donation);
        }
    }
    public async Task <ActionResult <DtoDonation> > Add([FromBody] DtoDonation dtoDonation)
    {
        log.LogInformation("Adding {dtoDonation}", dtoDonation);
        if (!ModelState.IsValid)
        {
            return(BadRequest(getModelStateErrorMessage()));
        }

        if (dtoDonation.ID != 0)
        {
            return(BadRequest("Cannot add with a valid id"));
        }

        var donation    = mapper.Map <Donation>(dtoDonation);
        var newDonation = await donationRepository.AddAsync(donation);

        return(mapper.Map <DtoDonation>(newDonation));
    }