public IActionResult CreateApplicationQualifications(int applicationId,
                                                             [FromBody] List <int> qualificationIds)
        {
            if (!_applicationInfoRepository.ApplicationExists(applicationId))
            {
                return(NotFound());
            }

            foreach (int qualificationId in qualificationIds)
            {
                if (!_applicationInfoRepository.QualificationExists(qualificationId))
                {
                    return(NotFound());
                }
                else
                {
                    _applicationInfoRepository.AddApplicationQualifications(
                        applicationId,
                        _applicationInfoRepository.GetQualification(qualificationId)
                        );
                }
            }
            if (!_applicationInfoRepository.Save())
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }
            else
            {
                _mailService.Send("Additional Qualifications are linked to an Applicant",
                                  $"The application id is: {applicationId} ");
            }

            return(Ok());
        }
Example #2
0
        public IActionResult CreateQualifications(int applicationId,
                                                  [FromBody] QualificationForQualificationCreationDto qualification)
        {
            if (qualification == null)
            {
                return(BadRequest());
            }
            // Built-in Error Validation
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (!_applicationInfoRepository.ApplicationExists(applicationId))
            {
                return(NotFound());
            }

            var finalQualification = Mapper.Map <Entities.Qualification>(qualification);

            _applicationInfoRepository.AddQualification(applicationId, finalQualification);
            if (!_applicationInfoRepository.Save())
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }
            return(Ok());
        }
        [HttpHead]  // Do not transport content/body in response only Returns 200 Status Code & Headers
        public IActionResult GetApplicationCourseCampuses(int applicationId)
        {
            if (!_applicationInfoRepository.ApplicationExists(applicationId))
            {
                return(NotFound());
            }
            var applicationCourseCampuses = _applicationInfoRepository.GetCourseCampusesForApplication(applicationId);

            if (applicationCourseCampuses == null)
            {
                return(NotFound());
            }

            var results = Mapper.Map <IEnumerable <ApplicationCourseCampusDto> >(applicationCourseCampuses);

            #region CreateLinksForApplicationCourseCampuses => Supporting HATEOAS (Base and Wrapper Class Approach)
            results = results.Select(acc =>
            {
                acc = CreateLinksForApplicationCourseCampus(acc);
                return(acc);
            });

            var wrapper = new LinkedCollectionResourceWrapperDto <ApplicationCourseCampusDto>(results);
            #endregion

            //return Ok(results);
            return(Ok(CreateLinksForApplicationCourseCampuses(wrapper)));
        }