/// <summary> /// Add coach /// </summary> /// <param name="coachContract"></param> /// <param name="cancellationToken"></param> /// <returns></returns> /// <exception cref="ArgumentException"></exception> public async Task <bool> AddCoach(CoachContract coachContract, CancellationToken cancellationToken) { var checkCoach = await _dbContext.Coaches.FirstOrDefaultAsync(x => x.Id == coachContract.Id, cancellationToken); if (checkCoach != null) { _logger.LogInformation($"Coach with id {coachContract.Id} is not found"); return(false); } var coach = CoachMapping.CoachMapFromContractToModel(coachContract); var age = (int)(DateTime.Now.Subtract(coach.BirthDate).TotalDays / 365.2425); if (age < 18 || age > 90) { _logger.LogInformation($"Coach with id {coachContract.Id} is not suitable for age : {age}"); return(false); } try { await _dbContext.Coaches.AddAsync(coach, cancellationToken); await _dbContext.SaveChangesAsync(cancellationToken); } catch { _logger.LogInformation($"Coach with id {coachContract.Id} is not added"); return(false); } return(true); }
/// <summary> /// Take Coach /// </summary>s /// <param name="coachId"></param> /// <param name="cancellationToken"></param> public async Task <CoachContract> TakeCoach(int coachId, CancellationToken cancellationToken) { var coach = await _dbContext.Coaches.FirstOrDefaultAsync(x => x.Id == coachId, cancellationToken); return(CoachMapping.CoachMapFromModelToContract(coach)); }