Exemple #1
0
        public void Remove(string id, SemanticVersion version, bool enableDelisting)
        {
            if (enableDelisting)
            {
                if (_fileSystem is PhysicalFileSystem physicalFileSystem)
                {
                    var fileName = physicalFileSystem.GetFullPath(
                        GetPackageFileName(id, version.ToNormalizedString()));

                    if (File.Exists(fileName))
                    {
                        File.SetAttributes(fileName, File.GetAttributes(fileName) | FileAttributes.Hidden);
                    }
                    else
                    {
                        _logger.Log(
                            LogLevel.Error,
                            "Error removing package {0} {1} - could not find package file {2}",
                            id,
                            version,
                            fileName);
                    }
                }
            }
            else
            {
                var package = _repository.FindPackage(id, version);

                if (package != null)
                {
                    _repository.RemovePackage(package);
                }
            }
        }
Exemple #2
0
        public async Task <SearchResponseViewModel> GetByName(string searchString, SiteLevel?siteLevel = null)
        {
            if (searchString.IsNullOrBlank() || searchString.Trim().Length < 2)
            {
                return(new SearchResponseViewModel());
            }

            // TODO: XXX: NSP: aggregate both searches into parallel queries
            var siteId = _siteIdProvider.GetSiteId();

            siteLevel = siteLevel ?? SiteLevel.Global;
            // TODO: XXX: NSP: Search / Site level caching in Redis (not local) - can also derive all locations from IA
            var queryResult = await _querySender.Send(new FeelSearchQuery
            {
                Name      = searchString,
                SiteId    = siteId,
                SiteLevel = siteLevel.Value
            });

            IList <EventSearchResult> searchResults = new List <EventSearchResult>();

            try
            {
                //searchResults = await _searchProvider.Search(searchString, siteId, siteLevel.Value, false);
                if (!searchResults.Any())
                {
                    _logger.Log(LogCategory.Warn, "No IA results returned", new Dictionary <string, object>
                    {
                        ["SearchString"] = searchString
                    });
                    //var categoryEventQueryResult = await _querySender.Send(new CategoryEventSearchQuery
                    //{
                    //    Name = searchString,
                    //    SiteId = siteId
                    //});

                    //searchResults = categoryEventQueryResult
                    //       .CategoryEvents?
                    //       .Select(_eventSearchResultBuilder.Build)
                    //       .ToList() ?? new List<EventSearchResult>();
                    searchResults = new List <EventSearchResult>();
                }
            }
            catch (Exception e)
            {
                _logger.Log(LogCategory.Error, e);
            }
            return(new SearchResponseViewModel
            {
                CategoryEvents = searchResults.ToList(),
                Cities = queryResult.Cities,
                States = queryResult.States,
                Countries = queryResult.Countries,
            });
        }
Exemple #3
0
        // Server Lifecycle
        public void Start()
        {
            if (exitFlag)
            {
                return;
            }

            exitFlag = false;

            logger.Log(this.GetType(), "Starting server on port [" + Port + "]");
            listenerThread.Start();
        }
Exemple #4
0
 public async Task SendEmailAsync(IEnumerable <string> recepients, string subject, string body, CancellationToken cancellationToken = default)
 {
     using var smtpClient = BuildSmtpClient();
     _logger.Log($"Sending email to:");
     foreach (var to in recepients)
     {
         try
         {
             _logger.Log(to);
             var mailMessage = GenerateMailMessage(to, subject, body);
             if (_appSettings.SendEmails)
             {
                 await smtpClient.SendMailAsync(mailMessage);
             }
             else
             {
                 _logger.Log($"Did not send email to {to} due to config settings");
             }
         }
         catch (Exception ex)
         {
             _logger.Log($"Failed to send email to: {to}");
             _logger.Log(ex.ToString());
             continue;
         }
     }
     _logger.Log("Emails processed!");
 }
