public CreateResponse Create(SaucerRequest request)
 {
     try
     {
         var saucer = TypeAdapter.Adapt <Saucer>(request);
         _saucerValidator.ValidateAndThrowException(saucer, "Base");
         _saucerRepository.Add(saucer);
         return(new CreateResponse(saucer.Id));
     }
     catch (DataAccessException)
     {
         throw new ApplicationException();
     }
 }
 public SuccessResponse Update(SaucerRequest request)
 {
     try
     {
         var currentSaucer = _saucerRepository.FindBy(request.Id);
         currentSaucer.ThrowExceptionIfRecordIsNull();
         var saucerToCopy = TypeAdapter.Adapt <Saucer>(request);
         TypeAdapter.Adapt(saucerToCopy, currentSaucer);
         _saucerValidator.ValidateAndThrowException(currentSaucer, "Base");
         _saucerRepository.Update(currentSaucer);
         return(new SuccessResponse {
             IsSuccess = true
         });
     }
     catch (DataAccessException)
     {
         throw new ApplicationException();
     }
 }
 public SuccessResponse Put(SaucerRequest request)
 {
     return(_saucerService.Update(request));
 }
 public CreateResponse Post(SaucerRequest request)
 {
     return(_saucerService.Create(request));
 }