public async Task <IActionResult> AddQualification(QualificationContract qualification, CancellationToken cancellationToken) { var result = await _qualificationService.AddQualification(qualification, cancellationToken); if (result) { return(Ok()); } return(NotFound()); }
/// <summary> /// From Contract to Model /// </summary> /// <param name="contract"></param> /// <returns></returns> public static Qualification QualificationMapFromContractToModel(QualificationContract contract) { if (contract == null) { return(null); } return(new Qualification { Id = contract.Id, CoachId = contract.CoachId, ServiceId = contract.ServiceId }); }
/// <summary> /// Update /// </summary> /// <param name="contract"></param> /// <param name="cancellationToken"></param> public async Task <bool> AddQualification(QualificationContract contract, CancellationToken cancellationToken) { var checkQualification = await _dbContext.Qualifications.FirstOrDefaultAsync(x => x.CoachId == contract.CoachId && x.ServiceId == contract.ServiceId, cancellationToken); if (checkQualification != null) { _logger.LogInformation($"Qualification with {contract.CoachId} and {contract.ServiceId} is found"); return(false); } var tryGetCoach = await _dbContext.Coaches.FirstOrDefaultAsync(x => x.Id == contract.CoachId, cancellationToken); var tryGetService = await _dbContext.Services.FirstOrDefaultAsync(x => x.Id == contract.ServiceId, cancellationToken); if (tryGetService == null || tryGetCoach == null) { _logger.LogInformation($"No Coach with {contract.CoachId} or Service with {contract.ServiceId} id"); return(false); } try { var qualification = QualificationMapping.QualificationMapFromContractToModel(contract); await _dbContext.AddAsync(qualification, cancellationToken); await _dbContext.SaveChangesAsync(cancellationToken); } catch { _logger.LogInformation($"Qualification with id {contract.Id} is not found"); return(false); } return(true); }