public IHttpActionResult Post([FromBody] Tournament tournament)
        {
            var result = new Tournament();

            if (ModelState.IsValid)
            {
                if (tournament.Organizer == null)
                {
                    return(Content(HttpStatusCode.BadRequest, "Organizer is empty"));
                }

                if (tournament.Organizer.Id == 0 || organizerRepository.Get(tournament.Organizer.Id) == null)
                {
                    return(Content(HttpStatusCode.NotFound, "Organizer not found"));
                }

                if (tournament.Venue == null)
                {
                    return(Content(HttpStatusCode.BadRequest, "Venue is empty"));
                }

                if (tournament.Venue.Id == 0 || venueRepository.Get(tournament.Venue.Id) == null)
                {
                    return(Content(HttpStatusCode.NotFound, "Venue not found"));
                }

                result = tournamentRepository.Add(tournament);
            }

            return(Json(result));
        }
        public Tournament Add(Tournament tournament)
        {
            Organizer organizer;

            if (tournament.Organizer == null)
            {
                organizer = organizerRepository.Add(tournament.Organizer);
            }
            else
            {
                organizer = organizerRepository.Get(tournament.Organizer.Id);
            }

            Venue venue;

            if (tournament.Venue == null)
            {
                venue = venueRepository.Add(tournament.Venue);
            }
            else
            {
                venue = venueRepository.Get(tournament.Venue.Id);
            }

            ICollection <Category> categories = new List <Category>();

            if (tournament.Categories != null && tournament.Categories.Count > 0)
            {
                foreach (Category category in tournament.Categories)
                {
                    var categoryFromDb = categoryRepository.Get(category.Id);

                    if (categoryFromDb == null)
                    {
                        categories.Add(categoryRepository.Add(category));
                    }
                    else
                    {
                        categories.Add(categoryFromDb);
                    }
                }
            }

            tournament.Organizer  = organizer;
            tournament.Venue      = venue;
            tournament.Categories = categories;

            var result = context.Tournaments.Add(tournament);

            Save();

            return(result);
        }
Exemplo n.º 3
0
        public EventLearnPageQueryResults GetEventResult(Event eventDataModel)
        {
            var eventModel = AutoMapper.Mapper.Map <Contracts.Models.Event>(eventDataModel);

            var eventDetailDataModel = _eventDetailRepository.GetByEventId(eventDataModel.Id);
            var eventDetailModel     = AutoMapper.Mapper.Map <Contracts.Models.EventDetail>(eventDetailDataModel);

            if (eventDetailModel == null)
            {
                return(new EventLearnPageQueryResults {
                });
            }
            var venueDataModel = _venueRepository.Get(eventDetailDataModel.VenueId);
            var venueModel     = AutoMapper.Mapper.Map <Contracts.Models.Venue>(venueDataModel);

            var cityDataModel = _cityRepository.Get(venueDataModel.CityId);
            var cityModel     = AutoMapper.Mapper.Map <Contracts.Models.City>(cityDataModel);

            var stateDataModel = _stateRepository.Get(cityDataModel.StateId);
            var stateModel     = AutoMapper.Mapper.Map <Contracts.Models.State>(stateDataModel);

            var countryDataModel = _countryRepository.Get(stateDataModel.CountryId);
            var countryModel     = AutoMapper.Mapper.Map <Contracts.Models.Country>(countryDataModel);

            var eventGallaryDataModel = _eventGalleryImageRepository.GetByEventId(eventModel.Id);
            var galleryDataModel      = AutoMapper.Mapper.Map <List <Contracts.Models.EventGalleryImage> >(eventGallaryDataModel);

            //if (eventModel.EventSourceId == EventSource.ExperienceOz)
            //{
            var eventCategoryIds = new HashSet <int>(_eventCategoryMappingRepository.GetByEventId((int)eventModel.Id)
                                                     .Select(ce => ce.EventCategoryId));

            eventModel.EventCategoryId = (Int16)eventCategoryIds.FirstOrDefault();
            //}

            var eventCategoryDataModel = _eventCategoryRepository.Get(eventModel.EventCategoryId);
            var eventCategoryModel     = AutoMapper.Mapper.Map <Contracts.Models.EventCategory>(eventCategoryDataModel);

            return(new EventLearnPageQueryResults
            {
                EventType = (EventType)eventModel.EventTypeId,
                EventCategory = eventCategoryModel,
                Event = eventModel,
                EventDetail = eventDetailModel,
                Venue = venueModel,
                City = cityModel,
                State = stateModel,
                Country = countryModel,
                EventGalleryImage = galleryDataModel
            });
        }
