public Task <ValidatorResult> Validate(UpdateVisitRequest request) { return(Task.Factory.StartNew(() => { var validationResult = new ValidatorResult(); if (request == null) { validationResult.Exception = new ArgumentNullException(nameof(request)); return validationResult; } var visit = visitRepository.FindById(request.Id); if (visit == null) { validationResult.Exception = new EntityNotFoundException(typeof(Visit), request.Id); return validationResult; } var restaurant = restaurantRepository.FindById(request.RestaurantId); if (restaurant == null) { validationResult.Exception = new EntityNotFoundException(typeof(Restaurant), request.RestaurantId); return validationResult; } var user = userRepository.FindById(request.UserId); if (user == null) { validationResult.Exception = new EntityNotFoundException(typeof(User), request.UserId); return validationResult; } return validationResult; })); }
public async Task <VisitResponse> UpdateAsync(int id, Visit visit) { var existingVisit = await _visitRepository.FindById(id); if (existingVisit == null) { return(new VisitResponse("Visit not found")); } existingVisit.Date = visit.Date; try { _visitRepository.Update(existingVisit); await _unitOfWork.CompleteAsync(); return(new VisitResponse(existingVisit)); } catch (Exception ex) { return(new VisitResponse($"An error ocurred while updating visit: {ex.Message}")); } }
public async Task <Visit> FindById(string id) { var visitEntity = await visitRepository.FindById(id); return(visitEntity?.ToModel()); }