/// <summary>
        /// Creates trees of view models that represents the hierarchy of the given taxa.
        /// A method delegate for creating a taxon view model should be provided.
        /// If the method returns null, the taxon won't be included in the tree.
        /// The taxa hierarchy is traversed in a breadth-first manner so the ordering of the taxa in each level is preserved.
        /// </summary>
        /// <param name="taxa">The taxa.</param>
        /// <param name="viewModelBuilder">A method that creates a taxon view model by given taxon.
        /// If null is returned, the taxon won't be included in the tree.</param>
        /// <param name="sort">The sort.</param>
        /// <param name="manager">The taxonomy manager that will be used to retrieve the children.</param>
        /// <param name="taxaCountLimit">The maximum number of taxa that will be included in the tree.</param>
        /// <returns></returns>
        public static IList<TaxonViewModel> BuildTaxaTree(
            IQueryable<Taxon> taxa,
            Func<ITaxon, TaxonViewModel> viewModelBuilder,
            Func<IQueryable<Taxon>, IQueryable<Taxon>> sort,
            TaxonomyManager manager,
            int taxaCountLimit)
        {
            var sortedTaxa = sort.Invoke(taxa);
            var trees = new List<TaxonViewModel>();
            var currentTaxaCount = 0;
            foreach (var taxon in sortedTaxa)
            {
                var subTree = TaxaViewModelTreeBuilder.BuildTaxaTreeBfs(taxon, viewModelBuilder, sort, manager, taxaCountLimit, ref currentTaxaCount);
                if (subTree != null)
                {
                    trees.Add(subTree);
                }

                if (taxaCountLimit > 0 && currentTaxaCount >= taxaCountLimit)
                {
                    break;
                }
            }

            return trees;
        }
 private void GetAllTaxonNamesForDataItem(List<string> taxonNames)
 {
     //get all tags for a data item
     var taxaIds = base.DataItem.GetValue<TrackedList<Guid>>("permissions");
     TaxonomyManager taxaManager = new TaxonomyManager();
     foreach (var taxaId in taxaIds)
     {
         var taxa = taxaManager.GetTaxa<Taxon>().Where(t => t.Id == taxaId).Single();
         taxonNames.Add(taxa.Name.ToLower());
     }
 }
        private static TaxonViewModel BuildTaxaTreeBfs(
            Taxon taxon,
            Func<ITaxon, TaxonViewModel> viewModelBuilder,
            Func<IQueryable<Taxon>, IQueryable<Taxon>> sort,
            TaxonomyManager manager,
            int taxaCountLimit,
            ref int currentTaxaCount)
        {
            var queue = new Queue<TaxonData>();
            TaxonViewModel rootViewModel = null;

            queue.Enqueue(new TaxonData() { Taxon = taxon });

            while (queue.Count > 0)
            {
                var currentNode = queue.Dequeue();

                var currentViewModel = viewModelBuilder.Invoke(currentNode.Taxon);

                if (currentViewModel != null)
                {
                    // If this is the first created view model, set it to be the root one.
                    if (rootViewModel == null) rootViewModel = currentViewModel;

                    if (currentNode.LastKnownParent != null)
                    {
                        currentNode.LastKnownParent.SubTaxa.Add(currentViewModel);
                    }

                    currentTaxaCount++;
                    if (taxaCountLimit > 0 && currentTaxaCount == taxaCountLimit)
                    {
                        return rootViewModel;
                    }
                }

                // If the current taxon is included in the tree, it should be the parent of the inner taxa.
                var lastKnownParent = currentViewModel ?? currentNode.LastKnownParent;

                var subTaxa = manager.GetTaxa<Taxon>().Where(t => t.Parent.Id == currentNode.Taxon.Id);
                var sortedSubtaxa = sort.Invoke(subTaxa);

                foreach (var childTaxon in sortedSubtaxa)
                {
                    queue.Enqueue(new TaxonData()
                    {
                        LastKnownParent = lastKnownParent,
                        Taxon = childTaxon
                    });
                }
            }

            return rootViewModel;
        }
        private static void AddTaxaToProduct(ProductItem productItem, TaxonomyManager taxManager, string taxaName, string taxonName)
        {
            var taxon = taxManager.GetTaxa<FlatTaxon>().SingleOrDefault(t => t.Name == taxonName);

            // Check if a tag with the same name is already added
            var tagExists = productItem.Organizer.TaxonExists(taxaName, taxon.Id);

            if (!tagExists)
            {
                // Add the tag and save the changes
                productItem.Organizer.AddTaxa(taxaName, taxon.Id);
            }
        }
Пример #5
0
        private static Taxon GetTagIfItExsistsOrCreateOneIfItDoesnt(string tagName, FlatTaxonomy tags, TaxonomyManager taxonomyManager)
        {
            Taxon tag = tags.Taxa.Where(t => t.Title.ToLower() == tagName.ToLower()).FirstOrDefault();

            if (tag == null)
            {
                tag = taxonomyManager.CreateTaxon<FlatTaxon>();

                SetTagProperties(tag, tagName);

                tag.Taxonomy = tags;

                taxonomyManager.SaveChanges();
            }

            return tag;
        }
        private static Taxon GetDepartmentIfItExsistsOrCreateOneIfItDoesnt(string departmentName, HierarchicalTaxonomy departments, TaxonomyManager taxonomyManager)
        {
            Taxon department = departments.Taxa.Where(t => t.Title.ToLower() == departmentName.ToLower()).FirstOrDefault();

            if (department == null)
            {
                department = taxonomyManager.CreateTaxon<HierarchicalTaxon>();

                SetDepartmentProperties(department, departmentName);

                department.Taxonomy = departments;

                taxonomyManager.SaveChanges();
            }

            return department;
        }
