Exemplo n.º 1
0
        public static List <DynamicContent> GetCurrentSiteItems(string dynamicType, string dataSource)
        {
            Type itemType       = TypeResolutionService.ResolveType(dynamicType);
            var  managerArticle = TaxonomyManager.GetManager();

            MultisiteContext multisiteContext = SystemManager.CurrentContext as MultisiteContext;
            var providerName = multisiteContext.CurrentSite.GetProviders(dataSource).Select(p => p.ProviderName);

            // Set a transaction name
            var transactionName = Guid.NewGuid(); // I often using Guid.NewGuid()


            // Set the culture name for the multilingual fields
            var cultureName = "";

            Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);

            DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(providerName.FirstOrDefault(), transactionName.ToString());
            Type type = TypeResolutionService.ResolveType(dynamicType);

            // This is how we get the consultant items through filtering
            var myFilteredCollection = dynamicModuleManager.GetDataItems(type).Where(c => c.Status == ContentLifecycleStatus.Live & c.Visible);

            return(myFilteredCollection.ToList());
        }
Exemplo n.º 2
0
        public static string GetCurrentSiteEmailTemplateProviderName()
        {
            MultisiteContext multisiteContext = SystemManager.CurrentContext as MultisiteContext;
            var providerName = multisiteContext.CurrentSite.GetDefaultProvider(_emailTemplateStr);

            return(providerName.ProviderName);
        }
Exemplo n.º 3
0
        public SiteSettingsHelper()
        {
            var basicSettingsSerivce        = new BasicSettingsService();
            var multiSiteContext            = new MultisiteContext();
            var currSite                    = multiSiteContext.CurrentSite;
            SettingsItemContext siteSetting = null;

            SystemManager.RunWithElevatedPrivilege(d => { siteSetting = basicSettingsSerivce.GetSettings(_itemType, currSite.Id.ToString()); });
            if (siteSetting != null)
            {
                _siteSettingsContract = (CustomSiteSettingsContract)siteSetting.Item;
            }
        }
Exemplo n.º 4
0
        protected override Expression <Func <ContentPage, bool> > PageOrMediaPredicate(string siteName)
        {
            // this override is necessary to ensure catalog items are included in search results since they don't live under the site's home node
            // todo: determine if this override is still necessary in CXA 9.1 (the 9.0.2 catalog location update probably made this obsolete)
            Item homeItem = this.SearchContextService.GetHomeItem(siteName);

            if (homeItem == null)
            {
                return(PredicateBuilder.False <ContentPage>());
            }

            Expression <Func <ContentPage, bool> > expression = i => i.IsSearchable;
            Item settingsItem = MultisiteContext.GetSettingsItem(homeItem);

            if (settingsItem != null)
            {
                MultilistField associatedContentSetting = settingsItem.Fields[Templates._SearchCriteria.Fields.AssociatedContent];
                if (associatedContentSetting != null)
                {
                    if (associatedContentSetting.TargetIDs.Any())
                    {
                        foreach (ID id in associatedContentSetting.TargetIDs)
                        {
                            expression = expression.Or(i => i.RawPath == id.ToSearchID() && i.IsSearchable);
                        }
                    }
                }
                MultilistField associatedMediaSetting = settingsItem.Fields[Templates._SearchCriteria.Fields.AssociatedMedia];
                if (associatedMediaSetting != null)
                {
                    if (associatedMediaSetting.TargetIDs.Any())
                    {
                        foreach (Item item in associatedMediaSetting.GetItems())
                        {
                            expression = expression.Or(i => i.RawPath == item.ID.ToSearchID());
                        }
                    }
                }
            }
            return(expression);
        }
        protected override Expression <Func <ContentPage, bool> > PageOrMediaPredicate(string siteName)
        {
            Item homeItem = this.SearchContextService.GetHomeItem(siteName);

            if (homeItem == null)
            {
                return(PredicateBuilder.False <ContentPage>());
            }

            Expression <Func <ContentPage, bool> > expression = i => i.IsSearchable;
            Item settingsItem = MultisiteContext.GetSettingsItem(homeItem);

            if (settingsItem != null)
            {
                MultilistField associatedContentSetting = settingsItem.Fields[Templates._SearchCriteria.Fields.AssociatedContent];
                if (associatedContentSetting != null)
                {
                    if (associatedContentSetting.TargetIDs.Any())
                    {
                        foreach (ID id in associatedContentSetting.TargetIDs)
                        {
                            expression = expression.Or(i => i.RawPath == id.ToSearchID() && i.IsSearchable);
                        }
                    }
                }
                MultilistField associatedMediaSetting = settingsItem.Fields[Templates._SearchCriteria.Fields.AssociatedMedia];
                if (associatedMediaSetting != null)
                {
                    if (associatedMediaSetting.TargetIDs.Any())
                    {
                        foreach (Item item in associatedMediaSetting.GetItems())
                        {
                            expression = expression.Or(i => i.RawPath == item.ID.ToSearchID());
                        }
                    }
                }
            }
            return(expression);
        }
