protected void UpdateEventDetail(FIL.Contracts.Commands.CreateEventV1.EventRecurranceCommand eventRecurranceCommand)
        {
            var scheduleDetails = _getScheduleDetailProvider.GetScheduleDetails(eventRecurranceCommand.EventId, DateTime.UtcNow, DateTime.UtcNow, true).FirstOrDefault();
            var eventDetail     = _eventDetailRepository.GetByEventId(eventRecurranceCommand.EventId);

            eventDetail.StartDateTime = scheduleDetails.StartDateTime;
            eventDetail.EndDateTime   = scheduleDetails.EndDateTime;
            eventDetail.IsEnabled     = true;
            _eventDetailRepository.Save(eventDetail);
        }
예제 #2
0
        public List <FIL.Contracts.DataModels.ScheduleDetail> GetScheduleDetails(FIL.Contracts.Commands.CreateEventV1.EventRecurranceCommand eventRecurranceCommand)
        {
            List <FIL.Contracts.DataModels.ScheduleDetail> eventSchedules = new List <Contracts.DataModels.ScheduleDetail>();

            if (eventRecurranceCommand.ActionType == Contracts.Commands.CreateEventV1.ActionType.BulkDelete)
            {
                var alleventSchedules = _eventScheduleRepository.GetAllByEventId(eventRecurranceCommand.EventId);
                var eventDetails      = _eventDetailRepository.GetByEventId(eventRecurranceCommand.EventId);
                var eventAttributes   = _eventAttributeRepository.GetByEventDetailId(eventDetails.Id);
                var StartDate         = eventRecurranceCommand.StartDateTime; // new DateTime(eventRecurranceCommand.StartDateTime.Year, eventRecurranceCommand.StartDateTime.Month, eventRecurranceCommand.StartDateTime.Day).ToUniversalTime();
                var EndDate           = eventRecurranceCommand.EndDateTime;   // new DateTime(eventRecurranceCommand.EndDateTime.Year, eventRecurranceCommand.EndDateTime.Month, eventRecurranceCommand.EndDateTime.Day).ToUniversalTime();
                var scheduleDetails   = _scheduleDetailRepository.GetAllByEventScheduleIds(alleventSchedules.Select(s => s.Id).ToList()).Where(s => s.StartDateTime.Date >= StartDate.Date && s.EndDateTime.Date <= EndDate.Date).OrderBy(s => s.StartDateTime).ToList();

                foreach (var scheduleDetail in scheduleDetails)
                {
                    var startDate = _localTimeZoneConvertProvider.ConvertToLocal(scheduleDetail.StartDateTime, eventAttributes.TimeZone);
                    var endDate   = _localTimeZoneConvertProvider.ConvertToLocal(scheduleDetail.EndDateTime, eventAttributes.TimeZone);
                    if (startDate.ToString(@"HH:mm", new CultureInfo("en-US")) == eventRecurranceCommand.LocalStartTime && endDate.ToString(@"HH:mm", new CultureInfo("en-US")) == eventRecurranceCommand.LocalEndTime)
                    {
                        eventSchedules.Add(scheduleDetail);
                    }
                }
                return(eventSchedules);
                //  return scheduleDetails.Where(s => s.StartDateTime.ToString(@"HH:mm", new CultureInfo("en-US")) == eventRecurranceCommand.StartDateTime.ToString(@"HH:mm", new CultureInfo("en-US")) && s.EndDateTime.ToString(@"HH:mm", new CultureInfo("en-US")) == eventRecurranceCommand.EndDateTime.ToString(@"HH:mm", new CultureInfo("en-US"))).ToList();
            }
            else
            {
                var scheduleDetail = _scheduleDetailRepository.Get(eventRecurranceCommand.ScheduleDetailId);
                eventSchedules.Add(scheduleDetail);
                return(eventSchedules);
            }
        }
예제 #3
0
 protected override async Task <ICommandResult> Handle(EventPerformanceCommand command)
 {
     try
     {
         var eventDetail     = _eventDetailRepository.GetByEventId(command.EventId);
         var liveEventDetail = SaveLiveEventDetail(command, eventDetail);
         var eventData       = _eventRepository.Get(eventDetail.EventId);
         command.PerformanceTypeModel.Id      = liveEventDetail.Id;
         command.PerformanceTypeModel.EventId = command.EventId;
         var eventStepDetail = _stepProvider.SaveEventStepDetails(command.EventId, command.CurrentStep, true, command.ModifiedBy);
         return(new EventPerformanceCommandResult
         {
             Success = true,
             EventId = command.EventId,
             EventAltId = eventData.AltId,
             OnlineEventType = command.PerformanceTypeModel.OnlineEventTypeId.ToString(),
             CompletedStep = eventStepDetail.CompletedStep,
             CurrentStep = eventStepDetail.CurrentStep,
             PerformanceTypeModel = command.PerformanceTypeModel
         });
     }
     catch (Exception e)
     {
         _logger.Log(LogCategory.Error, e);
         return(new EventPerformanceCommandResult {
         });
     }
 }
