Exemplo n.º 1
0
        private List <BlendedListItem> SetBlendedListItems_dev(IResultSet results)
        {
            var resultSet       = new List <BlendedListItem>();
            var taxonomyManager = TaxonomyManager.GetManager();

            if (results != null && results.Any())
            {
                foreach (IDocument result in results)
                {
                    var item = new BlendedListItem()
                    {
                        Title = result.GetValue("Title")?.ToString() ?? "",
                    };
                }
            }

            return(resultSet);
        }
        //***********Helper Methods***********//
        //************************************//
        //************************************//
        #region SetBlendedListItems

        private List <BlendedListItem> SetBlendedListItems(IResultSet results)
        {
            log.Info("Begin SetBlendedListItems.");
            var resultSet       = new List <BlendedListItem>();
            var taxonomyManager = TaxonomyManager.GetManager();

            log.Debug("Iterating through the results.");
            foreach (IDocument result in results)
            {
                log.Trace("Getting a new instance of BlendedListItem.");
                var newsResult = new BlendedListItem();

                log.Trace(() => String.Join("\n", result.Fields.Select(f => f.Name + ": " + f.Value)));

                if (result.Fields.Any(x => x.Name == "Title"))
                {
                    newsResult.Title = result.GetValue("Title").ToString();
                    log.Trace("Title Set.");
                }

                if (result.Fields.Any(x => x.Name == "LocationStreet"))
                {
                    newsResult.LocationStreet = result.GetValue("LocationStreet").ToString();
                    log.Trace("LocationStreet Set.");
                }

                if (result.Fields.Any(x => x.Name == "LocationState"))
                {
                    newsResult.LocationState = result.GetValue("LocationState").ToString();
                    log.Trace("LocationState Set.");
                }

                if (result.Fields.Any(x => x.Name == "LocationCity"))
                {
                    newsResult.LocationCity = result.GetValue("LocationCity").ToString();
                    log.Trace("LocationCity Set.");
                }

                if (result.Fields.Any(x => x.Name == "Summary"))
                {
                    newsResult.Summary = result.GetValue("Summary").ToString();
                    log.Trace("Summary Set.");
                }

                if (result.Fields.Any(x => x.Name == "Content"))
                {
                    newsResult.Content = result.GetValue("Content").ToString();
                    log.Trace("Content Set.");
                }

                var featured = result.GetValue("FeaturedRank").ToString() == "1" ? true : false;
                newsResult.Featured = featured;

                if (result.Fields.Any(x => x.Name == "Link"))
                {
                    newsResult.Link = result.GetValue("Link").ToString();
                    log.Trace("Link  Set.");
                }

                if (result.Fields.Any(x => x.Name == "EventStart"))
                {
                    try
                    {
                        DateTime dp = DateTime.MinValue;
                        //newsResult.EventStartDate = DateTime.ParseExact(result.GetValue("EventStart").ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                        DateTime.TryParseExact(result.GetValue("EventStart").ToString(), "MM/dd/yyyy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None, out dp);
                        newsResult.EventStartDate = dp;
                        //log.Trace("EventStart Set.");
                    }
                    catch (Exception ex)
                    {
                        log.Error("Source: {0}", ex.Source);
                        log.Error("Stack Trace: {0}", ex.StackTrace);
                        log.Error("Message: {0}", ex.Message);
                    }
                }

                if (result.Fields.Any(x => x.Name == "EventEnd"))
                {
                    try
                    {
                        /*newsResult.EventEndDate = DateTime.ParseExact(result.GetValue("EventStart").ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                         * log.Trace("EventStart Set.");*/
                        DateTime dp = DateTime.MinValue;
                        DateTime.TryParseExact(result.GetValue("EventEnd").ToString(), "MM/dd/yyyy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None, out dp);
                        newsResult.EventEndDate = dp;
                    }
                    catch (Exception ex)
                    {
                        log.Error("Source: {0}", ex.Source);
                        log.Error("Stack Trace: {0}", ex.StackTrace);
                        log.Error("Message: {0}", ex.Message);
                    }
                }

                if (result.Fields.Any(x => x.Name == "PublishDate"))
                {
                    try
                    {
                        /*newsResult.PublicationDate = DateTime.ParseExact(result.GetValue("PublishDate").ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                         * log.Trace("PublishDate Set.");*/
                        DateTime dp = DateTime.MinValue;
                        DateTime.TryParseExact(result.GetValue("PublishDate").ToString(), "MM/dd/yyyy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None, out dp);
                        newsResult.PublicationDate = dp;
                    }
                    catch (Exception ex)
                    {
                        log.Error("Source: {0}", ex.Source);
                        log.Error("Stack Trace: {0}", ex.StackTrace);
                        log.Error("Message: {0}", ex.Message);
                    }
                }

                if (result.Fields.Any(x => x.Name == "CategoryIds"))
                {
                    newsResult.Categories = new List <CategoryPair>();

                    var categoryIds = result.GetValue("CategoryIds").ToString().Split(',').ToList();
                    foreach (var categoryItem in categoryIds)
                    {
                        try
                        {
                            if (!categoryItem.IsNullOrWhitespace())
                            {
                                var categoryPair = new CategoryPair();
                                if (categoryItem.IsGuid())
                                {
                                    categoryPair.Guid = categoryItem;
                                    var taxon = taxonomyManager.GetTaxon(Guid.Parse(categoryItem));
                                    categoryPair.Name = taxon.Title.Value;
                                    newsResult.Categories.Add(categoryPair);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            log.Error("Source: {0}", ex.Source);
                            log.Error("Stack Trace: {0}", ex.StackTrace);
                            log.Error("Message: {0}", ex.Message);
                        }
                    }
                    //newsResult.Categories = result.GetValue("CategoryList").ToString().Split(',').Select(x => x.Trim()).ToList();
                    //log.Trace("CategoryList Set.");
                }

                if (result.Fields.Any(x => x.Name == "ResourceTypesIds"))
                {
                    newsResult.ResourceTypes = new List <CategoryPair>();

                    var resourceTypesIds = result.GetValue("ResourceTypesIds").ToString().Split(',').ToList();
                    foreach (var resourceTypeItem in resourceTypesIds)
                    {
                        try
                        {
                            if (!resourceTypeItem.IsNullOrWhitespace())
                            {
                                var categoryPair = new CategoryPair();
                                if (resourceTypeItem.IsGuid())
                                {
                                    categoryPair.Guid = resourceTypeItem;
                                    var taxon = taxonomyManager.GetTaxon(Guid.Parse(resourceTypeItem));
                                    categoryPair.Name = taxon.Title.Value;
                                    newsResult.Categories.Add(categoryPair);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            log.Error("Source: {0}", ex.Source);
                            log.Error("Stack Trace: {0}", ex.StackTrace);
                            log.Error("Message: {0}", ex.Message);
                        }
                    }
                    //newsResult.ResourceTypes = result.GetValue("ResourceTypesList").ToString().Split(',').Select(x => x.Trim()).ToList();
                    //log.Trace("ResourceTypesList Set.");
                }

                if (result.Fields.Any(x => x.Name == "OrganizationalAuthorsIds"))
                {
                    newsResult.OrganizationalAuthors = new List <CategoryPair>();

                    var organizationalAuthorIds = result.GetValue("OrganizationalAuthorsIds").ToString().Split(',').ToList();
                    foreach (var organizationalAuthorItem in organizationalAuthorIds)
                    {
                        try
                        {
                            if (!organizationalAuthorItem.IsNullOrWhitespace())
                            {
                                var categoryPair = new CategoryPair();
                                if (organizationalAuthorItem.IsGuid())
                                {
                                    categoryPair.Guid = organizationalAuthorItem;
                                    var taxon = taxonomyManager.GetTaxon(Guid.Parse(organizationalAuthorItem));
                                    categoryPair.Name = taxon.Title.Value;
                                    newsResult.Categories.Add(categoryPair);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            log.Error("Source: {0}", ex.Source);
                            log.Error("Stack Trace: {0}", ex.StackTrace);
                            log.Error("Message: {0}", ex.Message);
                        }
                    }
                    //newsResult.OrganizationalAuthors = result.GetValue("OrganizationalAuthorsList").ToString().Split(',').Select(x => x.Trim()).ToList();
                    //log.Trace("OrganizationalAuthorsList Set.");
                }

                if (result.Fields.Any(x => x.Name == "DefaultLinkBase"))
                {
                    newsResult.DefaultLinkBase = result.GetValue("DefaultLinkBase").ToString();
                    log.Trace("DefaultLinkBase Set.");
                }

                if (result.Fields.Any(x => x.Name == "Selfpaced"))
                {
                    var selfPaced = result.GetValue("Selfpaced").ToString();
                    if (!selfPaced.IsNullOrWhitespace())
                    {
                        newsResult.SelfPaced = bool.Parse(result.GetValue("Selfpaced").ToString());
                        log.Trace("SelfPaced Set.");
                    }
                }

                if (result.Fields.Any(x => x.Name == "DisplayDate"))
                {
                    newsResult.DisplayDate = result.GetValue("DisplayDate").ToString();
                    log.Trace("DisplayDate Set.");
                }

                if (result.Fields.Any(x => x.Name == "DateField"))
                {
                    try
                    {
                        /*newsResult.DateField = DateTime.ParseExact(result.GetValue("DateField").ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                         * log.Trace("DateField Set.");*/
                        DateTime dp = DateTime.MinValue;
                        DateTime.TryParseExact(result.GetValue("DateField").ToString(), "MM/dd/yyyy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None, out dp);
                        newsResult.DateField = dp;
                    }
                    catch (Exception ex)
                    {
                        log.Error("Source: {0}", ex.Source);
                        log.Error("Stack Trace: {0}", ex.StackTrace);
                        log.Error("Message: {0}", ex.Message);
                    }
                }

                if (result.Fields.Any(x => x.Name == "ContentTypeDescription"))
                {
                    newsResult.ContentType = result.GetValue("ContentTypeDescription").ToString();
                    log.Trace("ContentTypeDescription Set.");
                }

                if (result.Fields.Any(x => x.Name == "ImageUrl"))
                {
                    newsResult.Image = result.GetValue("ImageUrl").ToString();
                    log.Trace("Image Set.");
                }

                if (result.Fields.Any(x => x.Name == "Protected"))
                {
                    newsResult.Protected = result.GetValue("Protected") == "1";
                    log.Trace("Protected Set.");
                }

                if (string.IsNullOrWhiteSpace(newsResult.Summary) && !string.IsNullOrWhiteSpace(newsResult.Content))
                {
                    log.Trace("The summary field is empty and the content has a value, so we will make a summary.");
                    newsResult.Summary = SummaryParser.GetSummary(newsResult.Content, new SummarySettings(SummaryMode.Words, 40, true));
                    log.Trace("Summary made and set.");
                }

                resultSet.Add(newsResult);
                log.Trace("result added to the resturn set.");
            }

            log.Info("Finishing SetBlendedListItems.");
            return(resultSet);
        }
Exemplo n.º 3
0
        //***********Helper Methods***********//
        //************************************//
        //************************************//
        #region SetBlendedListItems

        private List <BlendedListItem> SetBlendedListItems(IEnumerable <IDocument> results)
        {
            log.Info("Begin SetBlendedListItems");


            var resultSet       = new List <BlendedListItem>();
            var taxonomyManager = TaxonomyManager.GetManager();

            if (results != null)
            {
                foreach (var result in results)
                {
                    //log.Trace("Getting a new instance of BlendedListItem.");
                    var featured   = result.Fields.Any(c => c.Name == "FeaturedRank") && (result.GetValue("FeaturedRank")?.ToString() == "1" ? true : false);
                    var newsResult = new BlendedListItem()
                    {
                        Title           = result.GetValue("Title")?.ToString() ?? string.Empty,
                        LocationStreet  = result.Fields.Any(c => c.Name == "LocationStreet") ? (result.GetValue("LocationStreet")?.ToString() ?? string.Empty):String.Empty,
                        LocationState   = result.Fields.Any(c => c.Name == "LocationState") ? result.GetValue("LocationState")?.ToString() ?? string.Empty: string.Empty,
                        LocationCity    = result.Fields.Any(c => c.Name == "LocationCity") ? result.GetValue("LocationCity")?.ToString() ?? string.Empty: string.Empty,
                        Summary         = result.GetValue("Summary")?.ToString() ?? string.Empty,
                        Content         = result.GetValue("Content")?.ToString() ?? String.Empty,
                        Featured        = featured,
                        Link            = result.Fields.Any(c => c.Name == "Link") ? result.GetValue("Link")?.ToString() ?? string.Empty: string.Empty,
                        DefaultLinkBase = result.Fields.Any(c => c.Name == "DefaultLinkBase") ? result.GetValue("DefaultLinkBase")?.ToString() ?? string.Empty: string.Empty,
                        DisplayDate     = result.Fields.Any(c => c.Name == "DisplayDate") ? result.GetValue("DisplayDate")?.ToString() ?? string.Empty: string.Empty,
                        ContentType     = result.Fields.Any(c => c.Name == "ContentTypeDescription") ? result.GetValue("ContentTypeDescription")?.ToString() ?? String.Empty: string.Empty,
                        Image           = result.Fields.Any(c => c.Name == "ImageUrl") ? result.GetValue("ImageUrl")?.ToString() ?? string.Empty: string.Empty
                    };


                    if (result.Fields.Any(x => x.Name == "Selfpaced"))
                    {
                        var selfPaced = result.GetValue("Selfpaced")?.ToString() ?? String.Empty;
                        if (!selfPaced.IsNullOrWhitespace())
                        {
                            newsResult.SelfPaced = bool.Parse(result.GetValue("Selfpaced").ToString());
                        }
                    }
                    if (result.Fields.Any(x => x.Name == "DateField"))
                    {
                        if (result.Fields.Any(x => x.Name == "EventStart"))
                        {
                            DateTime dt;
                            if (!String.IsNullOrEmpty(result.GetValue("DateField")?.ToString()))
                            {
                                //newsResult.DateField = DateTime.ParseExact(result.GetValue("DateField").ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

                                DateTime.TryParseExact(result.GetValue("DateField").ToString(), "MM/dd/yyyy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None, out dt);
                                newsResult.DateField = dt;
                            }
                        }
                    }

                    if (result.Fields.Any(x => x.Name == "Protected"))
                    {
                        string IsProtected = result.GetValue("Protected")?.ToString() ?? "0";
                        newsResult.Protected = !string.IsNullOrEmpty(IsProtected) && (IsProtected == "1" ? true : false);
                    }

                    DateTime eDateTime;
                    if (result.Fields.Any(x => x.Name == "EventStart"))
                    {
                        if (!String.IsNullOrEmpty(result.GetValue("EventStart")?.ToString()))
                        {
                            //ParseExact(result.GetValue("EventStart").ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                            DateTime.TryParseExact(result.GetValue("EventStart").ToString(), "MM/dd/yyyy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None, out eDateTime);
                            newsResult.EventStartDate = eDateTime;
                        }
                    }

                    if (result.Fields.Any(x => x.Name == "EventEnd"))
                    {
                        //newsResult.EventEndDate = DateTime.ParseExact(result.GetValue("EventStart").ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                        if (!String.IsNullOrEmpty(result.GetValue("EventEnd")?.ToString()))
                        {
                            DateTime.TryParseExact(result.GetValue("EventEnd").ToString(), "MM/dd/yyyy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None, out eDateTime);
                            newsResult.EventEndDate = eDateTime;
                        }
                    }

                    if (result.Fields.Any(x => x.Name == "PublishDate"))
                    {
                        //newsResult.PublicationDate = DateTime.ParseExact(result.GetValue("PublishDate").ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                        if (!String.IsNullOrEmpty(result.GetValue("PublishDate")?.ToString()))
                        {
                            DateTime.TryParseExact(result.GetValue("PublishDate").ToString(), "MM/dd/yyyy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None, out eDateTime);
                            newsResult.PublicationDate = eDateTime;
                        }
                    }

                    if (result.Fields.Any(x => x.Name == "CategoryIds"))
                    {
                        newsResult.Categories = new List <CategoryPair>();

                        var categoryIds = result.GetValue("CategoryIds")?.ToString()?.Split(',')?.ToList();
                        if (categoryIds != null && categoryIds.Any())
                        {
                            foreach (var categoryItem in categoryIds)
                            {
                                try
                                {
                                    var categoryPair = new CategoryPair();
                                    if (!String.IsNullOrEmpty(categoryItem) && categoryItem.IsGuid())
                                    {
                                        categoryPair.Guid = categoryItem;
                                        var taxon = taxonomyManager.GetTaxon(Guid.Parse(categoryItem));
                                        categoryPair.Name = taxon.Title.Value;
                                        newsResult.Categories.Add(categoryPair);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    log.Error("Source: {0}", ex.Source);
                                    log.Error("Stack Trace: {0}", ex.StackTrace);
                                    log.Error("RelatedContentDyn-GetCategoryIds: {0}", ex.Message);
                                }
                            }
                        }

                        //newsResult.Categories = result.GetValue("CategoryList").ToString().Split(',').Select(x => x.Trim()).ToList();
                        //log.Trace("CategoryList Set.");
                    }

                    if (result.Fields.Any(x => x.Name == "ResourceTypesIds"))
                    {
                        newsResult.ResourceTypes = new List <CategoryPair>();

                        var resourceTypesIds = result.GetValue("ResourceTypesIds")?.ToString()?.Split(',')?.ToList();
                        if (resourceTypesIds != null && resourceTypesIds.Any())
                        {
                            foreach (var resourceTypeItem in resourceTypesIds)
                            {
                                try
                                {
                                    var categoryPair = new CategoryPair();
                                    if (!String.IsNullOrEmpty(resourceTypeItem) && resourceTypeItem.IsGuid())
                                    {
                                        categoryPair.Guid = resourceTypeItem;
                                        var taxon = taxonomyManager.GetTaxon(Guid.Parse(resourceTypeItem));
                                        categoryPair.Name = taxon.Title.Value;
                                        newsResult.Categories.Add(categoryPair);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    log.Error("Source: {0}", ex.Source);
                                    log.Error("Stack Trace: {0}", ex.StackTrace);
                                    log.Error("RelatedContentDyn-GetResourceTypesIds: {0}", ex.Message);
                                }
                            }
                        }

                        //newsResult.ResourceTypes = result.GetValue("ResourceTypesList").ToString().Split(',').Select(x => x.Trim()).ToList();
                        //log.Trace("ResourceTypesList Set.");
                    }

                    if (result.Fields.Any(x => x.Name == "OrganizationalAuthorsIds"))
                    {
                        newsResult.OrganizationalAuthors = new List <CategoryPair>();

                        var organizationalAuthorIds = result.GetValue("OrganizationalAuthorsIds")?.ToString()?.Split(',')?.ToList();
                        if (organizationalAuthorIds != null && organizationalAuthorIds.Any())
                        {
                            foreach (var organizationalAuthorItem in organizationalAuthorIds)
                            {
                                try
                                {
                                    var categoryPair = new CategoryPair();
                                    if (!String.IsNullOrEmpty(organizationalAuthorItem) && organizationalAuthorItem.IsGuid())
                                    {
                                        categoryPair.Guid = organizationalAuthorItem;
                                        var taxon = taxonomyManager.GetTaxon(Guid.Parse(organizationalAuthorItem));
                                        categoryPair.Name = taxon.Title.Value;
                                        newsResult.Categories.Add(categoryPair);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    log.Error("Source: {0}", ex.Source);
                                    log.Error("Stack Trace: {0}", ex.StackTrace);
                                    log.Error("RelatedContentDyn-GetOrganizationalAuthorsIds: {0}", ex.Message);
                                }
                            }
                        }

                        //newsResult.OrganizationalAuthors = result.GetValue("OrganizationalAuthorsList").ToString().Split(',').Select(x => x.Trim()).ToList();
                        //log.Trace("OrganizationalAuthorsList Set.");
                    }

                    if (string.IsNullOrWhiteSpace(newsResult.Summary) && !string.IsNullOrWhiteSpace(newsResult.Content))
                    {
                        newsResult.Summary = SummaryParser.GetSummary(newsResult.Content, new SummarySettings(SummaryMode.Words, 40, true));
                    }

                    resultSet.Add(newsResult);
                }
            }
            return(resultSet);
        }