Пример #7
0
        private void RepublishTaxonItems(string taxonomyName, bool isFlat)
        {
            var taxonomyManager = TaxonomyManager.GetManager();

            taxonomyManager.Provider.SuppressSecurityChecks = false;
            if (isFlat)
            {
                var taxonomies = taxonomyManager.GetTaxa <FlatTaxon>().Where(t => t.Taxonomy.Name == taxonomyName).ToList();
                var count      = 0;

                foreach (var taxonomy in taxonomies)
                {
                    taxonomy.Title = taxonomy.Title.Trim();

                    count++;
                    if (count % 200 == 0)
                    {
                        taxonomyManager.SaveChanges();
                    }
                }

                taxonomyManager.SaveChanges();
                taxonomyManager.Provider.SuppressSecurityChecks = true;
            }
            else
            {
                var taxonomies = taxonomyManager.GetTaxa <HierarchicalTaxon>().Where(t => t.Taxonomy.Name == taxonomyName).ToList();
                var count      = 0;

                foreach (var taxonomy in taxonomies)
                {
                    taxonomy.Title = taxonomy.Title.Trim();

                    count++;
                    if (count % 200 == 0)
                    {
                        taxonomyManager.SaveChanges();
                    }
                }

                taxonomyManager.SaveChanges();
                taxonomyManager.Provider.SuppressSecurityChecks = true;
            }
        }
        protected void NewsExport_Click(object sender, EventArgs e)
        {
            StringBuilder   newsItems = new StringBuilder();
            NewsManager     man       = NewsManager.GetManager();
            var             tagString = string.Empty;
            List <string>   tags      = null;
            TaxonomyManager tMan      = TaxonomyManager.GetManager();

            foreach (var newsItem in man.GetNewsItems().Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Master))
            {
                tags = newsItem.GetValue <TrackedList <Guid> >("Tags").ToList().Select(i => tMan.GetTaxon(i).Title.Value).ToList();

                newsItems.AppendLine(String.Format("{0}|{1}|{2}", newsItem.Title, String.Join(",", tags), newsItem.Content.Value.Replace("\n", "")));
            }
            var file = new StreamWriter(ServerPath + "\\news.txt");

            file.Write(newsItems);
            file.Close();
        }
        public void NewsWidget_SelectByTagNewsFunctionalityAndNoLimit()
        {
            var newsController = new NewsController();

            newsController.Model.DisplayMode  = ListDisplayMode.All;
            newsController.Model.ItemsPerPage = 1;

            string tagTitle  = "Tag1";
            string newsTitle = "News ";

            try
            {
                Guid taxonId = this.serverOperationsTaxonomies.CreateFlatTaxon(Telerik.Sitefinity.TestUtilities.CommonOperations.TaxonomiesConstants.TagsTaxonomyId, tagTitle);

                Guid newsId0 = this.serverOperationsNews.CreatePublishedNewsItem(newsTitle + 0);
                this.serverOperationsNews.AssignTaxonToNewsItem(newsId0, "Tags", taxonId);

                Guid newsId1 = this.serverOperationsNews.CreatePublishedNewsItem(newsTitle + 1);
                this.serverOperationsNews.AssignTaxonToNewsItem(newsId1, "Tags", taxonId);

                this.serverOperationsNews.CreatePublishedNewsItem(newsTitle + 2);

                ITaxon tagTaxonomy = TaxonomyManager.GetManager().GetTaxon(taxonId);
                var    items       = newsController.Model.CreateListViewModel(tagTaxonomy, 1).Items.ToArray();

                Assert.IsTrue(items.Length.Equals(2), "The count of news items is not correct - no limit");
                Assert.IsTrue(items[0].Fields.Title.Equals(newsTitle + 1, StringComparison.CurrentCulture), "The news with this title was found!");
                Assert.IsTrue(items[1].Fields.Title.Equals(newsTitle + 0, StringComparison.CurrentCulture), "The news with this title was found!");

                newsController.Model.DisplayMode  = ListDisplayMode.Paging;
                newsController.Model.ItemsPerPage = 20;
                items = newsController.Model.CreateListViewModel(null, 1).Items.ToArray();

                Assert.IsTrue(items.Length.Equals(3), "The count of news items is not correct - all items");
                Assert.IsTrue(items[0].Fields.Title.Equals(newsTitle + 2, StringComparison.CurrentCulture), "The news with this title was found!");
                Assert.IsTrue(items[1].Fields.Title.Equals(newsTitle + 1, StringComparison.CurrentCulture), "The news with this title was found!");
                Assert.IsTrue(items[2].Fields.Title.Equals(newsTitle + 0, StringComparison.CurrentCulture), "The news with this title was found!");
            }
            finally
            {
                this.serverOperationsTaxonomies.DeleteTags(tagTitle);
            }
        }
Пример #10
0
        public void CreateFields()
        {
            Web             web = ClientContext.Web;
            FieldCollection webFieldCollection = web.Fields;

            ClientContext.Load(webFieldCollection);
            ClientContext.ExecuteQuery();

            var termStoreId = new TaxonomyManager(null).GetTermStoreId(ClientContext);

            foreach (ShField field in Fields)
            {
                var existingField = webFieldCollection.SingleOrDefault(item => item.InternalName == field.InternalName);
                if (existingField == null)
                {
                    //Creating new field
                    Log.Debug("Attempting to create field " + field.DisplayName);
                    if (field.Type.StartsWith("TaxonomyFieldType"))
                    {
                        field.SspId = termStoreId;
                        DeleteHiddenFieldForTaxonomyField(webFieldCollection, field.ID);
                        CreateTaxonomyField(field, webFieldCollection);
                    }
                    else
                    {
                        CreateField(field, webFieldCollection);
                    }
                }
                else
                {
                    Log.DebugFormat("Field '{0}' exists, checking for changes to field", field.DisplayName);
                    //Updating existing field
                    if (field.Type.StartsWith("TaxonomyFieldType"))
                    {
                        UpdateTaxonomyField(field, existingField);
                    }
                    else
                    {
                        UpdateExistingField(field, existingField);
                    }
                }
            }
        }
Пример #11
0
        public static String GetCategoryTitle(Object _cats)
        {
            Telerik.OpenAccess.TrackedList <System.Guid> cats = (Telerik.OpenAccess.TrackedList <System.Guid>)_cats;
            string[] ignoreCats = new string[]
            {
                "Chartered Accountants Ireland",
                "Accountancy Ireland",
                "RTP News",
                "CPD",
                "Public Sector",
                "enews",
                "Education",
                "Overseas Member",
                "RTP",
                "RTPeNews",
                "Student News",
                "Tax Representations"
            };

            if (cats.Count == 0)
            {
                return("");
            }

            var foundTaxon = "";

            for (var i = 0; i < cats.Count; i++)
            {
                Guid firstCat = cats[i];

                var taxonomyManager = TaxonomyManager.GetManager();
                var taxon           = taxonomyManager.GetTaxa <HierarchicalTaxon>().Where(t => t.Id.Equals(firstCat)).SingleOrDefault();

                if (taxon != null && !ignoreCats.Contains(taxon.Title.ToString()))
                {
                    foundTaxon = taxon.Title;
                    break;
                }
            }

            return(foundTaxon);
        }
        private void CreateLocation(LocationsManager mgr, string Title, string Address, string City, string Region, string PostalCode, string Country, string Continent)
        {
            var location = mgr.CreateLocation();

            location.Title      = Title;
            location.Address    = Address;
            location.City       = City;
            location.Region     = Region;
            location.PostalCode = PostalCode;
            location.Country    = Country;
            location.Content    = Content;
            location.UrlName    = Title.ToLower().Replace(" ", "-");

            // add taxonomy and save
            var taxonomyMgr = TaxonomyManager.GetManager();
            var taxon       = taxonomyMgr.GetTaxa <HierarchicalTaxon>().Where(t => t.Name == Continent).Select(t => t.Id).ToArray();

            location.Organizer.AddTaxa("Category", taxon);
            mgr.RecompileItemUrls <LocationItem>(location);
        }
Пример #13
0
        private IEnumerable <Classification> MapClassificationData(TrackedList <Guid> classifications)
        {
            var             classificationData = new List <Classification>();
            TaxonomyManager taxonomyManager    = TaxonomyManager.GetManager();

            if (classifications != null)
            {
                foreach (var cat in classifications)
                {
                    classificationData.Add(new Classification
                    {
                        Id    = taxonomyManager.GetTaxon(cat).Id,
                        Title = taxonomyManager.GetTaxon(cat).Title,
                        Url   = taxonomyManager.GetTaxon(cat).UrlName
                    });
                }
            }

            return(classificationData);
        }
