Exemplo n.º 1
0
        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));
        }
Exemplo n.º 3
0
        /*
         * 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();
            }
        }