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())); } }
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)); }