Exemplo n.º 6
0
        private bool _SendEmail(JobEmailFormModel form, JobDetailsFullModel job)
        {
            var subject = string.IsNullOrWhiteSpace(this.EmailSubject) ? "Job for you" : this.EmailSubject;

            var content = _GetHtmlEmailContent();

            var emailSender = new SitefinityEmailSender();

            // ideally there should be a common method to get a job's url
            // doing this due to lack of such method
            var jobUrl = Request.Url.Scheme + "://" + Request.Url.Authority;

            if (!string.IsNullOrWhiteSpace(JobDetailsPageId))
            {
                jobUrl += SitefinityHelper.GetPageUrl(JobDetailsPageId);

                if (job.ClassificationURL != null)
                {
                    jobUrl += "/" + job.ClassificationURL;
                }

                jobUrl += "/" + job.JobID;
            }


            dynamic templateData = new ExpandoObject();

            templateData.Job       = new ExpandoObject();
            templateData.Job.Id    = job.JobID;
            templateData.Job.Title = job.Title;
            templateData.Job.Url   = jobUrl;
            templateData.Domain    = HttpContext.GetCurrentDomain();

            var result = false;

            // if the email is not set then create one using current site's domain name
            var fromEmail = this.EmailFromEmail;

            if (string.IsNullOrEmpty(fromEmail))
            {
                fromEmail = "noreply@" + Request.Url.Host;
            }

            if (form.EmailFriend)
            {
                var from = new MailAddress(fromEmail, form.Name);

                var replyToCollection = new MailAddressCollection();
                replyToCollection.Add(new MailAddress(form.Email, form.Name));

                templateData.Sender = from;

                if (form.FriendMessage == null)
                {
                    templateData.Message = string.Empty;
                }
                else
                {
                    templateData.Message = Regex.Replace(form.FriendMessage, "<.*?>", String.Empty).Replace("\n", "<br />");
                }

                foreach (var item in form.Friend)
                {
                    var emailRequest = new EmailRequest
                    {
                        To        = new MailAddress(item.Email, item.Name),
                        ReplyTo   = replyToCollection,
                        From      = from,
                        Subject   = subject,
                        EmailBody = content
                    };

                    templateData.Recipient = emailRequest.To;

                    if (emailSender.SendEmail(emailRequest, templateData))
                    {
                        result = true;
                    }
                }
            }
            else
            {
                // if the name is not set then use current site's name
                var fromName = this.EmailFromName;
                if (string.IsNullOrEmpty(fromName))
                {
                    fromName = new MultisiteContext().CurrentSite.Name;
                }

                var emailRequest = new EmailRequest
                {
                    To        = new MailAddress(form.Email, form.Name),
                    From      = new MailAddress(fromEmail, fromName),
                    Subject   = subject,
                    EmailBody = content
                };

                templateData.Recipient = emailRequest.To;
                templateData.Sender    = emailRequest.From;
                templateData.Message   = string.Empty;

                result = emailSender.SendEmail(emailRequest, templateData);
            }

            return(result);
        }