Example #1
0
        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}"));
            }
        }
Example #3
0
        public async Task <Visit> FindById(string id)
        {
            var visitEntity = await visitRepository.FindById(id);

            return(visitEntity?.ToModel());
        }