예제 #4
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
            });
        }
 protected override async Task <ICommandResult> Handle(EventScheduleCommand command)
 {
     try
     {
         var currentEvent       = _eventRepository.Get(command.EventScheduleModel.EventId);
         var currentEventDetail = _eventDetailRepository.GetByEventId(command.EventScheduleModel.EventId);
         var placeWeekOpen      = _placeWeekOpenDaysRepository.GetByEventId(command.EventScheduleModel.EventId);
         var dayTimeMappings    = _dayTimeMappingsRepository.GetAllByPlaceWeekOpenDays(placeWeekOpen.Select(s => s.Id).ToList());
         if (currentEventDetail != null && command.EventFrequencyType == Contracts.Enums.EventFrequencyType.Recurring)
         {
             return(new EventScheduleCommandResult
             {
                 Success = true,
                 EventScheduleModel = command.EventScheduleModel
             });
         }
         if (currentEventDetail != null && command.EventScheduleModel.EventDetailId == 0)
         {
             command.EventScheduleModel.EventDetailId = currentEventDetail.Id;
         }
         foreach (var currentDayTimeMapping in dayTimeMappings)
         {
             _dayTimeMappingsRepository.Delete(currentDayTimeMapping);
         }
         foreach (var currentPlaceWeekOpen in placeWeekOpen)
         {
             _placeWeekOpenDaysRepository.Delete(currentPlaceWeekOpen);
         }
         var eventDetail       = SaveEventDetail(command, currentEvent);
         var placeWeekOpenDays = SavePlaceWeekOpenDays(command, currentEvent);
         SaveDayTimeMappings(command, placeWeekOpenDays);
         SaveEventAttribute(command, eventDetail);
         UpdateLiveEventDetails(eventDetail);
         command.EventScheduleModel.EventDetailId = eventDetail.Id;
         var eventStepDetail = _stepProvider.SaveEventStepDetails(eventDetail.EventId, command.CurrentStep, true, command.ModifiedBy);
         return(new EventScheduleCommandResult
         {
             Success = true,
             CompletedStep = eventStepDetail.CompletedStep,
             CurrentStep = eventStepDetail.CurrentStep,
             EventScheduleModel = command.EventScheduleModel
         });
     }
     catch (Exception e)
     {
         _logger.Log(LogCategory.Error, e);
         return(new EventScheduleCommandResult {
         });
     }
 }
예제 #6
0
        private void UpdateEventDetailName(EventDetailsCommand command)
        {
            var eventDetail = _eventDetailRepository.GetByEventId(command.EventDetail.EventId);

            if (eventDetail != null)
            {
                eventDetail.Name       = command.EventDetail.Name;
                eventDetail.IsEnabled  = true;
                eventDetail.CreatedUtc = eventDetail.Id != 0 ? eventDetail.CreatedUtc : DateTime.UtcNow;
                eventDetail.UpdatedUtc = eventDetail.Id != 0 ? DateTime.UtcNow : eventDetail.CreatedUtc;
                eventDetail.CreatedBy  = eventDetail.Id != 0 ? eventDetail.CreatedBy : command.ModifiedBy;
                eventDetail.UpdatedBy  = command.ModifiedBy;
                eventDetail.ModifiedBy = command.ModifiedBy;
                _eventDetailRepository.Save(eventDetail);
            }
        }