Exemple #5
0
        internal static void DoStep(PipMod.Step step, Assembly assembly)
        {
            var methods = GetStepHandlersFor(assembly, step);

            if (methods.Count > 0)
            {
                Logger.Verbose("{0}: {1}", step.ToString().ToUpper(), assembly.FullName);
                foreach (var method in methods)
                {
                    try
                    {
                        Logger.Debug("Invoking step handler in: {0}", method.DeclaringType.FullName);
                        var args = method.GetParameters();
                        if (args.Length == 1 && typeof(IPipMod).IsAssignableFrom(args[0].ParameterType))
                        {
                            method.Invoke(null, new object[] { GetModForAssembly(assembly) });
                        }
                        else if (args.Length == 1 && typeof(Assembly).IsAssignableFrom(args[0].ParameterType))
                        {
                            method.Invoke(null, new object[] { assembly });
                        }
                        else
                        {
                            method.Invoke(null, new object[0]);
                        }
                    }
                    catch (Exception ex)
                    {
                        Logger.Error("Failed running {0} for '{1}' at {2}.{3}:", step.ToString().ToUpper(), assembly.FullName, method.DeclaringType.FullName, method.Name);
                        Logger.Log(ex);
                        // ModHadError(mod, step);
                    }
                }
            }
        }
Exemple #6
0
        public FeelSiteDynamicLayoutSectionQueryResult Handle(FeelSiteDynamicLayoutSectionQuery query)
        {
            try
            {
                var pageData    = _feelDynamicLayoutPageRepository.Get(query.PageId);
                var sectionData = _feelDynamicLayoutSectionRepository.GetAllSectionsByPageId(query.PageId);

                if (sectionData == null)
                {
                    throw new ArgumentNullException($"Unable to get sections for page {pageData.PageName}");
                }
                else
                {
                    return(new FeelSiteDynamicLayoutSectionQueryResult
                    {
                        PageName = pageData.PageName,
                        Sections = sectionData
                    });
                }
            }
            catch (Exception ex)
            {
                _logger.Log(Logging.Enums.LogCategory.Error, ex);
                return(new FeelSiteDynamicLayoutSectionQueryResult());
            }
        }
Exemple #7
0
        public EventSearchResult Build(InfiniteFeelAnalyticsItem item, EventCategoryQueryResult ParentCategory)
        {
            try
            {
                UpdateInfiniteFeelAnalyticsItem(item);

                var parentCategory = ParentCategory.EventCategories.Where(w => w.Category == item.Category).FirstOrDefault();

                //Logic to check if parentCategory variable is null or not [Sentry error handling NullReferenceException]
                int parentId = -1;
                if (parentCategory != null)
                {
                    parentId = parentCategory.EventCategoryId;
                }

                var parent = ParentCategory.EventCategories.Where(w => w.Id == parentId).FirstOrDefault();
                if (parent != null)
                {
                    EventSearchResult _EventSearchResult = new EventSearchResult
                    {
                        AltId          = new Guid(item.DeDuplicator), // DeDuplicator returning the altIds
                        Name           = item.Name,
                        ParentCategory = parent.Category,
                        CityName       = item.City,
                        CountryName    = item.Country,
                        RedirectUrl    = item.Url
                    };
                    return(_EventSearchResult);
                }
                else
                {
                    EventSearchResult _EventSearchResult = new EventSearchResult
                    {
                        AltId          = new Guid(item.DeDuplicator), // DeDuplicator returning the altIds
                        Name           = item.Name,
                        ParentCategory = "SeeAndDo",
                        CityName       = item.City,
                        CountryName    = item.Country,
                        RedirectUrl    = item.Url
                    };
                    return(_EventSearchResult);
                }
            }
            catch (Exception ex)
            {
                _logger.Log(Logging.Enums.LogCategory.Error, ex);
                UpdateInfiniteFeelAnalyticsItem(item);
                EventSearchResult _EventSearchResult = new EventSearchResult
                {
                    AltId          = new Guid(item.DeDuplicator), // DeDuplicator returning the altIds
                    Name           = item.Name,
                    ParentCategory = "SeeAndDo",
                    CityName       = item.City,
                    CountryName    = item.Country,
                    RedirectUrl    = item.Url
                };

                return(_EventSearchResult);
            }
        }
