public async Task <VenueViewModel> AddVenue(VenueModel venue) { var result = await _repository.AddVenue(venue); return(new VenueViewModel { CityId = result.CityId, Description = result.Description, Name = result.Name, Id = result.Id }); }
public async Task <ActionResult <VenueDto> > CreateVenue(VenueForCreationDto venue) { var venueEntity = _mapper.Map <Venue>(venue); try { if (venue.FacilitiesIds.Any()) { foreach (var facilityId in venue.FacilitiesIds) { var facility = await _venueRepository.GetFacility(facilityId); facility.VenueFacilities.Add(new VenueFacility() { Facility = facility, Venue = venueEntity }); } } } catch (Exception ex) { _logger.LogError(ex.Message); return(StatusCode(StatusCodes.Status500InternalServerError, "Wystąpił nieznany błąd")); } _venueRepository.AddVenue(venueEntity); await _venueRepository.SaveChanges(); var venueToReturn = _mapper.Map <VenueDto>(venueEntity); return(CreatedAtRoute("GetVenue", new { venueId = venueToReturn.Id }, venueToReturn)); }
/* * Method that adds and updates any venues to our database using Google Places API */ public void UpdateVenues() { // Only want to update Venues database once a week var venues = _venueRepository.GetAllVenues(); Venue mostRecentUpdate = venues.OrderByDescending(v => v.DateUpdated).FirstOrDefault(); // If there is no update or if most recent update was more than two weeks ago // search places and update Venues database if (mostRecentUpdate == null || mostRecentUpdate.DateUpdated < DateTime.Now.AddDays(-14)) { // Get list of places List <PlaceSearchResult> places = _placesApi.GetVenues(); foreach (var place in places) { // Check if we already have this venue in database Venue existingVenue = venues.FirstOrDefault(v => v.GooglePlaceId == place.PlaceId); // If not in database, add it if (existingVenue == null) { Venue venue = new Venue { GooglePlaceId = place.PlaceId, Name = place.Name, DateUpdated = DateTime.Now }; _venueRepository.AddVenue(venue); } } // Update most recent update mostRecentUpdate.DateUpdated = DateTime.Now; _venueRepository.Edit(mostRecentUpdate); UpdateVenueDetails(); } }