Exemplo n.º 4
0
 protected override async Task <ICommandResult> Handle(GoogleAPIUtilityCommand command)
 {
     try
     {
         var venue = _venueRepository.Get(command.VenueId);
         venue.Latitude  = command.Latitude;
         venue.Longitude = command.Longitude;
         _venueRepository.Save(venue);
         return(new GoogleAPIUtilityCommandResult
         {
             Success = true,
         });
     }
     catch (Exception e)
     {
         return(new GoogleAPIUtilityCommandResult
         {
             Success = false
         });
     }
 }
        public SubEventTicketCategoryQueryResult Handle(SubEventTicketCategoryQuery query)
        {
            var eventDetailModelDataModel = _eventDetailRepository.GetById(query.EventDetailId);
            var eventDetailModel          = AutoMapper.Mapper.Map <Contracts.Models.EventDetail>(eventDetailModelDataModel);

            var venueDetailDataModel = _venueRepository.Get(eventDetailModelDataModel.VenueId);
            var venueDetailModel     = AutoMapper.Mapper.Map <Contracts.Models.Venue>(venueDetailDataModel);

            var cityDetailDataModel = _cityRepository.Get(venueDetailDataModel.CityId);
            var cityModel           = AutoMapper.Mapper.Map <Contracts.Models.City>(cityDetailDataModel);

            var eventTicketDetailDataModel = _eventTicketDetailRepository.GetByEventDetailId(eventDetailModelDataModel.Id);
            var eventTicketDetailModel     = AutoMapper.Mapper.Map <IEnumerable <Contracts.Models.EventTicketDetail> >(eventTicketDetailDataModel);

            var ticketCategoryIdList    = eventTicketDetailModel.Select(s => s.TicketCategoryId);
            var ticketCategoryDataModel = _ticketCategoryRepository.GetByEventDetailIds(ticketCategoryIdList);
            var ticketCategoryModel     = AutoMapper.Mapper.Map <IEnumerable <Contracts.Models.TicketCategory> >(ticketCategoryDataModel);

            var eventTicketDetailIdList      = eventTicketDetailModel.Select(s => s.Id);
            var eventTicketDetailIdDataModel = _eventTicketAttributeRepository.GetByEventTicketDetailId(eventTicketDetailIdList);
            var eventTicketAttributeModel    = AutoMapper.Mapper.Map <IEnumerable <Contracts.Models.EventTicketAttribute> >(eventTicketDetailIdDataModel);

            var currencyList  = eventTicketAttributeModel.Select(s => s.CurrencyId).Distinct().FirstOrDefault();
            var currencyModel = AutoMapper.Mapper.Map <Contracts.Models.CurrencyType>(_currencyTypeRepository.Get(currencyList));

            return(new SubEventTicketCategoryQueryResult
            {
                EventDetail = eventDetailModel,
                EventTicketAttribute = eventTicketAttributeModel,
                Venue = venueDetailModel,
                City = cityModel,
                EventTicketDetail = eventTicketDetailModel,
                TicketCategory = ticketCategoryModel,
                CurrencyType = currencyModel
            });
        }