Пример #14
0
        public virtual IList <FlatTaxon> GetFlatTaxons(string fieldName)
        {
            var    cahcedResultKey = this.FieldCacheKey("GetFlatTaxonNames", fieldName);
            object cachedResult;

            if (this.cachedFieldValues.TryGetValue(cahcedResultKey, out cachedResult))
            {
                return(cachedResult as IList <FlatTaxon>);
            }

            var             taxonIds = this.Fields.GetMemberValue(fieldName) as IList <Guid>;
            TaxonomyManager manager  = TaxonomyManager.GetManager();

            var taxonNames = manager.GetTaxa <FlatTaxon>()
                             .Where(t => taxonIds.Contains(t.Id) && t.Taxonomy.Name == fieldName).ToList();

            this.cachedFieldValues[cahcedResultKey] = taxonNames;

            return(taxonNames);
        }
        public void NewsWidget_SelectByCategoryNewsFunctionality()
        {
            int    newsCount      = 4;
            string newsTitle      = "Title";
            string categoryTitle  = "Category ";
            var    newsController = new NewsController();

            string[] categoryTitles = new string[newsCount + 1];

            try
            {
                this.serverOperationsTaxonomies.CreateCategory(categoryTitle + "0");

                for (int i = 0; i <= newsCount; i++)
                {
                    categoryTitles[i] = categoryTitle + i;
                    this.serverOperationsTaxonomies.CreateCategory(categoryTitle + (i + 1), categoryTitle + i);
                    ServerOperationsFeather.NewsOperations().CreatePublishedNewsItem(NewsTitle + i, "Content", "AuthorName", "SourceName", new List <string> {
                        categoryTitle + i
                    }, null, null);
                }

                TaxonomyManager taxonomyManager = TaxonomyManager.GetManager();

                for (int i = 0; i < newsCount; i++)
                {
                    var    category = taxonomyManager.GetTaxa <HierarchicalTaxon>().SingleOrDefault(t => t.Title == categoryTitle + i);
                    ITaxon taxonomy = taxonomyManager.GetTaxon(category.Id);
                    var    items    = newsController.Model.CreateListViewModel(taxonomy, 1).Items.ToArray();

                    for (int j = 0; j < items.Length; j++)
                    {
                        Assert.IsTrue(items[j].Fields.Title.Equals(newsTitle + i, StringComparison.CurrentCulture), "The news with this title was not found!");
                    }
                }
            }
            finally
            {
                this.serverOperationsTaxonomies.DeleteCategories(categoryTitles);
            }
        }
        private void AssignTaxonomiesToImages(List <Guid> listOfIds)
        {
            ServerOperations.Taxonomies().CreateCategory(CategoryTitle + "0");
            var taxonomyManager = TaxonomyManager.GetManager();

            for (int i = 1; i < 5; i++)
            {
                ServerOperations.Taxonomies().CreateCategory(CategoryTitle + i, CategoryTitle + (i - 1));
                var category = taxonomyManager.GetTaxa <HierarchicalTaxon>().Single(t => t.Title == CategoryTitle + i);
                ServerOperations.Taxonomies().CreateTag(TagTitle + i);
                var tag = taxonomyManager.GetTaxa <FlatTaxon>().Single(t => t.Title == TagTitle + i);
                ServerOperations.Documents().AssignTaxonToDocument(listOfIds[i - 1], "Category", category.Id);
                ServerOperations.Documents().AssignTaxonToDocument(listOfIds[i - 1], "Tags", tag.Id);
            }

            var category3 = taxonomyManager.GetTaxa <HierarchicalTaxon>().Single(t => t.Title == CategoryTitle + 3);
            var tag3      = taxonomyManager.GetTaxa <FlatTaxon>().Single(t => t.Title == TagTitle + 3);

            ServerOperations.Documents().AssignTaxonToDocument(listOfIds[0], "Category", category3.Id);
            ServerOperations.Documents().AssignTaxonToDocument(listOfIds[0], "Tags", tag3.Id);
        }
Пример #17
0
        public DynamicContent CreatePressArticleItem(string title, string url)
        {
            var providerName = string.Empty;

            if (ServerOperations.MultiSite().CheckIsMultisiteMode())
            {
                providerName = "dynamicContentProvider";
            }

            DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(providerName);
            Type pressArticleType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.PressRelease.PressArticle");

            Telerik.Sitefinity.DynamicModules.Model.DynamicContent pressArticleItem = dynamicModuleManager.CreateDataItem(pressArticleType);

            // This is how values for the properties are set
            pressArticleItem.SetValue("Title", title);
            pressArticleItem.SetValue("PublishedBy", "Some PublishedBy");
            pressArticleItem.SetValue("Guid", Guid.NewGuid());

            TaxonomyManager taxonomyManager = TaxonomyManager.GetManager();
            var             tag             = taxonomyManager.GetTaxa <FlatTaxon>().Where(t => t.Taxonomy.Name == "Tags").FirstOrDefault();

            if (tag != null)
            {
                pressArticleItem.Organizer.AddTaxa("Tags", tag.Id);
            }

            pressArticleItem.SetString("UrlName", url);
            pressArticleItem.SetValue("Owner", SecurityManager.GetCurrentUserId());
            pressArticleItem.SetValue("PublicationDate", DateTime.Now);
            pressArticleItem.SetWorkflowStatus(dynamicModuleManager.Provider.ApplicationName, "Published");
            dynamicModuleManager.Lifecycle.Publish(pressArticleItem);

            dynamicModuleManager.RecompileDataItemsUrls(pressArticleType);

            // You need to call SaveChanges() in order for the items to be actually persisted to data store
            dynamicModuleManager.SaveChanges();

            return(pressArticleItem);
        }
        private void migrateTags(Entry post, BlogPost blogPost, BlogsManager blogsManager)
        {
            TaxonomyManager taxonomyManager = new TaxonomyManager();
            var tax = taxonomyManager.GetTaxonomies<FlatTaxonomy>().Where(t => t.Name == "Tags").SingleOrDefault();

            foreach (Category tag in post.Categories.Where(c => c.CategoryType == CategoryType.Unknown))
            {
                var taxon = taxonomyManager.GetTaxa<FlatTaxon>().Where(t => t.Title == tag.Term).FirstOrDefault();
                if (taxon == null)
                {
                    taxon = taxonomyManager.CreateTaxon<FlatTaxon>();
                    taxon.Name = tag.Term;
                    taxon.Title = tag.Term;

                    tax.Taxa.Add(taxon);
                    taxonomyManager.SaveChanges();
                }

                blogPost.Organizer.AddTaxa("Tags", taxon.Id);
                blogsManager.SaveChanges();
            }
        }
