Я добавил юнит-тест в свой метод, но получил ошибку. Метод работает; вне теста он работает на 100%.
public async Task ClearCartAsync()
{
var carts = _cartRepository.GetAll().ToList();
for (var i = 0; i < carts.Count; i++)
{
var sub = DateTimeOffset.Now.Subtract(carts.ElementAt(i).PurchaseDate);
var minutes = sub.Minutes;
var hours = sub.Hours;
if (Math.Abs(hours) > 0 || Math.Abs(minutes) > 1)
{
var seatId = carts.ElementAt(i).EventSeatId;
var seat = await _eventSeatRepository.GetByIdAsync(seatId); //problem here
seat.State = EventSeatState.Empty;
await _eventSeatRepository.UpdateAsync(seat);
await _cartRepository.DeleteAsync(carts.ElementAt(i).Id);
}
}
}
Следующий шаг.
/// <summary>Gets an awaiter used to await this <see cref="T:System.Threading.Tasks.Task`1" />.</summary>
/// <returns>An awaiter instance.</returns>
[__DynamicallyInvokable]
public TaskAwaiter<TResult> GetAwaiter()
{
return new TaskAwaiter<TResult>(this);
}
и следующий: seat = null;
Почему это не go для метода?
UPD:
EventSeatRepository:
public override async Task<EventSeatEntity> GetByIdAsync(int id)
{
return await base.GetByIdAsync(id);
}
GenericRepository:
public virtual async Task<T> GetByIdAsync(int id)
{
return await _context.Set<T>().FirstAsync(m => m.Id == id);
}