Exemplo n.º 6
0
        public List <PAHDetail> GetPAHDetails(long transactionId)
        {
            var transactionDetail = _transactionDetailRepository.GetByTransactionId(transactionId);

            try
            {
                var feelBarcodeMapping = _feelBarcodeMappingRepository.GetByTransactionDetailIds(transactionDetail.Select(s => s.Id)).ToList();
                List <PAHDetail>           listPAHDetails          = new List <PAHDetail>();
                List <CategoryWiseTickets> categoryWiseTicketsList = new List <CategoryWiseTickets>();
                long[] transactionDetailIds = new long[feelBarcodeMapping.Count];
                if (feelBarcodeMapping.Count() > 0)
                {
                    int i = 0, totalTickets = 0; decimal grptotalPrice = 0;
                    foreach (FeelBarcodeMapping currentBarcode in feelBarcodeMapping)
                    {
                        i++;
                        PAHDetail           pAHDetail           = new PAHDetail();
                        CategoryWiseTickets categoryWiseTickets = new CategoryWiseTickets();
                        var currentTransaction = _transactionRepository.Get(transactionId);
                        // check for hoho timeslot
                        var citySightSeeingTransaction = _citySightSeeingTransactionDetailRepository.GetByTransactionId(currentTransaction.Id);
                        if (citySightSeeingTransaction.HasTimeSlot && citySightSeeingTransaction.TimeSlot != null)
                        {
                            var formatTimeSlot = citySightSeeingTransaction.TimeSlot.Split(":");
                            pAHDetail.TimeSlot = formatTimeSlot[0] + ":" + formatTimeSlot[1];
                        }
                        var currentTransactionDetail     = _transactionDetailRepository.Get(currentBarcode.TransactionDetailId);
                        var currentEventTicketAttributes = _eventTicketAttributeRepository.Get((int)currentTransactionDetail.EventTicketAttributeId);
                        var currentEventTicketDetail     = _eventTicketDetailRepository.Get(currentEventTicketAttributes.EventTicketDetailId);
                        var currentTicketCategory        = _ticketCategoryRepository.Get((int)currentEventTicketDetail.TicketCategoryId);
                        var currentEventDetails          = _eventDetailRepository.Get(currentEventTicketDetail.EventDetailId);
                        var curretVenue = _venueRepository.Get(currentEventDetails.VenueId);
                        var currentCity = _cityRepository.Get(curretVenue.CityId);
                        var currentstate = _stateRepository.Get(currentCity.StateId);
                        var currentcountry = _countryRepository.Get(currentstate.CountryId);
                        var currentEvent = _eventRepository.Get(currentEventDetails.EventId);
                        var currentCurrencyType = _currencyTypeRepository.Get(currentEventTicketAttributes.CurrencyId);
                        var flag = true; var ticketCatName = currentTicketCategory.Name;
                        grptotalPrice += currentEventTicketAttributes.Price;
                        totalTickets  += currentTransactionDetail.TotalTickets;
                        categoryWiseTickets.CategoryName = currentTicketCategory.Name;
                        categoryWiseTickets.TotalTickets = currentTransactionDetail.TotalTickets;
                        if (currentBarcode.GroupCodeExist)
                        {
                            flag = false;
                            if (!transactionDetailIds.Contains(currentBarcode.TransactionDetailId))
                            {
                                transactionDetailIds[i - 1] = currentBarcode.TransactionDetailId;
                                categoryWiseTicketsList.Add(categoryWiseTickets);
                            }
                        }
                        if (currentBarcode.GroupCodeExist && feelBarcodeMapping.Count == i)
                        {
                            flag          = true;
                            ticketCatName = "Group";
                        }
                        if (flag)
                        {
                            pAHDetail.EventId             = currentEvent.Id;
                            pAHDetail.EventName           = currentEvent.Name;
                            pAHDetail.EventStartTime      = (DateTime)currentTransactionDetail.VisitDate;
                            pAHDetail.EventsourceId       = (long)(EventSource)Enum.Parse(typeof(EventSource), currentEvent.EventSourceId.ToString());
                            pAHDetail.Price               = currentBarcode.GroupCodeExist ? grptotalPrice : currentEventTicketAttributes.Price;
                            pAHDetail.TicketCategoryName  = ticketCatName;
                            pAHDetail.TotalTickets        = currentBarcode.GroupCodeExist ? totalTickets : currentTransactionDetail.TotalTickets;
                            pAHDetail.EventDetailsName    = currentEventDetails.Name;
                            pAHDetail.VenueId             = curretVenue.Id;
                            pAHDetail.VenueName           = curretVenue.Name;
                            pAHDetail.CityName            = currentCity.Name;
                            pAHDetail.CountryName         = currentcountry.Name;
                            pAHDetail.BarcodeNumber       = currentBarcode.Barcode;
                            pAHDetail.CurrencyName        = currentCurrencyType.Code;
                            pAHDetail.EventDeatilId       = currentEventDetails.Id;
                            pAHDetail.FirstName           = currentTransaction.FirstName;
                            pAHDetail.LastName            = currentTransaction.LastName;
                            pAHDetail.EmailId             = currentTransaction.EmailId;
                            pAHDetail.PhoneNumber         = currentTransaction.PhoneNumber;
                            pAHDetail.TransactionId       = currentTransaction.Id;
                            pAHDetail.CategoryWiseTickets = AutoMapper.Mapper.Map <List <CategoryWiseTickets> >(categoryWiseTicketsList);
                            listPAHDetails.Add(pAHDetail);
                        }
                    }
                    return(listPAHDetails);
                }
                else
                {
                    return(listPAHDetails);
                }
            }
            catch (Exception ex)
            {
                _logger.Log(Logging.Enums.LogCategory.Error, new Exception(ex.Message));
                return(null);
            }
        }