Пример #19
0
        public void Categories_VerifyTaxaFromContentItemIsRetrieved()
        {
            var item = NewsManager.GetManager().GetNewsItems().FirstOrDefault();

            var model = new HierarchicalTaxonomyModel();

            model.ContentId = item.Id;

            var viewModel = model.CreateViewModel();

            var itemTaxa = (IList <Guid>)item.GetValue("Category");

            Assert.AreEqual(itemTaxa.Count, viewModel.Taxa.Count);

            var taxonomyManager = TaxonomyManager.GetManager();

            for (var i = 0; i < itemTaxa.Count; i++)
            {
                var taxon = taxonomyManager.GetTaxa <HierarchicalTaxon>().FirstOrDefault(t => t.Id == itemTaxa[i]);
                Assert.AreEqual(taxon.Title.ToString(), viewModel.Taxa[i].Title);
            }
        }
Пример #20
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="sfContent">The sf content.</param>
        public DepartmentModel(HierarchicalTaxon sfContent)
        {
            var manager = TaxonomyManager.GetManager();

            Id               = sfContent.Id;
            Title            = sfContent.Title;
            Description      = sfContent.Description;
            FullUrl          = sfContent.FullUrl;
            Ordinal          = sfContent.Ordinal;
            RenderAsLink     = sfContent.RenderAsLink;
            ShowInNavigation = sfContent.ShowInNavigation;
            TaxonName        = sfContent.Taxonomy.TaxonName;
            Slug             = sfContent.UrlName;
            LastModified     = sfContent.LastModified;

            //STORE PARENT DETAILS IF APPLICABLE
            if (sfContent.Parent != null)
            {
                Parent = new ParentModel
                {
                    Id          = sfContent.Parent.Id,
                    Title       = sfContent.Parent.Title,
                    Description = sfContent.Parent.Description,
                    Ordinal     = sfContent.Parent.Ordinal,
                    Slug        = sfContent.Parent.UrlName
                };
            }

            //BUILD CHILDREN CATEGORIES
            Subtaxa = new List <DepartmentModel>();
            sfContent.Subtaxa.ToList().ForEach(c =>
                                               Subtaxa.Add(new DepartmentModel(c)));

            //GET NUMBER OF ITEMS IN CATEGORY
            Count = (int)manager.GetTaxonItemsCount(sfContent.Id, ContentLifecycleStatus.Live);

            // Store original content
            OriginalContent = sfContent;
        }
        public void CreateProduct()
        {
            ProductsManager productsManager = ProductsManager.GetManager();

            var productItem = productsManager.CreateProduct(ProductsIntegrationTests.productItemId);

            productItem.Title   = "Test Product";
            productItem.Content = "<h1>Simple content goes here ...</h1>";

            var taxManager = TaxonomyManager.GetManager();

            AddTaxaToProduct(productItem, taxManager, "Colors", ProductsIntegrationTests.colorName);

            productItem.WhatIsInTheBox  = "Summary goes here...";
            productItem.QuantityInStock = 1;
            productItem.Price           = 10;

            AddImageToProductItem(productItem);

            productsManager.SaveChanges();
            var contextBag = new Dictionary <string, string>();

            contextBag.Add("ContentType", productItem.GetType().FullName);

            string workflowOperation = "Publish";

            WorkflowManager.MessageWorkflow(
                productItem.Id,
                productItem.GetType(),
                "OpenAccessDataProvider",
                workflowOperation,
                false,
                contextBag);

            var product = productsManager.GetProduct(ProductsIntegrationTests.productItemId);

            Assert.IsNotNull(product);
            Assert.IsNotNull(product.GetValue("Colors"));
        }
Пример #22
0
        /// <summary>
        /// Gets the taxons.
        /// </summary>
        /// <param name="content">The content.</param>
        /// <param name="taxonomyField">The taxonomy field.</param>
        /// <returns>
        /// The taxa.
        /// </returns>
        public static List <TaxonModel> GetTaxa(this IDynamicFieldsContainer content, string taxonomyField)
        {
            var taxonomyManager = TaxonomyManager.GetManager();
            var list            = new List <TaxonModel>();

            //POPULATE CATEGORIES IF APPLICABLE
            if (content.DoesFieldExist(taxonomyField))
            {
                var ids = content.GetValue <TrackedList <Guid> >(taxonomyField);
                if (ids.Any())
                {
                    //BUILD COLLECTION OF TAXONS
                    foreach (Guid item in ids)
                    {
                        list.Add(new TaxonModel(taxonomyManager.GetTaxon(item)));
                    }
                }
            }

            //RETURN CONSTRUCTED LIST
            return(list);
        }
Пример #23
0
        /// <summary>
        /// Gets the or create template category identifier.
        /// </summary>
        /// <param name="templateCategoryName">The template category name.</param>
        /// <param name="createIfNotExist">if set to <c>true</c> [create if not exist].</param>
        /// <returns>The id of the category.</returns>
        public virtual Guid GetOrCreateTemplateCategoryId(string templateCategoryName, bool createIfNotExist = true)
        {
            var taxonomyManager = TaxonomyManager.GetManager();

            var pageTemplatesTaxonomy = taxonomyManager.GetTaxonomy <HierarchicalTaxonomy>(SiteInitializer.PageTemplatesTaxonomyId);
            var templateCategory      = pageTemplatesTaxonomy.Taxa.SingleOrDefault(t => t.Name.Equals(templateCategoryName, StringComparison.OrdinalIgnoreCase));

            if (templateCategory == null && createIfNotExist)
            {
                templateCategory              = taxonomyManager.CreateTaxon <HierarchicalTaxon>();
                templateCategory.Name         = templateCategoryName;
                templateCategory.UrlName      = templateCategoryName;
                templateCategory.RenderAsLink = false;
                templateCategory.Title        = templateCategoryName;
                templateCategory.Description  = string.Format("Represents category for {0} page templates.", templateCategoryName);

                pageTemplatesTaxonomy.Taxa.Add(templateCategory);
                taxonomyManager.SaveChanges();
            }

            return(templateCategory.Id);
        }
Пример #24
0
        private void migrateTags(Entry post, BlogPost blogPost, BlogsManager blogsManager)
        {
            TaxonomyManager taxonomyManager = new TaxonomyManager();
            var             tax             = taxonomyManager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == "Tags").SingleOrDefault();

            foreach (Category tag in post.Categories.Where(c => c.CategoryType == CategoryType.Unknown))
            {
                var taxon = taxonomyManager.GetTaxa <FlatTaxon>().Where(t => t.Title == tag.Term).FirstOrDefault();
                if (taxon == null)
                {
                    taxon       = taxonomyManager.CreateTaxon <FlatTaxon>();
                    taxon.Name  = tag.Term;
                    taxon.Title = tag.Term;

                    tax.Taxa.Add(taxon);
                    taxonomyManager.SaveChanges();
                }

                blogPost.Organizer.AddTaxa("Tags", taxon.Id);
                blogsManager.SaveChanges();
            }
        }