예제 #7
0
 protected override async Task <ICommandResult> Handle(CreateTicketCommand command)
 {
     try
     {
         List <FIL.Contracts.Models.CreateEventV1.TicketModel> ticketModelList = new List <FIL.Contracts.Models.CreateEventV1.TicketModel>();
         var eventDetail = _eventDetailRepository.GetByEventId(command.EventId);
         var etdTicketCategoryMapping = _eventTicketDetailTicketCategoryTypeMappingRepository.GetByEventTicketDetails(command.Tickets.Select(s => s.ETDId).ToList());
         var eventTicketDetails       = _eventTicketDetailRepository.GetByEventDetailId(eventDetail.Id).ToList();
         var eventTicketAttributes    = _eventTicketAttributeRepository.GetByEventTicketDetailIds(eventTicketDetails.Select(s => s.Id).ToList()).ToList();
         var currency = _currencyTypeRepository.Get(command.Tickets.FirstOrDefault().CurrencyId);
         foreach (var currentEta in eventTicketAttributes)
         {
             currentEta.CurrencyId = currency.Id;
             _eventTicketAttributeRepository.Save(currentEta);
         }
         eventTicketDetails    = eventTicketDetails.Where(s => command.Tickets.Any(p => p.ETDId == s.Id)).ToList();
         eventTicketAttributes = eventTicketAttributes.Where(s => command.Tickets.Any(p => p.ETDId == s.EventTicketDetailId)).ToList();
         foreach (var ticketModel in command.Tickets)
         {
             ticketModel.CurrencyCode     = currency.Code;
             ticketModel.TicketCategoryId = SaveTicketCategory(command, ticketModel).Id;
             var etd = SaveEventTicketDetails(command, ticketModel, eventDetail, eventTicketDetails);
             ticketModel.ETDId       = etd.Id;
             ticketModel.TicketAltId = etd.AltId;
             var currentEventTicketAttribute = SaveEventTicketAttribute(command, ticketModel, eventTicketAttributes);
             SaveEventticketDetailTicketCategoryTypeMappings(command, ticketModel);
             SaveTicketDiscount(command, currentEventTicketAttribute.Id, eventDetail.Name);
             ticketModelList.Add(ticketModel);
         }
         SaveEventStripeMappings(command.EventId, command.Tickets.FirstOrDefault().CurrencyId);
         SaveDonationDetail(command);
         var eventStepDetail = _stepProvider.SaveEventStepDetails(command.EventId, command.CurrentStep, true, command.ModifiedBy);
         return(new CreateTicketCommandResult
         {
             Tickets = ticketModelList,
             CompletedStep = eventStepDetail.CompletedStep,
             CurrentStep = eventStepDetail.CurrentStep,
             Success = true
         });
     }
     catch (Exception e)
     {
         _logger.Log(LogCategory.Error, e);
         return(new CreateTicketCommandResult {
         });
     }
 }
예제 #8
0
 public FIL.Contracts.DataModels.CurrencyType GetEventCurrency(FIL.Contracts.DataModels.Event @event)
 {
     try
     {
         var eventDetails         = _eventDetailRepository.GetByEventId(@event.Id);
         var eventTicketDetail    = _eventTicketDetailRepository.GetByEventDetailId(eventDetails.Id).FirstOrDefault();
         var eventTicketAttribute = _eventTicketAttributeRepository.GetByEventTicketDetailId(eventTicketDetail.Id);
         var currency             = _currencyTypeRepository.Get(eventTicketAttribute.CurrencyId);
         return(currency);
     }
     catch (Exception e)
     {
         _logger.Log(FIL.Logging.Enums.LogCategory.Error, e);
         return(new FIL.Contracts.DataModels.CurrencyType {
         });
     }
 }
예제 #9
0
 public EventScheduleQueryResult Handle(EventScheduleQuery query)
 {
     try
     {
         FIL.Contracts.Models.CreateEventV1.EventScheduleModel eventScheduleModel = new FIL.Contracts.Models.CreateEventV1.EventScheduleModel();
         var currentEvent = _eventRepository.Get(query.EventId);
         if (currentEvent == null)
         {
             return(new EventScheduleQueryResult {
                 Success = true, EventScheduleModel = eventScheduleModel
             });
         }
         var currentEventDetail = _eventDetailRepository.GetByEventId(query.EventId);
         if (currentEventDetail == null)
         {
             eventScheduleModel.EventFrequencyType = Contracts.Enums.EventFrequencyType.Single;
             eventScheduleModel.StartDateTime      = DateTime.UtcNow;
             eventScheduleModel.EndDateTime        = DateTime.UtcNow;
             return(new EventScheduleQueryResult
             {
                 Success = true,
                 IsValidLink = true,
                 IsDraft = true,
                 EventScheduleModel = eventScheduleModel
             });
         }
         var eventAttribute   = _eventAttributeRepository.GetByEventDetailId(currentEventDetail.Id);
         var placeWeekOpenDay = _placeWeekOpenDaysRepository.GetByEventId(currentEvent.Id).FirstOrDefault();
         var dayTImeMappings  = _dayTimeMappingsRepository.GetAllByPlaceWeekOpenDay(placeWeekOpenDay.Id).FirstOrDefault();
         eventScheduleModel.DayId               = (int)placeWeekOpenDay.DayId;
         eventScheduleModel.StartDateTime       = currentEventDetail.StartDateTime;
         eventScheduleModel.EndDateTime         = currentEventDetail.EndDateTime;
         eventScheduleModel.EventDetailId       = currentEventDetail.Id;
         eventScheduleModel.IsEnabled           = currentEventDetail.IsEnabled;
         eventScheduleModel.LocalStartTime      = dayTImeMappings.StartTime;
         eventScheduleModel.LocalEndTime        = dayTImeMappings.EndTime;
         eventScheduleModel.TimeZoneAbbrivation = eventAttribute.TimeZoneAbbreviation;
         eventScheduleModel.TimeZoneOffset      = eventAttribute.TimeZone;
         eventScheduleModel.EventId             = currentEvent.Id;
         eventScheduleModel.EventFrequencyType  = currentEventDetail.EventFrequencyType;
         if (currentEventDetail.EventFrequencyType == Contracts.Enums.EventFrequencyType.Recurring)
         {
             eventScheduleModel.StartDateTime  = currentEventDetail.StartDateTime;
             eventScheduleModel.EndDateTime    = currentEventDetail.EndDateTime;
             eventScheduleModel.LocalStartTime = _localTimeZoneConvertProvider.ConvertToLocal(currentEventDetail.StartDateTime, eventAttribute.TimeZone).ToString(@"HH:mm", new CultureInfo("en-US"));
             eventScheduleModel.LocalEndTime   = _localTimeZoneConvertProvider.ConvertToLocal(currentEventDetail.EndDateTime, eventAttribute.TimeZone).ToString(@"HH:mm", new CultureInfo("en-US"));
         }
         else
         {
             eventScheduleModel.EventFrequencyType = currentEventDetail.EventFrequencyType;
         }
         return(new EventScheduleQueryResult
         {
             Success = true,
             IsDraft = false,
             IsValidLink = true,
             EventScheduleModel = eventScheduleModel
         });
     }
     catch (Exception e)
     {
         return(new EventScheduleQueryResult
         {
             IsValidLink = true,
             IsDraft = false
         });
     }
 }