Exemplo n.º 7
0
 public IHttpActionResult Get(int id)
 {
     return(Json(venueRepository.Get(id)));
 }
        public Venue GetById(int id)
        {
            var entity = _venueRepository.Get(id);

            return(VenueMapper.FromEntity(entity));
        }
Exemplo n.º 9
0
        protected override async Task <ICommandResult> Handle(CreateBookingCommand command)
        {
            CreateBookingCommandResult results = new CreateBookingCommandResult();
            var        transaction             = _transactionRepository.Get(command.TransactionId);
            var        transactionDetail       = _transactionDetailRepository.GetByTransactionId(command.TransactionId);
            RootObject rootObject = new RootObject();

            if (transaction != null)
            {
                IDictionary <string, long> ticketCategoryValues = new Dictionary <string, long>();
                var feelBarcodemapping = _feelBarcodeMappingRepository.GetByTransactionDetailIds(transactionDetail.Select(s => s.Id)).ToList();
                if (feelBarcodemapping.Count() == 0)
                {
                    var transactionDetailModel = AutoMapper.Mapper.Map <IEnumerable <TransactionDetail> >(transactionDetail);
                    GetBarcodeResponseViewModel           getBarcodeResponseViewModel = new GetBarcodeResponseViewModel();
                    FIL.Contracts.Models.FeelBarcode.Data data = new FIL.Contracts.Models.FeelBarcode.Data();
                    Address     address     = new Address();
                    Contact     contact     = new Contact();
                    BookingType bookingType = new BookingType();
                    List <FIL.Contracts.Models.FeelBarcode.BookingDetail> bookingDetails = new List <FIL.Contracts.Models.FeelBarcode.BookingDetail>();
                    foreach (var transactiondetail in transactionDetailModel)
                    {
                        var eventTicketAttributes        = _eventTicketAttributeRepository.Get(transactiondetail.EventTicketAttributeId);
                        var eventTicketDetails           = _eventTicketDetailRepository.Get(eventTicketAttributes.EventTicketDetailId);
                        var eventDetails                 = _eventDetailRepository.Get(eventTicketDetails.EventDetailId);
                        var currentTransaction           = _transactionRepository.Get(transaction.Id);
                        var currentTransactionDetail     = _transactionDetailRepository.Get(transactiondetail.Id);
                        var currentEventTicketAttributes = _eventTicketAttributeRepository.Get((int)currentTransactionDetail.EventTicketAttributeId);
                        var currentEventTicketDetail     = _eventTicketDetailRepository.Get(currentEventTicketAttributes.EventTicketDetailId);
                        var currentTicketCategory        = _ticketCategoryRepository.Get((int)currentEventTicketDetail.TicketCategoryId);
                        var currentEventDetails          = _eventDetailRepository.Get(currentEventTicketDetail.EventDetailId);
                        var curretVenue         = _venueRepository.Get(currentEventDetails.VenueId);
                        var currentCity         = _cityRepository.Get(curretVenue.CityId);
                        var currentstate        = _stateRepository.Get(currentCity.StateId);
                        var currentcountry      = _countryRepository.Get(currentstate.CountryId);
                        var currentEvent        = _eventRepository.Get(currentEventDetails.EventId);
                        var currentCurrencyType = _currencyTypeRepository.Get(currentEventTicketAttributes.CurrencyId);

                        if (currentEvent.EventSourceId == EventSource.CitySightSeeing)
                        {
                            ticketCategoryValues.Add(currentTicketCategory.Name.ToLower(), transactiondetail.Id);
                            var      fromDate   = Convert.ToDateTime(transactiondetail.VisitDate).ToUniversalTime();
                            DateTime localTime1 = fromDate;
                            DateTime endDate    = DateTime.Now;
                            localTime1 = DateTime.SpecifyKind(localTime1, DateTimeKind.Local);
                            DateTimeOffset localTime2 = localTime1;
                            var            mystring   = localTime2.ToString();
                            var            offset     = mystring.Substring(mystring.Length - 6);
                            var            citySightSeeingEventDetailMapping             = _citySightSeeingEventDetailMappingRepository.GetByEventDetailId(currentEventDetails.Id);
                            var            citySightSeeingtickets                        = _citySightSeeingTicketRepository.Get(citySightSeeingEventDetailMapping.CitySightSeeingTicketId);
                            FIL.Contracts.Models.FeelBarcode.BookingDetail bookingDetail = new FIL.Contracts.Models.FeelBarcode.BookingDetail();
                            var citySightSeeingTicketDetails     = _citySightSeeingTicketDetailRepository.GetByTicketId(citySightSeeingtickets.TicketId);
                            var bookingDistributorReference      = RandomDigits(10);
                            var citySightSeeingTransactionDetail = new CitySightSeeingTransactionDetail();
                            if (citySightSeeingTicketDetails.TicketClass != 1)
                            {
                                citySightSeeingTransactionDetail = _citySightSeeingTransactionDetailRepository.GetByTransactionId(transactiondetail.TransactionId);
                                bookingType.from_date_time       = citySightSeeingTransactionDetail.FromDateTime;
                                bookingType.to_date_time         = citySightSeeingTransactionDetail.EndDateTime;
                                data.reservation_reference       = citySightSeeingTransactionDetail.ReservationReference;
                            }

                            var citySightSeeingLocations = _citySightSeeingLocationRepository.Get(citySightSeeingtickets.CitySightSeeingLocationId);

                            var locationDetail = await _googleMapApi.GetLatLongFromAddress(citySightSeeingLocations.Name);

                            string tz = ""; DateTime fromDateTime = DateTime.Now;; var offsetTime = "";
                            var    duration = citySightSeeingTicketDetails.Duration;
                            double lat      = Convert.ToDouble(locationDetail.Result.lat);
                            double lng      = Convert.ToDouble(locationDetail.Result.lng);
                            tz = TimeZoneLookup.GetTimeZone(lat, lng).Result;
                            TimeZoneInfo tzi           = TZConvert.GetTimeZoneInfo(tz);
                            var          visitDateTime = Convert.ToDateTime(transactiondetail.VisitDate);
                            var          timeSlot      = citySightSeeingTicketDetails.TicketClass == 1 ? "00:00" : citySightSeeingTransactionDetail.TimeSlot;
                            var          utcOffset     = tzi.BaseUtcOffset.ToString().Split(":")[0];
                            if (utcOffset.Contains("-"))
                            {
                                offset = utcOffset;
                            }
                            else
                            {
                                offset = "+" + utcOffset;
                            }
                            var formattedDateTime = visitDateTime.Year + "-" + visitDateTime.Month + "-" + visitDateTime.Day + "T" + timeSlot;
                            fromDate = Convert.ToDateTime(formattedDateTime);
                            if (duration.Contains("day"))
                            {
                                string[] day = duration.Split("day");
                                endDate = fromDate.AddDays(Convert.ToDouble(day[0]));
                            }
                            if (duration.Contains("hour"))
                            {
                                string[] hour = duration.Split("hour");
                                endDate = fromDate.AddHours(Convert.ToDouble(hour[0]));
                            }
                            var formattedEndDate = endDate.Year + "-" + endDate.Month + "-" + endDate.Day + "T" + endDate.TimeOfDay.ToString();
                            bookingType.from_date_time  = formattedDateTime + offset;
                            bookingType.to_date_time    = formattedEndDate + offset;
                            bookingDetail.ticket_type   = (currentTicketCategory.Name).ToUpper();
                            bookingDetail.count         = currentTransactionDetail.TotalTickets;
                            bookingDetail.extra_options = null;
                            bookingDetails.Add(bookingDetail);

                            bookingType.ticket_id = citySightSeeingTicketDetails.TicketId;
                            address.street        = curretVenue.Name;
                            address.postal_code   = "432243";
                            address.city          = currentCity.Name;

                            contact.address             = address;
                            contact.phonenumber         = currentTransaction.PhoneNumber;
                            data.currency               = currentCurrencyType.Code;
                            bookingType.booking_details = bookingDetails;
                            data.distributor_id         = _settings.GetConfigSetting <string>(SettingKeys.Integration.CitySightSeeing.DistributorId);
                            data.booking_type           = bookingType;
                            data.booking_name           = transaction.FirstName;
                            data.booking_email          = transaction.EmailId;
                            data.contact               = contact;
                            data.notes                 = null;
                            data.product_language      = "en";
                            data.distributor_reference = bookingDistributorReference;
                            rootObject.request_type    = "booking";
                            rootObject.data            = data;
                            var responeBooking = await GetBarcodeAsync(rootObject, transaction.Id, ticketCategoryValues);

                            if (responeBooking.data != null)
                            {
                                if (citySightSeeingTicketDetails.TicketClass != 1)
                                {
                                    citySightSeeingTransactionDetail.BookingReference            = responeBooking.data.booking_reference;
                                    citySightSeeingTransactionDetail.BookingDistributorReference = responeBooking.data.distributor_reference;
                                    citySightSeeingTransactionDetail.IsOrderConfirmed            = true;
                                    _citySightSeeingTransactionDetailRepository.Save(citySightSeeingTransactionDetail);
                                }
                                else
                                {
                                    _citySightSeeingTransactionDetailRepository.Save(new CitySightSeeingTransactionDetail
                                    {
                                        AltId                       = Guid.NewGuid(),
                                        FromDateTime                = fromDate.ToString() + offset,
                                        EndDateTime                 = endDate.ToString() + offset,
                                        HasTimeSlot                 = false,
                                        BookingReference            = responeBooking.data.booking_reference,
                                        BookingDistributorReference = bookingDistributorReference,
                                        TicketId                    = citySightSeeingtickets.TicketId,
                                        TransactionId               = command.TransactionId,
                                        IsOrderConfirmed            = true,
                                        ModifiedBy                  = command.ModifiedBy
                                    });
                                }
                                results.Success = true;
                                return(results);
                            }
                            else
                            {
                                results.Success = false;
                                return(results);
                            }
                        }
                    }
                }
                else
                {
                    results.IsExists = true;
                    return(results);
                }
            }
            else
            {
                results.Success = false;
                return(results);
            }
            return(results);
        }