Пример #25
0
        public ActionResult Index()
        {
            List <PopularToursItemModel> popularToursItemModel = new List <PopularToursItemModel>();
            var  manager = DynamicModuleManager.GetManager();
            Type Tour    = TypeResolutionService.ResolveType(DynamicContentConstants.DynamicContent.Types.Tour);

            TaxonomyManager taxaManager      = TaxonomyManager.GetManager();
            var             adventuresTaxa   = taxaManager.GetTaxa <FlatTaxon>().Where(t => t.Taxonomy.Name == DynamicContentConstants.DynamicContent.Tours.Adventures).ToList();
            var             difficultiesTaxa = taxaManager.GetTaxa <FlatTaxon>().Where(t => t.Taxonomy.Name == DynamicContentConstants.DynamicContent.Tours.Difficulties).ToList();
            //get the selected items
            var items = manager.GetDataItems(Tour).Where(item => item.Status == ContentLifecycleStatus.Live && item.Visible).ToList();



            foreach (var item in items)
            {
                var image = item.GetRelatedItems(DynamicContentConstants.DynamicContent.Tours.ThumbnailImage).FirstOrDefault() as Image;
                var adventureTaxaTitles      = item.GetAssociatedTagNamesForContentItem(DynamicContentConstants.DynamicContent.Tours.Adventures, adventuresTaxa);
                var difficultyTaxaTitles     = item.GetAssociatedTagNamesForContentItem(DynamicContentConstants.DynamicContent.Tours.Difficulties, difficultiesTaxa);
                var accomodationChoiceFields = item.GetValue <IEnumerable <ChoiceOption> >(DynamicContentConstants.DynamicContent.Tours.Accomodation).ToList();
                var model = new PopularToursItemModel
                {
                    Title          = item.GetString(DynamicContentConstants.DynamicContent.Tours.Title),
                    Description    = item.GetString(DynamicContentConstants.DynamicContent.Tours.Description),
                    NoOfDays       = Convert.ToString(item.GetValue(DynamicContentConstants.DynamicContent.Tours.NoOfDays)),
                    SizeOfTour     = Convert.ToString(item.GetValue(DynamicContentConstants.DynamicContent.Tours.SizeOfTour)),
                    NoOfTourGuides = Convert.ToString(item.GetValue(DynamicContentConstants.DynamicContent.Tours.NoOfTourGuides)),
                    Price          = Convert.ToString(item.GetValue(DynamicContentConstants.DynamicContent.Tours.Price)),
                    AdventureTags  = adventureTaxaTitles.Any() ? string.Join(",", adventureTaxaTitles) : string.Empty,
                    DifficultyTags = difficultyTaxaTitles.Any() ? string.Join(",", difficultyTaxaTitles) : string.Empty,
                    Accomodation   = accomodationChoiceFields.Any() ? string.Join(",", accomodationChoiceFields) : string.Empty,
                    ImageUrl       = image != null ? image.MediaUrl : string.Empty
                };
                popularToursItemModel.Add(model);
            }
            model.toursItemModel = popularToursItemModel;
            return(View("Tours" + this._template, model));
        }
        public void NewsWidget_SelectByTagNewsFunctionality()
        {
            int newsCount = 2;

            Guid[] taxonId        = new Guid[newsCount];
            Guid[] newsId         = new Guid[newsCount];
            string newsTitle      = "News ";
            string tagTitle       = "Tag ";
            var    newsController = new NewsController();

            string[] tagTitles = new string[newsCount];

            try
            {
                for (int i = 0; i < newsCount; i++)
                {
                    taxonId[i]   = this.serverOperationsTaxonomies.CreateFlatTaxon(Telerik.Sitefinity.TestUtilities.CommonOperations.TaxonomiesConstants.TagsTaxonomyId, tagTitle + i);
                    tagTitles[i] = tagTitle + i;
                    newsId[i]    = this.serverOperationsNews.CreatePublishedNewsItem(newsTitle + i);
                    this.serverOperationsNews.AssignTaxonToNewsItem(newsId[i], "Tags", taxonId[i]);
                }

                for (int i = 0; i < newsCount; i++)
                {
                    ITaxon taxonomy = TaxonomyManager.GetManager().GetTaxon(taxonId[i]);
                    var    items    = newsController.Model.CreateListViewModel(taxonomy, 1).Items.ToArray();

                    for (int j = 0; j < items.Length; j++)
                    {
                        Assert.IsTrue(items[j].Fields.Title.Equals(newsTitle + i, StringComparison.CurrentCulture), "The news with this title was not found!");
                    }
                }
            }
            finally
            {
                this.serverOperationsTaxonomies.DeleteTags(tagTitles);
            }
        }
Пример #27
0
        /// <summary>
        /// Creates news item with tag.
        /// </summary>
        /// <param name="newsTitle">The news title.</param>
        public void AddCustomTaxonomyToNews(Guid newsItemId, string taxonomyName, IEnumerable <string> taxonNames)
        {
            var      newsManager = Telerik.Sitefinity.Modules.News.NewsManager.GetManager();
            NewsItem newsItem    = newsManager.GetNewsItem(newsItemId);

            if (newsItem == null)
            {
                throw new ItemNotFoundException(string.Format(CultureInfo.CurrentCulture, "News item with id {0} was not found.", newsItemId));
            }

            TaxonomyManager taxonomyManager = TaxonomyManager.GetManager();

            foreach (var taxonName in taxonNames)
            {
                var taxon = taxonomyManager.GetTaxa <FlatTaxon>().Where(t => t.Title == taxonName).FirstOrDefault();
                if (taxon != null)
                {
                    newsItem.Organizer.AddTaxa(taxonomyName, taxon.Id);
                }
            }

            newsManager.SaveChanges();
        }
        public static IQueryable <DynamicContent> GetContentByFlatTaxonomyTerm(String contentType, String term, String fieldName)
        {
            var providerName = String.Empty;

            DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(providerName);
            Type resourceType = TypeResolutionService.ResolveType(contentType);

            // This is how we get the resource items through filtering

            var manager = TaxonomyManager.GetManager();
            //Get the GUID of the desired category
            var category = manager.GetTaxa <FlatTaxon>().Where(t => t.Name.ToLower() == term).SingleOrDefault();

            if (category == null)
            {
                throw new InvalidProgramException("No category found");
            }
            var categoryId = category.Id;

            return(dynamicModuleManager.GetDataItems(resourceType)
                   .Where(d => d.GetValue <TrackedList <Guid> >(fieldName).Contains(categoryId) &&
                          d.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live));
        }
Пример #29
0
        public void SetUp()
        {
            Guid pageId = ServerOperations.Pages().CreatePage(PageName);

            ServerOperationsFeather.DynamicModules().EnsureModuleIsImported(ModuleName, ModuleResource);
            ServerOperations.Taxonomies().CreateCategory(this.taxonTitleDynamic + "0");
            ServerOperations.Taxonomies().CreateCategory(this.taxonTitleNews + "0");

            for (int i = 1; i < 4; i++)
            {
                ServerOperations.Taxonomies().CreateCategory(this.taxonTitleDynamic + i, this.taxonTitleDynamic + (i - 1));
                ServerOperations.Taxonomies().CreateCategory(this.taxonTitleNews + i, this.taxonTitleNews + (i - 1));
                var category = TaxonomyManager.GetManager().GetTaxa <HierarchicalTaxon>().SingleOrDefault(t => t.Title == this.taxonTitleDynamic + i);
                ServerOperationsFeather.DynamicModulePressArticle().CreatePressArticle(ItemsTitle + (i - 1), ItemsTitle + i + "Url", Guid.Empty, category.Id);
                ServerOperationsFeather.NewsOperations().CreatePublishedNewsItem(NewsTitle + i, NewsContent, AuthorName, SourceName, new List <string> {
                    this.taxonTitleNews + i
                }, null, null);
            }

            ServerOperationsFeather.Pages().AddDynamicWidgetToPage(pageId, "Telerik.Sitefinity.DynamicTypes.Model.PressRelease.PressArticle", "PressArticle", "Press Articles MVC");
            ServerOperationsFeather.Pages().AddNewsWidgetToPage(pageId);
            ServerOperationsFeather.Pages().AddCategoriesWidgetToPage(pageId);
        }
