Esempio n. 1
0
        public async Task <IActionResult> CreateServiceLocation([FromBody] SaveServiceLocationResource location)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }

                var locationInfo = await _repository.GetServiceCurrentLocationAsync(location.ServiceId);

                var result = _mapper.Map <SaveServiceLocationResource, ServiceLocation>(location);
                if (locationInfo == null)
                {
                    _repository.AddServiceLocation(result);
                }
                else
                {
                    _repository.UpdateServiceLocation(result);
                }
                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
Esempio n. 2
0
        private async Task <IActionResult> GetAllNearestServices(SearchService result)
        {
            var availableServices = await _repository.GetAllNearestAvailableServicesAsyc(result);

            var searchedSericeResult = new List <ServiceSearchResults>();

            foreach (var data in availableServices)
            {
                decimal totalReviewPoint = 0;
                var     counter          = 0;
                var     serviceResult    = new ServiceSearchResults();
                var     location         = await _locationRepository.GetServiceCurrentLocationAsync(data.Id);

                serviceResult.Id                = data.Id;
                serviceResult.Title             = data.Title;
                serviceResult.RiderPerVessel    = data.RiderPerVessel;
                serviceResult.Quantity          = data.Quantity;
                serviceResult.IsActive          = data.IsActive;
                serviceResult.IsDeleted         = data.IsDeleted;
                serviceResult.IsOnRide          = data.IsOnRide;
                serviceResult.Rate              = data.Rate;
                serviceResult.ServiceProviderId = data.ServiceProviderId;
                serviceResult.StreetAddress     = data.StreetAddress;
                serviceResult.City              = data.City;
                serviceResult.State             = data.State;
                serviceResult.PostalCode        = data.PostalCode;
                serviceResult.Longitude         = location.Longitude;
                serviceResult.Latitude          = location.Latitude;
                serviceResult.ReviewComments    = new List <string>();



                var reviewDetails = await _serviceReviewRepository.GetReviews(data.Id);

                var serviceReviews = reviewDetails as ServiceReview[] ?? reviewDetails.ToArray();
                if (Enumerable.Count(serviceReviews) > 0)
                {
                    foreach (var review in serviceReviews)
                    {
                        serviceResult.ReviewComments.Add(review.Comments);
                        totalReviewPoint = totalReviewPoint + review.RatingPoint;
                        counter++;
                    }
                    serviceResult.AvgRatingsPoint = totalReviewPoint / counter;
                }

                searchedSericeResult.Add(serviceResult);
            }

            return(Ok(searchedSericeResult));
        }