Exemplo n.º 1
0
 public IPDetail SaveIp(string ipAddress)
 {
     try
     {
         IPDetail ipDetail = new IPDetail();
         if (!string.IsNullOrWhiteSpace(ipAddress))
         {
             ipDetail = _iPDetailRepository.GetByIpAddress(ipAddress);
             if (ipDetail == null)
             {
                 IResponse <IpApiResponse> ipApiResponse = _ipApi.GetUserLocationByIp(ipAddress).Result;
                 if (ipApiResponse.Result != null)
                 {
                     ipDetail = _iPDetailRepository.Save(new IPDetail
                     {
                         IPAddress   = ipAddress,
                         CountryCode = ipApiResponse.Result.CountryCode,
                         CountryName = ipApiResponse.Result.Country,
                         RegionCode  = ipApiResponse.Result.Region,
                         RegionName  = ipApiResponse.Result.RegionName,
                         City        = ipApiResponse.Result.City,
                         Zipcode     = ipApiResponse.Result.ZipCode,
                         TimeZone    = ipApiResponse.Result.Timezone,
                         Latitude    = Convert.ToDecimal(ipApiResponse.Result.Latitude),
                         Longitude   = Convert.ToDecimal(ipApiResponse.Result.Longitude)
                     });
                 }
             }
         }
         return(ipDetail);
     }
     catch (Exception e)
     {
         _logger.Log(Logging.Enums.LogCategory.Error, e);
         return(null);
     }
 }
        protected override async Task Handle(TicketAlertUserMappingCommand command)
        {
            IPDetail ipDetail = new IPDetail();

            if (!string.IsNullOrWhiteSpace(command.Ip))
            {
                ipDetail = _iPDetailRepository.GetByIpAddress(command.Ip);
                if (ipDetail == null)
                {
                    IResponse <Contracts.Models.Integrations.IpApiResponse> ipApiResponse = _ipApi.GetUserLocationByIp(command.Ip).Result;
                    if (ipApiResponse.Result != null)
                    {
                        ipDetail = _iPDetailRepository.Save(new IPDetail
                        {
                            IPAddress   = command.Ip,
                            CountryCode = ipApiResponse.Result.CountryCode,
                            CountryName = ipApiResponse.Result.Country,
                            RegionCode  = ipApiResponse.Result.Region,
                            RegionName  = ipApiResponse.Result.RegionName,
                            City        = ipApiResponse.Result.City,
                            Zipcode     = ipApiResponse.Result.ZipCode,
                            TimeZone    = ipApiResponse.Result.Timezone,
                            Latitude    = Convert.ToDecimal(ipApiResponse.Result.Latitude),
                            Longitude   = Convert.ToDecimal(ipApiResponse.Result.Longitude)
                        });
                    }
                }
            }

            if ((bool)command.IsStreamingEvent)
            {
                var Data = new TicketAlertUserMapping
                {
                    AltId = Guid.NewGuid(),
                    TicketAlertEventMappingId = 1,
                    FirstName         = command.FirstName,
                    LastName          = command.LastName,
                    PhoneCode         = command.PhoneCode,
                    PhoneNumber       = command.PhoneNumber,
                    Email             = command.Email,
                    EventName         = command.EventName,
                    TourTravelPackage = command.TourTravelPackages,
                    NumberOfTickets   = command.NumberOfTickets,
                    ModifiedBy        = command.ModifiedBy,
                    CreatedUtc        = DateTime.UtcNow,
                    IsEnabled         = true,
                    IPDetailId        = ipDetail.Id
                };
                _ticketAlertUserMappingRepository.Save(Data);
            }
            else
            {
                var i = -1;
                foreach (var ticketAlertId in command.TicketAlertEvents)
                {
                    i = i + 1;

                    var Data = new TicketAlertUserMapping
                    {
                        AltId = Guid.NewGuid(),
                        TicketAlertEventMappingId = ticketAlertId,
                        FirstName         = command.FirstName,
                        LastName          = command.LastName,
                        PhoneCode         = command.PhoneCode,
                        PhoneNumber       = command.PhoneNumber,
                        Email             = command.Email,
                        TourTravelPackage = command.TourTravelPackages,
                        NumberOfTickets   = command.NumberOfTickets,
                        ModifiedBy        = command.ModifiedBy,
                        CreatedUtc        = DateTime.UtcNow,
                        IsEnabled         = true,
                        IPDetailId        = ipDetail.Id
                    };
                    _ticketAlertUserMappingRepository.Save(Data);
                }
            }
        }