Пример #30
0
        public void EditTag(string oldTitle, string newTitle)
        {
            var manager = TaxonomyManager.GetManager();
            var tag     = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == "Tags").SingleOrDefault();

            if (tag != null)
            {
                FlatTaxon taxon = manager.GetTaxa <FlatTaxon>().Where(t => t.Title == oldTitle).SingleOrDefault();

                if (taxon != null)
                {
                    //// Code below is commented, because code below is not editing the title, which is relevant for UI tests
                    taxon.Title = newTitle;

                    //// taxon.Title = new Lstring(newTitle, CultureInfo.InvariantCulture);
                    //// taxon.Name = Regex.Replace(newTitle, " ", string.Empty);

                    taxon.UrlName  = Regex.Replace(newTitle.ToLower(CultureInfo.CurrentCulture), ArrangementConstants.UrlNameCharsToReplace, ArrangementConstants.UrlNameReplaceString);
                    taxon.Taxonomy = tag;

                    manager.SaveChanges();
                }
            }
        }
Пример #31
0
        private List <BlendedListItem> GetNewsBlendedForUrl(List <Type> dynamicContent, string url)
        {
            List <BlendedListItem> newsBlend = new List <BlendedListItem>();

            if (dynamicContent.Any())
            {
                var dynamicModuleManager = DynamicModuleManager.GetManager();
                var taxonomyManager      = TaxonomyManager.GetManager();
                log.Info("contYpe:{0}".Fmt(dynamicContent.Count));
                foreach (Type contentType in dynamicContent)
                {
                    log.Info("type of:{0} with url{1}".Fmt(contentType, url));
                    DynamicContent content = dynamicModuleManager.GetDataItems(contentType).FirstOrDefault(bp => bp.UrlName == url);
                    if (content != null)
                    {
                        log.Info("dyn content url is:{0} from {1}".Fmt(content.UrlName, url));
                        DynamicContent liveContent = dynamicModuleManager.Lifecycle.GetLive(content) as DynamicContent;
                        if (liveContent != null)
                        {
                            List <Guid> categories        = liveContent.GetValue <IList <Guid> >("Category").ToList();
                            Guid[]      contentCategories = new Guid[0];
                            int         hitCount          = 0;
                            contentCategories =
                                categories.Where(c => taxonomyManager.GetTaxon <HierarchicalTaxon>(c) != null)
                                .Select(m => m)
                                .ToArray();
                            //var resultContent = BlendedNewsHelper.GetNewsItems(Providers, _searchIndex, out hitCount, contentCategories, null, 0, this.NumberOfPosts + 10);
                            var resultContent = BlendedNewsHelper.GetNewsDocs(Providers, _searchIndex, out hitCount, contentCategories, null, 0, this.NumberOfPosts + 10);
                            List <BlendedListItem> newsResult = SetBlendedListItems(resultContent);
                            return(newsResult);
                        }
                    }
                }
            }
            return(newsBlend);
        }
Пример #32
0
        public void CreateSiteColumns()
        {
            Web             web = ClientContext.Web;
            FieldCollection webFieldCollection = web.Fields;

            ClientContext.Load(webFieldCollection);
            ClientContext.ExecuteQuery();

            var termStoreId = new TaxonomyManager(null).GetTermStoreId(ClientContext);

            foreach (GtField field in Fields.Where(field => !webFieldCollection.Any(item => item.InternalName == field.InternalName)))
            {
                if (field.Type.StartsWith("TaxonomyFieldType"))
                {
                    field.SspId = termStoreId;
                    DeleteHiddenFieldForTaxonomyField(webFieldCollection, field.ID);
                    CreateTaxonomyField(field, webFieldCollection);
                }
                else
                {
                    CreateField(field, webFieldCollection);
                }
            }
        }
Пример #33
0
        public static string GetTaxonomyNameFromID(long taxID)
        {
            //CustomPropertyObjectData customData = customObject.GetItem(taxID, 1033, EkEnumeration.CustomPropertyObjectType.TaxonomyNode, 1);
            //if (customData.Items.Count > 0)
            //{
            //    return customData.Items[0].PropertyValue.ToString();
            //}

            //else
            //{
            string taxName = string.Empty;
            TaxonomyManager taxonomyManager = new TaxonomyManager();
            TaxonomyData taxonomyData = taxonomyManager.GetItem(taxID);
            if (taxonomyData != null)
            {
                taxName = taxonomyData.Name;
            }
            return taxName;
            // }
        }
        //***********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);
        }