예제 #10
0
        public List <FIL.Contracts.Models.CreateEventV1.EventRecurranceScheduleModel> GetScheduleDetails(long EventId,
                                                                                                         DateTime StartDate,
                                                                                                         DateTime EndDate,
                                                                                                         bool IsGetDateRange = false,
                                                                                                         bool IsGetAll       = false
                                                                                                         )
        {
            List <FIL.Contracts.Models.CreateEventV1.EventRecurranceScheduleModel> eventRecurranceScheduleModels = new List <FIL.Contracts.Models.CreateEventV1.EventRecurranceScheduleModel>();
            var allScheduleDetails = new List <FIL.Contracts.DataModels.ScheduleDetail>();
            var eventSchedules     = _eventScheduleRepository.GetAllByEventId(EventId);
            var eventDetails       = _eventDetailRepository.GetByEventId(EventId);

            if (eventDetails == null && IsGetDateRange)
            {
                return(eventRecurranceScheduleModels);
            }
            var eventAttributes = _eventAttributeRepository.GetByEventDetailId(eventDetails.Id);

            if (IsGetDateRange)
            {
                allScheduleDetails = _scheduleDetailRepository.GetAllByEventScheduleIds(eventSchedules.Select(s => s.Id).ToList()).ToList();
                FIL.Contracts.Models.CreateEventV1.EventRecurranceScheduleModel eventRecurranceScheduleModel = new FIL.Contracts.Models.CreateEventV1.EventRecurranceScheduleModel();
                if (!allScheduleDetails.Any())
                {
                    return(eventRecurranceScheduleModels);
                }
                eventRecurranceScheduleModel.StartDateTime = allScheduleDetails.OrderBy(s => s.StartDateTime).FirstOrDefault().StartDateTime;
                eventRecurranceScheduleModel.EndDateTime   = allScheduleDetails.OrderBy(s => s.StartDateTime).LastOrDefault().EndDateTime;
                eventRecurranceScheduleModels.Add(eventRecurranceScheduleModel);
                return(eventRecurranceScheduleModels);
            }
            allScheduleDetails = _scheduleDetailRepository.GetAllByEventScheduleIds(eventSchedules.Select(s => s.Id).ToList()).OrderBy(s => s.StartDateTime).ToList();
            var scheduleDetails = allScheduleDetails.OrderBy(s => s.StartDateTime).ToList();

            if (!IsGetAll)
            {
                scheduleDetails = allScheduleDetails.Where(s => s.StartDateTime >= new DateTime(StartDate.Year, StartDate.Month, StartDate.Day, 00, 00, 00).ToUniversalTime() && s.EndDateTime <= new DateTime(EndDate.Year, EndDate.Month, EndDate.Day, 23, 59, 00).ToUniversalTime()).OrderBy(s => s.StartDateTime).ToList();
            }
            foreach (var scheduleDetail in scheduleDetails)
            {
                FIL.Contracts.Models.CreateEventV1.EventRecurranceScheduleModel eventRecurranceScheduleModel = new FIL.Contracts.Models.CreateEventV1.EventRecurranceScheduleModel();
                var currentEventSchedule = eventSchedules.Where(s => s.Id == scheduleDetail.EventScheduleId).FirstOrDefault();
                var startDate            = _localTimeZoneConvertProvider.ConvertToLocal(scheduleDetail.StartDateTime, eventAttributes.TimeZone);
                var endDate = _localTimeZoneConvertProvider.ConvertToLocal(scheduleDetail.EndDateTime, eventAttributes.TimeZone);
                eventRecurranceScheduleModel.EventScheduleId                       = currentEventSchedule.Id;
                eventRecurranceScheduleModel.DayIds                                = currentEventSchedule.DayId;
                eventRecurranceScheduleModel.ScheduleDetailId                      = scheduleDetail.Id;
                eventRecurranceScheduleModel.IsEnabled                             = scheduleDetail.IsEnabled;
                eventRecurranceScheduleModel.StartDateTime                         = scheduleDetail.StartDateTime;
                eventRecurranceScheduleModel.EndDateTime                           = scheduleDetail.EndDateTime;
                eventRecurranceScheduleModel.LocalStartDateTime                    = startDate;
                eventRecurranceScheduleModel.LocalEndDateTime                      = endDate;
                eventRecurranceScheduleModel.EventScheduleStartDateTime            = allScheduleDetails.FirstOrDefault().StartDateTime;
                eventRecurranceScheduleModel.EventScheduleEndDateTime              = allScheduleDetails.LastOrDefault().EndDateTime;
                eventRecurranceScheduleModel.LocalStartTime                        = startDate.ToString(@"HH:mm", new CultureInfo("en-US"));
                eventRecurranceScheduleModel.LocalEndTime                          = endDate.ToString(@"HH:mm", new CultureInfo("en-US"));
                eventRecurranceScheduleModel.LocalStartDateString                  = startDate.DayOfWeek + ", " + startDate.ToString(@"MMM dd, yyyy", new CultureInfo("en-US"));
                eventRecurranceScheduleModel.LocalEndDateString                    = endDate.DayOfWeek + ", " + endDate.ToString(@"MMM dd, yyyy", new CultureInfo("en-US"));
                eventRecurranceScheduleModel.LocalEventScheduleStartDateTimeString = allScheduleDetails.FirstOrDefault().StartDateTime.DayOfWeek + ", " + allScheduleDetails.FirstOrDefault().StartDateTime.ToString(@"MMM dd, yyyy", new CultureInfo("en-US"));
                eventRecurranceScheduleModel.LocalEventScheduleEndDateTimeString   = allScheduleDetails.LastOrDefault().EndDateTime.DayOfWeek + ", " + allScheduleDetails.LastOrDefault().EndDateTime.ToString(@"MMM dd, yyyy", new CultureInfo("en-US"));
                eventRecurranceScheduleModels.Add(eventRecurranceScheduleModel);
            }
            return(eventRecurranceScheduleModels);
        }
