Task IAllReadyDataAccess.UpdateActivitySignupAsync(ActivitySignup value)
 {
     _dbContext.ActivitySignup.Update(value);
       return _dbContext.SaveChangesAsync();
 }
 Task IAllReadyDataAccess.AddActivitySignupAsync(ActivitySignup userSignup)
 {
     _dbContext.ActivitySignup.Add(userSignup);
       return _dbContext.SaveChangesAsync();
 }
 Task IAllReadyDataAccess.UpdateActivitySignupAsync(ActivitySignup value)
 {
     _dbContext.ActivitySignup.Update(value);
     return(_dbContext.SaveChangesAsync());
 }
 Task IAllReadyDataAccess.AddActivitySignupAsync(ActivitySignup userSignup)
 {
     _dbContext.ActivitySignup.Add(userSignup);
     return(_dbContext.SaveChangesAsync());
 }
        public async Task PutCheckinReturnsCorrectJsonWhenUsersSignedUpIsNotNullAndCheckinDateTimeIsNull()
        {
            const string userId = "userId";

            var activity = new Activity { Name = "ActivityName", Description = "ActivityDescription" };
            var activitySignup = new ActivitySignup { User = new ApplicationUser { Id = userId } };
            activity.UsersSignedUp.Add(activitySignup);

            var mediator = new Mock<IMediator>();
            mediator.Setup(x => x.Send(It.IsAny<ActivityByActivityIdQuery>())).Returns(activity);

            var sut = new ActivityApiController(mediator.Object)
                .SetFakeUser(userId);

            var expected = $"{{ Activity = {{ Name = {activity.Name}, Description = {activity.Description} }} }}";

            var result = (JsonResult)await sut.PutCheckin(It.IsAny<int>());

            Assert.IsType<JsonResult>(result);
            Assert.Equal(expected, result.Value.ToString());
        }
        public async Task PutCheckinSendsAddActivitySignupCommandAsyncWithCorrectDataWhenUsersSignedUpIsNotNullAndCheckinDateTimeIsNull()
        {
            const string userId = "userId";
            var utcNow = DateTime.UtcNow;

            var activity = new Activity();
            var activitySignup = new ActivitySignup { User = new ApplicationUser { Id = userId } };
            activity.UsersSignedUp.Add(activitySignup);

            var mediator = new Mock<IMediator>();
            mediator.Setup(x => x.Send(It.IsAny<ActivityByActivityIdQuery>())).Returns(activity);

            var sut = new ActivityApiController(mediator.Object) { DateTimeUtcNow = () => utcNow }
                .SetFakeUser(userId);
            await sut.PutCheckin(It.IsAny<int>());

            mediator.Verify(x => x.SendAsync(It.Is<AddActivitySignupCommandAsync>(y => y.ActivitySignup == activitySignup)));
            mediator.Verify(x => x.SendAsync(It.Is<AddActivitySignupCommandAsync>(y => y.ActivitySignup.CheckinDateTime == utcNow)));
        }