Пример #35
0
        public static Facade CreateFacade(String connectionString)
        {
            var infoCopier = new InfoCopier();
            var countryRepositoryStorage = new InMemoryStorage <CountryRepository>();
            var countrySerializer        = new CountryToJsonSerializer();
            var countryManager           = new CountryManager(countryRepositoryStorage);
            var basketRenderer           = new BasketRenderer();
            var securityRepositoryCache  = new InMemoryStorage <SecurityRepository>();
            var calculationRequester     = new CalculationRequester();
            var monitor            = new Monitor();
            var securitySerializer = new SecurityToJsonSerializer(countrySerializer);
            var securityManager    = new SecurityManager(securityRepositoryCache, monitor);

            IDataManagerFactory dataManagerFactory = new FakeDataManagerFactory();
            var connectionFactory        = new SqlConnectionFactory(connectionString);
            var portfolioRepositoryCache = new InMemoryStorage <PortfolioRepository>();
            var portfolioSerialzer       = new TopDown.Core.ManagingPortfolios.PortfolioToJsonSerializer(securitySerializer);
            var portfolioManager         = new TopDown.Core.ManagingPortfolios.PortfolioManager(
                portfolioRepositoryCache,
                portfolioSerialzer
                );

            var targetingTypeManager = new TargetingTypeManager(
                new TopDown.Core.ManagingTargetingTypes.InfoDeserializer(),
                new InMemoryStorage <TargetingTypeRepository>(),
                new InMemoryStorage <TargetingTypeGroupRepository>()
                );
            var taxonomyManager = new TaxonomyManager(
                new InMemoryStorage <TaxonomyRepository>(),
                new TopDown.Core.ManagingTaxonomies.InfoDeserializer(
                    new TopDown.Core.ManagingTaxonomies.XmlDeserializer()
                    )
                );

            var basketRepositoryStorage = new InMemoryStorage <BasketRepository>();
            var basketManager           = new BasketManager(
                basketRepositoryStorage,
                new TopDown.Core.ManagingBaskets.XmlDeserializer(),
                new BasketSecurityRelationshipInvestigator()
                );


            var benchmarkRepositoryStorage = new InMemoryStorage <BenchmarkRepository>();
            var benchmarkManager           = new BenchmarkManager(benchmarkRepositoryStorage);

            var portfolioSecurityTargetRepositoryCache   = new InMemoryStorage <TopDown.Core.ManagingPst.PortfolioSecurityTargetRepository>();
            var portfolioSecurityTargetRepositoryManager = new TopDown.Core.ManagingPst.RepositoryManager(
                infoCopier,
                portfolioSecurityTargetRepositoryCache
                );

            var bpstCache   = new InMemoryStorage <TopDown.Core.ManagingBpst.BasketSecurityPortfolioTargetRepository>();
            var bpstManager = new TopDown.Core.ManagingBpst.BasketSecurityPortfolioTargetRepositoryManager(bpstCache);

            var ttgbsbvrCache   = new InMemoryStorage <TopDown.Core.ManagingBpst.TargetingTypeGroupBasketSecurityBaseValueRepository>();
            var ttgbsbvrManager = new TopDown.Core.ManagingBpst.TargetingTypeGroupBasketSecurityBaseValueRepositoryManager(ttgbsbvrCache);

            var issuerRepositoryStorage = new InMemoryStorage <IssuerRepository>();
            var issuerManager           = new IssuerManager(monitor, issuerRepositoryStorage);


            var repositoryManager = new TopDown.Core.RepositoryManager(
                monitor,
                basketManager,
                targetingTypeManager,
                countryManager,
                taxonomyManager,
                securityManager,
                portfolioManager,
                benchmarkManager,
                portfolioSecurityTargetRepositoryManager,
                bpstManager,
                ttgbsbvrManager,
                issuerManager
                );

            repositoryManager.DropEverything();

            var validationSerializer   = new TopDown.Core.ValidationIssueToJsonSerializer();
            var expressionSerializer   = new ExpressionToJsonSerializer(validationSerializer);
            var expressionDeserializer = new ExpressionFromJsonDeserializer();
            var defaultBreakdownValues = TopDown.Core.ManagingBpt.DefaultValues.CreateDefaultValues();
            var picker              = new ExpressionPicker();
            var commonParts         = new CommonParts();
            var overlayModelBuilder = new TopDown.Core.Overlaying.ModelBuilder(null, commonParts);
            var overlayManager      = new OverlayManager(overlayModelBuilder);
            var bptModelBuilder     = new TopDown.Core.ManagingBpt.ModelBuilder(
                picker,
                commonParts,
                defaultBreakdownValues,
                overlayModelBuilder
                );

            var globeTraverser             = new GlobeTraverser();
            var taxonomyTraverser          = new TaxonomyTraverser();
            var taxonomyToModelTransformer = new TaxonomyToModelTransformer(picker, bptModelBuilder, globeTraverser);
            var countriesDetector          = new MissingCountriesDetector(
                new UnknownCountryIsoCodesDetector(),
                new TopDown.Core.ManagingTaxonomies.CountryIsoCodesExtractor(taxonomyTraverser),
                new TopDown.Core.Overlaying.CombinedCountryIsoCodesExtractor(new TopDown.Core.Overlaying.CountryIsoCodesExtractor()),
                new TopDown.Core.ManagingBenchmarks.CountryIsoCodesExtractor()
                );
            var modelToTaxonomyTransformer = new ModelToTaxonomyTransformer();
            var bptModelApplier            = new TopDown.Core.ManagingBpt.ModelApplier(
                new TopDown.Core.ManagingBpt.ChangingBt.ChangesetApplier(dataManagerFactory, modelToTaxonomyTransformer),
                new TopDown.Core.ManagingBpt.ChangingBt.ModelToChangesetTransformer(globeTraverser),
                new TopDown.Core.ManagingBpt.ChangingPsto.ChangesetApplier(),
                new TopDown.Core.ManagingBpt.ChangingPsto.ModelToChangesetTransformer(),
                new TopDown.Core.ManagingBpt.ChangingTtbbv.ChangesetApplier(),
                new TopDown.Core.ManagingBpt.ChangingTtbbv.ModelToChangesetTransformer(globeTraverser),
                new TopDown.Core.ManagingBpt.ChangingTtbpt.ChangesetApplier(),
                new TopDown.Core.ManagingBpt.ChangingTtbpt.ModelToChangesetTransformer(globeTraverser),
                new TopDown.Core.ManagingBpt.ModelValidator(globeTraverser),
                dataManagerFactory,
                calculationRequester
                );

            var targetsFlattener  = new TargetsFlattener(infoCopier);
            var bptChangeDetector = new TopDown.Core.ManagingBpt.ModelChangeDetector(
                new TopDown.Core.ManagingBpt.ModelExpressionTraverser(globeTraverser)
                );
            var bptManager = new TopDown.Core.ManagingBpt.ModelManager(
                globeTraverser,
                bptModelBuilder,
                taxonomyToModelTransformer,
                new BaseValueInitializer(globeTraverser),
                new BenchmarkValueInitializer(globeTraverser),
                new OverlayInitializer(globeTraverser, targetsFlattener),
                new PortfolioAdjustmentInitializer(globeTraverser),
                new TopDown.Core.ManagingBpt.ModelToJsonSerializer(expressionSerializer, portfolioSerialzer),
                new TopDown.Core.ManagingBpt.ModelFromJsonDeserializer(
                    picker,
                    bptModelBuilder,
                    globeTraverser,
                    expressionDeserializer
                    ),
                repositoryManager,
                overlayManager,
                countriesDetector,
                bptModelApplier,
                bptChangeDetector
                );

            var pstModelToChangeMapper = new TopDown.Core.ManagingPst.ModelToChangesetTransformer();
            var pstChangeApplier       = new TopDown.Core.ManagingPst.ChangesetApplier();
            var pstModelBuilder        = new TopDown.Core.ManagingPst.ModelBuilder(null, commonParts);
            var pstModelValidator      = new TopDown.Core.ManagingPst.ModelValidator();
            var pstManager             = new PstManager(
                pstChangeApplier,
                pstModelValidator,
                pstModelToChangeMapper,
                new TopDown.Core.ManagingPst.ModelFromJsonDeserializer(
                    pstModelBuilder,
                    expressionDeserializer
                    ),
                pstModelBuilder,
                portfolioSecurityTargetRepositoryManager,
                new TopDown.Core.ManagingPst.ModelChangeDetector(
                    new TopDown.Core.ManagingPst.ModelExpressionTraverser()
                    ),
                dataManagerFactory,
                calculationRequester,
                new TopDown.Core.ManagingPst.ModelToJsonSerializer(expressionSerializer, securitySerializer)
                );


            var portfiolioPickerManager = new ProtfolioPickerManager(
                new TopDown.Core.Gadgets.PortfolioPicker.ModelToJsonSerializer()
                );

            var basketPickerManager = new TopDown.Core.Gadgets.BasketPicker.ModelManager(
                new TopDown.Core.Gadgets.BasketPicker.ModelBuilder(
                    new BasketExtractor(taxonomyTraverser),
                    new BasketRenderer()
                    ),
                new TopDown.Core.Gadgets.BasketPicker.ModelToJsonSerializer()
                );

            var bpstModelBuilder = new TopDown.Core.ManagingBpst.ModelBuilder(
                TopDown.Core.ManagingBpst.DefaultValues.CreateDefaultValues(),
                commonParts
                );
            var bpstBenchmarkInitializer = new TopDown.Core.ManagingBpst.BenchmarkInitializer();
            var bpstModelValidator       = new TopDown.Core.ManagingBpst.ModelValidator();
            var bpstModelManager         = new TopDown.Core.ManagingBpst.ModelManager(
                new TopDown.Core.ManagingBpst.ModelToJsonSerializer(expressionSerializer, securitySerializer),
                bpstModelBuilder,
                new TopDown.Core.ManagingBpst.ModelFromJsonDeserializer(
                    expressionDeserializer,
                    bpstModelBuilder,
                    bpstBenchmarkInitializer
                    ),
                new TopDown.Core.ManagingBpst.ModelApplier(
                    dataManagerFactory,
                    new TopDown.Core.ManagingBpst.ChangingTtgbsbv.ChangesetApplier(),
                    new TopDown.Core.ManagingBpst.ChangingTtgbsbv.ModelToChangesetTransformer(),
                    new TopDown.Core.ManagingBpst.ChangingBpst.PortfolioTargetChangesetApplier(),
                    new TopDown.Core.ManagingBpst.ChangingBpst.ModelToChangesetTransformter(),
                    calculationRequester,
                    bpstModelValidator,
                    repositoryManager
                    ),
                bpstModelValidator,
                bpstBenchmarkInitializer,
                new TopDown.Core.ManagingBpst.ModelChangeDetector(new TopDown.Core.ManagingBpst.ModelExpressionTraverser()),
                repositoryManager
                );

            var validationManager = new ValidationManager(validationSerializer);

            var hopper = new TopDown.Core.ManagingCalculations.Hopper(
                repositoryManager,
                bptManager,
                bpstModelManager,
                basketRenderer
                );

            //var fileManager = new TopDown.Core.ManagingCalculations.TradingTargetsFileManager(repositoryManager, dataManagerFactory, connectionFactory);

            var commentManager = new Core.ManagingComments.CommentManager();

            var facade = new Facade(
                connectionFactory,
                dataManagerFactory,
                repositoryManager,
                bptManager,
                picker,
                commonParts,
                pstManager,
                basketManager,
                portfiolioPickerManager,
                basketPickerManager,
                bpstModelManager,
                portfolioManager,
                hopper,
                commentManager
                );

            return(facade);
        }