예제 #11
0
        //FinancDetailsByIdQueryResults IQueryHandler<FinancDetailsByIdQuery, FinancDetailsByIdQueryResults>.Handle(FinancDetailsByIdQuery query)
        public FinancDetailsByIdQueryResults Handle(FinancDetailsByIdQuery query)
        {
            FIL.Contracts.DataModels.FinanceDetail financeDetails   = new FIL.Contracts.DataModels.FinanceDetail();
            FIL.Contracts.DataModels.EventDetail   eventDetail      = new FIL.Contracts.DataModels.EventDetail();
            FIL.Contracts.DataModels.Event         eventRes         = new FIL.Contracts.DataModels.Event();
            FIL.Contracts.DataModels.Venue         venueDetail      = new FIL.Contracts.DataModels.Venue();
            FIL.Contracts.DataModels.Venue         venueDetailRes   = new FIL.Contracts.DataModels.Venue();
            FIL.Contracts.DataModels.City          cityDetailRes    = new Contracts.DataModels.City();
            FIL.Contracts.DataModels.State         stateDetailRes   = new Contracts.DataModels.State();
            FIL.Contracts.DataModels.Country       countryDetailRes = new Contracts.DataModels.Country();

            var eventResult = _eventRepository.GetByAltId(query.EventId);

            var eventDetailRes = _eventDetailRepository.GetByEventId(eventResult.Id);

            var financedetail = _financeDetailRepository.GetFinanceDetailsByEventId(eventResult.Id);

            if (eventDetailRes != null)
            {
                venueDetailRes = _venueRepository.GetByVenueId((int)eventDetailRes.VenueId);

                if (venueDetailRes != null)
                {
                    cityDetailRes = _cityRepository.GetByCityId(venueDetailRes.CityId);
                }

                if (cityDetailRes != null)
                {
                    stateDetailRes = _stateRepository.GetByStateId(cityDetailRes.StateId);
                }

                if (stateDetailRes != null)
                {
                    countryDetailRes = _countryRepository.GetByCountryId(stateDetailRes.CountryId);
                }
            }
            var resultdata = new FinancDetailsByIdQueryResults();

            if (financedetail != null)
            {
                resultdata.FirstName = financedetail.FirstName;
                resultdata.Id        = financedetail.Id;

                resultdata.LastName        = financedetail.LastName;
                resultdata.AccountNickName = financedetail.AccountNickName;
                resultdata.BankName        = financedetail.BankName;
                resultdata.BankAccountType = financedetail.BankAccountType;
                resultdata.BankName        = financedetail.BankName;
                resultdata.PANNo           = financedetail.PANNo;
                resultdata.RoutingNo       = financedetail.RoutingNo;
                resultdata.GSTNo           = financedetail.GSTNo;
                resultdata.AccountNo       = financedetail.AccountNo;
                resultdata.AccountNickName = financedetail.AccountNickName;
                resultdata.CountryId       = financedetail.CountryId;
                resultdata.StateId         = financedetail.StateId;
                resultdata.CurrencyId      = financedetail.CurrencyId;
                resultdata.FinancialsAccountBankAccountGSTInfo = financedetail.FinancialsAccountBankAccountGSTInfo;
            }
            resultdata.EventId = eventResult.Id;
            if (venueDetailRes != null)
            {
                resultdata.location = venueDetailRes.Name;
                resultdata.address1 = venueDetailRes.AddressLineOne;
                resultdata.address2 = venueDetailRes.AddressLineOne;
            }
            if (eventDetailRes != null)
            {
                resultdata.EventDetailId = (int)(eventDetailRes.Id);
            }
            if (stateDetailRes != null)
            {
                resultdata.state = stateDetailRes.Name;
            }
            if (cityDetailRes != null)
            {
                resultdata.city = cityDetailRes.Name;
            }
            if (countryDetailRes != null)
            {
                resultdata.country = countryDetailRes.Name;
            }
            return(resultdata);
        }
