Exemple #1
0
        public async Task <IActionResult> AddQualification(QualificationContract qualification, CancellationToken cancellationToken)
        {
            var result = await _qualificationService.AddQualification(qualification, cancellationToken);

            if (result)
            {
                return(Ok());
            }

            return(NotFound());
        }
Exemple #2
0
 /// <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
     });
 }
Exemple #3
0
        /// <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);
        }