Exemple #8
0
        private (string Field, string Value) GetSiteFilter(Site siteId, SiteLevel siteLevel)
        {
            var levelValue = siteId.GetAttribute <SearchTermAttribute>()?.Term;

            if (levelValue == null)
            {
                // try to extract from name
                var site = siteId.ToString().Replace("feel", "").Replace("Site", "");
                levelValue = Regex.Replace(site, "([A-Z])", " $1", RegexOptions.Compiled).Trim();
                _logger.Log(LogCategory.Warn, $"Feel site {siteId} does not have SearchTerm set on enum.");
            }
            var field = siteLevel.GetAttribute <SearchTermAttribute>()?.Term ?? siteLevel.ToString().ToLowerInvariant();

            return(field, levelValue);
        }
Exemple #9
0
 public FeelNearbyQueryResult Handle(FeelNearbyQuery query)
 {
     try
     {
         var nearByPlaces = _feelNearbyRepository.GetNearbyPlaces(query.Latitude, query.Longitude, query.Distance);
         if (nearByPlaces == null)
         {
             throw new ArgumentNullException($"Unable to get nearby places for lat {query.Latitude} lon {query.Longitude}");
         }
         else
         {
             var nearbyItems = new List <VenueWithCityName>();
             foreach (var item in nearByPlaces)
             {
                 var city = _cityRepository.Get(item.CityId);
                 nearbyItems.Add(new VenueWithCityName
                 {
                     Id             = item.Id,
                     AltId          = item.AltId,
                     Name           = item.Name,
                     AddressLineOne = item.AddressLineOne,
                     AddressLineTwo = item.AddressLineTwo,
                     CityId         = item.CityId,
                     Latitude       = item.Latitude,
                     Longitude      = item.Longitude,
                     HasImages      = item.HasImages,
                     Prefix         = item.Prefix,
                     City           = city.Name
                 });
             }
             return(new FeelNearbyQueryResult
             {
                 Latitude = query.Latitude,
                 Longitude = query.Longitude,
                 NearbyPlaces = nearbyItems
             });
         }
     }
     catch (Exception ex)
     {
         _logger.Log(Logging.Enums.LogCategory.Error, ex);
         return(new FeelNearbyQueryResult());
     }
 }
        public FeelItLiveHostQueryResult Handle(FeelItLiveHostQuery query)
        {
            try
            {
                var result = _eventHostMappingRepository.GetLatestByEmail(query.Email);
                return(new FeelItLiveHostQueryResult
                {
                    AltId = (System.Guid)result.AltId,
                    FirstName = result.FirstName,
                    LastName = result.LastName,
                    Description = result.Description,
                    Email = result.Email
                });
            }
            catch (Exception ex)
            {
                _logger.Log(Logging.Enums.LogCategory.Error, ex);
                return(new FeelItLiveHostQueryResult());

                throw ex;
            }
        }
Exemple #11
0
        private void SetupBackgroundJobs()
        {
            if (!_runBackgroundTasks)
            {
                return;
            }

            _logger.Log(LogLevel.Info, "Registering background jobs...");

            // Persist to package store at given interval (when dirty)
            _persistenceTimer = new Timer(state =>
                                          _serverPackageStore.PersistIfDirty(), null, TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(1));

            // Rebuild the package store in the background (every hour)
            _rebuildTimer = new Timer(state =>
                                      RebuildPackageStore(), null, TimeSpan.FromSeconds(15), TimeSpan.FromHours(1));

            _logger.Log(LogLevel.Info, "Finished registering background jobs.");
        }