예제 #12
0
        public TicketQueryResult Handle(TicketQuery query)
        {
            try
            {
                List <FIL.Contracts.Models.CreateEventV1.TicketModel> ticketModelList = new List <FIL.Contracts.Models.CreateEventV1.TicketModel>();
                var currentEvent = _eventRepository.Get(query.EventId);
                if (currentEvent == null)
                {
                    return(new TicketQueryResult {
                        Success = true
                    });
                }
                var eventDetail = _eventDetailRepository.GetByEventId(query.EventId);
                if (eventDetail == null)
                {
                    return(new TicketQueryResult
                    {
                        Success = true,
                        IsDraft = true,
                        IsValidLink = true,
                        Tickets = ticketModelList
                    });
                }
                var eventTicketDetails = _eventTicketDetailRepository.GetByEventDetailId(eventDetail.Id);
                var eventTicketDetailTicketCategoryMappingData = _eventTicketDetailTicketCategoryTypeMappingRepository.GetByEventTicketDetails(eventTicketDetails.Select(s => s.Id).ToList()).ToList();
                if (query.TicketCategoryTypeId == 2)
                {
                    eventTicketDetailTicketCategoryMappingData = eventTicketDetailTicketCategoryMappingData.Where(s => s.TicketCategoryTypeId == 2).ToList();
                    eventTicketDetails = eventTicketDetails.Where(p => eventTicketDetailTicketCategoryMappingData.Any(p2 => p2.EventTicketDetailId == p.Id) || (p.TicketCategoryId == 19452 || p.TicketCategoryId == 12259));
                    if (!eventTicketDetails.Any())
                    {
                        return(new TicketQueryResult
                        {
                            EventDetailId = eventDetail.Id,
                            EventId = currentEvent.Id,
                            Success = true,
                            IsValidLink = true,
                            Tickets = ticketModelList
                        });
                    }
                }
                else
                {
                    eventTicketDetailTicketCategoryMappingData = eventTicketDetailTicketCategoryMappingData.Where(s => s.TicketCategoryTypeId != 2).ToList();
                    eventTicketDetails = eventTicketDetails.Where(p => eventTicketDetailTicketCategoryMappingData.Any(p2 => p2.EventTicketDetailId == p.Id));
                }
                var ticketCategories      = _ticketCategoryRepository.GetByTicketCategoryIds(eventTicketDetails.Select(s => s.TicketCategoryId));
                var eventTicketAttributes = _eventTicketAttributeRepository.GetByEventTicketDetailIds(eventTicketDetails.Select(s => s.Id));
                var currency = _currencyTypeRepository.GetByCurrencyIds(eventTicketAttributes.Select(s => s.CurrencyId).ToList());
                var eventTicketDiscountDetails = _eventTicketDiscountDetailRepository.GetAllByEventTicketAttributeIds(eventTicketAttributes.Select(s => s.Id).ToList());
                var discounts          = _discountRepository.GetAllDiscountsByIds(eventTicketDiscountDetails.Select(s => (long)s.DiscountId).ToList());
                var discountPromoCodes = _discountPromoCodeRepository.GetAllDiscountIds(discounts.Select(s => (long)s.Id).ToList());
                foreach (var currentEventTicketDetail in eventTicketDetails)
                {
                    FIL.Contracts.Models.CreateEventV1.TicketModel newTicketModel = new FIL.Contracts.Models.CreateEventV1.TicketModel();
                    var currentTicketCat            = ticketCategories.Where(s => s.Id == currentEventTicketDetail.TicketCategoryId).FirstOrDefault();
                    var currentEventTicketAttribute = eventTicketAttributes.Where(s => s.EventTicketDetailId == currentEventTicketDetail.Id).FirstOrDefault();
                    var currentEventTicketDetailTicketCategoryMappingData = eventTicketDetailTicketCategoryMappingData.Where(s => s.EventTicketDetailId == currentEventTicketDetail.Id).FirstOrDefault();
                    var currentEventTicketDiscountDetails = eventTicketDiscountDetails.Where(s => s.EventTicketAttributeId == currentEventTicketAttribute.Id).FirstOrDefault();
                    var currentDiscount = currentEventTicketDiscountDetails != null?discounts.Where(s => s.Id == currentEventTicketDiscountDetails.DiscountId).FirstOrDefault() : null;

                    var currentDiscountPromoCodes = currentDiscount != null?discountPromoCodes.Where(s => s.DiscountId == currentDiscount.Id).FirstOrDefault() : null;

                    var donationDetail = new FIL.Contracts.DataModels.DonationDetail();
                    if (currentEventTicketDetail.TicketCategoryId == 19452 || currentEventTicketDetail.TicketCategoryId == 12259)
                    {
                        donationDetail = _donationDetailRepository.GetByEventId(query.EventId);
                    }
                    newTicketModel.TicketAltId          = currentEventTicketDetail.AltId;
                    newTicketModel.ETDId                = currentEventTicketDetail.Id;
                    newTicketModel.TicketCategoryId     = currentTicketCat.Id;
                    newTicketModel.Name                 = currentTicketCat.Name;
                    newTicketModel.Price                = currentEventTicketAttribute.Price;
                    newTicketModel.Quantity             = currentEventTicketAttribute.AvailableTicketForSale;
                    newTicketModel.Description          = currentEventTicketAttribute.TicketCategoryDescription;
                    newTicketModel.CurrencyId           = currentEventTicketAttribute.CurrencyId;
                    newTicketModel.TicketCategoryTypeId = currentEventTicketDetailTicketCategoryMappingData == null ? 1 : (currentEventTicketDetailTicketCategoryMappingData != null && currentEventTicketDetailTicketCategoryMappingData.TicketCategoryTypeId == 1) ? 1 : 2;
                    newTicketModel.isEnabled            = currentEventTicketDetail.IsEnabled;
                    newTicketModel.CurrencyCode         = currency.Where(s => s.Id == currentEventTicketAttribute.CurrencyId).FirstOrDefault().Code;
                    newTicketModel.TotalQuantity        = currentEventTicketAttribute.AvailableTicketForSale;
                    newTicketModel.RemainingQuantity    = currentEventTicketAttribute.RemainingTicketForSale;
                    newTicketModel.DiscountAmount       = currentDiscount != null && currentDiscount.DiscountValueTypeId == Contracts.Enums.DiscountValueType.Flat ? currentDiscount.DiscountValue : 0;
                    newTicketModel.IsDiscountEnable     = currentEventTicketDiscountDetails != null ? currentEventTicketDiscountDetails.IsEnabled : false;
                    newTicketModel.DiscountPercentage   = currentDiscount != null && currentDiscount.DiscountValueTypeId == Contracts.Enums.DiscountValueType.Percentage ? currentDiscount.DiscountValue : 0;
                    newTicketModel.PromoCode            = currentDiscountPromoCodes != null ? currentDiscountPromoCodes.PromoCode : null;
                    newTicketModel.DiscountValueType    = currentDiscount != null ? currentDiscount.DiscountValueTypeId : Contracts.Enums.DiscountValueType.Flat;
                    newTicketModel.DonationAmount1      = donationDetail != null ? donationDetail.DonationAmount1 : 0;
                    newTicketModel.DonationAmount2      = donationDetail != null ? donationDetail.DonationAmount2 : 0;
                    newTicketModel.DonationAmount3      = donationDetail != null ? donationDetail.DonationAmount3 : 0;
                    ticketModelList.Add(newTicketModel);
                }
                return(new TicketQueryResult
                {
                    EventDetailId = eventDetail.Id,
                    EventId = currentEvent.Id,
                    Success = true,
                    IsValidLink = true,
                    Tickets = ticketModelList
                });
            }
            catch (Exception e)
            {
                return(new TicketQueryResult {
                });
            }
        }
 protected override async Task <ICommandResult> Handle(StripeConnectAccountCommand command)
 {
     try
     {
         var eventData = _eventRepository.GetByAltId(command.EventId);
         if (eventData != null)
         {
             var eventDetails          = _eventDetailRepository.GetByEventId(eventData.Id);
             var eventTicketDetails    = _eventTicketDetailRepository.GetByEventDetailId(eventDetails.Id);
             var ticketCategories      = _ticketCategoryRepository.GetByTicketCategoryIds(eventTicketDetails.Select(s => s.TicketCategoryId));
             var eventTicketAttributes = _eventTicketAttributeRepository.GetByEventTicketDetailId(eventTicketDetails.Select(s => s.Id));
             var placeWeekOpenDay      = _placeWeekOpenDaysRepository.GetByEventId(eventData.Id).FirstOrDefault();
             var dayTimeMappings       = _dayTimeMappingsRepository.GetAllByPlaceWeekOpenDay(placeWeekOpenDay.Id).FirstOrDefault();
             var eventCategoryMappings = _eventCategoryMappingRepository.GetByEventId(eventData.Id).FirstOrDefault();
             var subCategory           = _eventCategoryRepository.Get(eventCategoryMappings.EventCategoryId);
             var user           = _userRepository.GetByAltId(eventData.CreatedBy);
             var currencyType   = _currencyTypeRepository.Get(eventTicketAttributes.FirstOrDefault().CurrencyId);
             var eventAttribute = _eventAttributeRepository.GetByEventDetailId(eventDetails.Id);
             eventDetails.StartDateTime = _localTimeZoneConvertProvider.ConvertToLocal(eventDetails.StartDateTime, eventAttribute.TimeZone);
             var stripeConnectAccountId = command.IsStripeConnect ? _generateStripeConnectProvider.GenerateStripeAccessToken(command.AuthorizationCode, command.channels, eventData.Id) : null;
             if (stripeConnectAccountId != null && stripeConnectAccountId != "")
             {
                 var eventStripeConnect = _eventStripeConnectMasterRepository.GetByEventId(eventData.Id);
                 var eventStepDetails   = _stepProvider.SaveEventStepDetails(eventData.Id, 9, true, command.ModifiedBy);
                 var stripeConnnect     = new EventStripeConnectMaster
                 {
                     Id = eventStripeConnect != null ? eventStripeConnect.Id : 0,
                     StripeConnectAccountID = stripeConnectAccountId,
                     CreatedBy                = eventStripeConnect != null ? eventStripeConnect.CreatedBy : command.ModifiedBy,
                     CreatedUtc               = eventStripeConnect != null ? eventStripeConnect.CreatedUtc : DateTime.UtcNow,
                     ExtraCommisionFlat       = command.ExtraCommisionFlat,
                     ExtraCommisionPercentage = command.ExtraCommisionPercentage,
                     EventId    = eventData.Id,
                     IsEnabled  = true,
                     ModifiedBy = command.ModifiedBy,
                     UpdatedBy  = command.ModifiedBy,
                     UpdatedUtc = DateTime.UtcNow,
                 };
                 _eventStripeConnectMasterRepository.Save(stripeConnnect);
             }
             return(new StripeConnectAccountCommandResult
             {
                 Success = true,
                 EventTicketAttribute = eventTicketAttributes.ToList(),
                 DayTimeMappings = dayTimeMappings,
                 Event = eventData,
                 EventDetail = eventDetails,
                 EventTicketDetail = eventTicketDetails.ToList(),
                 TicketCategories = ticketCategories.ToList(),
                 ParentCategoryId = subCategory.EventCategoryId,
                 CurrencyType = currencyType,
                 Email = user.Email
             });
         }
         else
         {
             return(new StripeConnectAccountCommandResult {
             });
         }
     }
     catch (Exception e)
     {
         _logger.Log(FIL.Logging.Enums.LogCategory.Error, e);
         return(new StripeConnectAccountCommandResult {
         });
     }
 }