Пример #36
0
        /// <summary>
        /// Adds a custom field to Press article
        /// </summary>
        /// <param name="fieldname">Name of the field</param>
        /// <param name="isHierarchicalTaxonomy">is hierarchical taxonomy</param>
        public void AddCustomTaxonomyToContext(string fieldname, bool isHierarchicalTaxonomy)
        {
            Type pressArticleType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.PressRelease.PressArticle");

            if (pressArticleType == null)
            {
                throw new ArgumentException("PressArticle type can't be resolved.");
            }

            var context = new CustomFieldsContext(pressArticleType);

            TaxonomyManager manager = TaxonomyManager.GetManager();
            Guid            taxonomyId;

            if (isHierarchicalTaxonomy == true)
            {
                var taxonomy = manager.GetTaxonomies <HierarchicalTaxonomy>().Where(t => t.Title == fieldname).SingleOrDefault();
                if (taxonomy != null)
                {
                    taxonomyId = taxonomy.Id;
                }
                else
                {
                    throw new ArgumentException("The taxonomy '" + fieldname + "' does not exist in the system");
                }
            }
            else
            {
                var taxonomy = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Title == fieldname).SingleOrDefault();
                if (taxonomy != null)
                {
                    taxonomyId = taxonomy.Id;
                }
                else
                {
                    throw new ArgumentException("The taxonomy '" + fieldname + "' does not exist in the system");
                }
            }

            UserFriendlyDataType userFriendlyDataType = UserFriendlyDataType.Classification;
            var field = new WcfField()
            {
                Name         = fieldname,
                ContentType  = "Telerik.Sitefinity.DynamicTypes.Model.PressRelease.PressArticle",
                FieldTypeKey = userFriendlyDataType.ToString(),
                IsCustom     = true,

                // Field definition
                Definition = new WcfFieldDefinition()
                {
                    Title                  = fieldname,
                    FieldName              = fieldname.ToLower(),
                    FieldType              = isHierarchicalTaxonomy ? typeof(HierarchicalTaxonField).FullName : typeof(FlatTaxonField).FullName,
                    TaxonomyId             = taxonomyId.ToString(),
                    AllowMultipleSelection = true,
                }
            };

            var fields = new Dictionary <string, WcfField>();

            fields.Add(field.FieldTypeKey, field);

            context.AddOrUpdateCustomFields(fields, pressArticleType.Name);
            context.SaveChanges();
        }
Пример #37
0
 public TaxonomiesService()
 {
     manager = TaxonomyManager.GetManager();
 }
Пример #38
0
 /// <summary>
 /// Restricts search results to a set of taxonomies.
 /// ORs a set of taxonomies together, then ANDs the result expression to the <see cref="SearchCriteria">search criteria</see> <see cref="SearchCriteria.ExpressionTree">expression tree</see>.
 /// </summary>
 /// <param name="criteria">The criteria to extend.</param>
 /// <param name="taxonomyManager">A <see cref="TaxonomyManager"/> instance from qhich to query the taxonomies.</param>
 /// <param name="taxonomyIds">The set of taxonomy IDs to restrict results to.</param>
 /// <returns>The updated criteria.</returns>
 public static T AndTaxonomy <T>(this T criteria, TaxonomyManager taxonomyManager, params long[] taxonomyIds)
     where T : SearchCriteria
 {
     return(criteria.And(ExpressionFactory.Create(taxonomyManager, taxonomyIds)));
 }
Пример #39
0
 /// <summary>
 /// Creates the taxon.
 /// </summary>
 /// <param name="taxonomyId">The taxonomy id.</param>
 /// <param name="taxonTitle">The taxon title.</param>
 /// <returns></returns>
 private Guid CreateTaxon(Guid taxonomyId, string taxonTitle)
 {
     var taxonomyManager = new TaxonomyManager();
     var taxon = taxonomyManager.CreateTaxon<FlatTaxon>();
     taxon.Taxonomy = taxonomyManager.GetTaxonomy<FlatTaxonomy>(taxonomyId);
     taxon.Title = taxonTitle;
     taxon.UrlName = new Lstring(Regex.Replace(taxonTitle, ArrangementConstants.UrlNameCharsToReplace, ArrangementConstants.UrlNameReplaceString).ToLower());
     taxonomyManager.SaveChanges();
     return taxon.Id;
 }