public dynamic MapContentToHighlightsItemViewModel(HighlightsItemPart itemPart)
        {
            var     title    = itemPart.ContentItem.As <TitlePart>();
            dynamic body     = itemPart.Fields.First(f => f.Name == "MediaText");
            var     mediaUrl = "";

            try {
                var mediaContainerPart             = itemPart.ContentItem.Parts.Where(w => w.Fields.SingleOrDefault(w1 => w1.GetType() == typeof(MediaLibraryPickerField)) != null).FirstOrDefault();
                MediaLibraryPickerField mediafield = (MediaLibraryPickerField)mediaContainerPart.Fields.FirstOrDefault(w => w.GetType() == typeof(MediaLibraryPickerField));
                mediaUrl = mediafield.MediaParts.ToList()[0].MediaUrl;
            } catch { }
            string displayUrl = ContentItemExtensions.ItemDisplayUrl(new UrlHelper(new RequestContext(
                                                                                       new HttpContextWrapper(HttpContext.Current),
                                                                                       new RouteData()), RouteTable.Routes), itemPart);
            var HLItem = new HighlightsItemViewModel {
                Title                = title != null ? title.Title : "",
                TitleSize            = itemPart.TitleSize,
                SubTitle             = itemPart.Sottotitolo,
                Body                 = body != null ? body.Value : "",
                ItemOrder            = itemPart.ItemOrder,
                LinkTarget           = itemPart.LinkTarget,
                LinkUrl              = itemPart.LinkUrl,
                LinkText             = itemPart.LinkText,
                GroupShapeName       = itemPart.GroupShapeName,
                MediaUrl             = mediaUrl,
                Video                = itemPart.Video,
                GroupDisplayTemplate = itemPart.GroupDisplayTemplate,
                GroupDisplayPlugin   = itemPart.GroupDisplayPlugin,
                Content              = itemPart.ContentItem
            };

            return(HLItem);
        }
        private bool CheckFlag(GDPRContentContext context, MediaLibraryPickerField fi)
        {
            var settings = fi.PartFieldDefinition.Settings.GetModel <MediaLibraryPickerFieldGDPRPartFieldSettings>();

            return(context.Erase ?
                   settings.AttemptToEraseItems :
                   settings.AttemptToAnonymizeItems);
        }
        public IList <dynamic> MapContentToHighlightsItemsViewModel(IEnumerable <ContentItem> queryItems, Enums.DisplayTemplate displayTemplate, string displayPlugin, ViewsInfos viewsInfos)
        {
            var             order          = 0;
            IList <dynamic> fromQueryItems = new List <dynamic>();

            foreach (var queryItem in queryItems)
            {
                var title    = queryItem.As <TitlePart>();
                var body     = queryItem.As <BodyPart>();
                var bodyText = "";
                if (body == null)
                {
                    try {
                        var       mediaContainerPart = queryItem.Parts.Where(w => w.Fields.SingleOrDefault(w1 => w1.GetType() == typeof(TextField)) != null).FirstOrDefault();
                        TextField textfield          = (TextField)mediaContainerPart.Fields.FirstOrDefault(w => w.GetType() == typeof(TextField));
                        bodyText = textfield.Value;
                    } catch { }
                }
                else
                {
                    bodyText = body.Text;
                }
                var mediaUrl = "";
                try {
                    var mediaContainerPart             = queryItem.Parts.Where(w => w.Fields.SingleOrDefault(w1 => w1.GetType() == typeof(MediaLibraryPickerField)) != null && w.GetType() == typeof(ContentPart)).FirstOrDefault();
                    MediaLibraryPickerField mediafield = (MediaLibraryPickerField)mediaContainerPart.Fields.FirstOrDefault(w => w.GetType() == typeof(MediaLibraryPickerField));
                    mediaUrl = mediafield.MediaParts.ToList()[0].MediaUrl;
                } catch { }
                string displayUrl = ContentItemExtensions.ItemDisplayUrl(new UrlHelper(new RequestContext(
                                                                                           new HttpContextWrapper(HttpContext.Current),
                                                                                           new RouteData()), RouteTable.Routes), queryItem);
                var HLItem = new HighlightsItemViewModel {
                    Title                = title != null ? title.Title : "",
                    TitleSize            = "",
                    Body                 = bodyText,
                    ItemOrder            = order,
                    LinkTarget           = Enums.LinkTargets._self,
                    LinkUrl              = displayUrl,
                    GroupShapeName       = viewsInfos.SuffixShapeName.Replace("_", ""),
                    LinkText             = T("Details").Text,
                    MediaUrl             = mediaUrl,
                    Video                = false,
                    GroupDisplayTemplate = displayTemplate,
                    GroupDisplayPlugin   = displayPlugin,
                    Content              = queryItem
                };
                fromQueryItems.Add(HLItem);
                order++;
            }
            return(fromQueryItems);
        }
 protected override void Cloning(ContentPart part, MediaLibraryPickerField originalField, MediaLibraryPickerField cloneField, CloneContentContext context)
 {
     cloneField.Ids = originalField.Ids;
 }
        /// <summary>
        /// esempio http://localhost/Laser.Orchard/expoincitta/api/Laser.Orchard.ContentExtension/Content?ContentType=User
        /// da richiamare come application/json e non come form
        /// </summary>
        /// <param name="ContentType"></param>
        /// <param name="Language"></param>
        /// <returns></returns>
        public dynamic Get(string ContentType, string Language = "it-IT")
        {
            ContentTypeDefinition contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(ContentType);

            if (contentTypeDefinition == null)
            {
                Response resp = new Response()
                {
                    Success   = false,
                    Message   = T("ContentType not exist").ToString(),
                    ErrorCode = ErrorCode.Validation
                };
                return(resp);
            }
            var eObj = new ExpandoObject() as IDictionary <string, Object>;

            #region Tutti i field

            foreach (ContentTypePartDefinition ctpd in contentTypeDefinition.Parts)
            {
                var    fields    = ctpd.PartDefinition.Fields.ToList();
                string tipofield = "";
                foreach (ContentPartFieldDefinition singleField in fields)
                {
                    tipofield = singleField.FieldDefinition.Name;
                    if (tipofield == typeof(TaxonomyField).Name)
                    {
                        #region Tassonomia in Lingua

                        var taxobase = _taxonomyService.GetTaxonomyByName(singleField.Settings["TaxonomyFieldSettings.Taxonomy"]);
                        int idmaster = taxobase.Id;
                        if (taxobase.ContentItem.As <LocalizationPart>() != null)
                        {
                            if (((dynamic)taxobase.ContentItem).LocalizationPart.MasterContentItem != null)
                            {
                                idmaster = ((dynamic)taxobase.ContentItem).LocalizationPart.MasterContentItem.Id;
                            }
                            if (((dynamic)taxobase.ContentItem).LocalizationPart.Culture != null)
                            {
                                if (((dynamic)taxobase.ContentItem).LocalizationPart.Culture.Culture != Language)
                                {
                                    taxobase = _taxonomyService.GetTaxonomies().Where(x => (x.Id == idmaster || (((dynamic)x.ContentItem).LocalizationPart.MasterContentItem != null && ((dynamic)x.ContentItem).LocalizationPart.MasterContentItem.Id == idmaster)) && ((dynamic)x.ContentItem).LocalizationPart.Culture.Culture == Language).FirstOrDefault();
                                }
                            }
                        }
                        List <TermPart> cata         = _taxonomyService.GetTerms(taxobase.Id).ToList();//.GetTermsForContentItem(currentUser.Id, singleField.Name).ToList();
                        List <string>   ListCategory = new List <string>();
                        ListCategory = cata.Select(x => x.Id.ToString()).ToList();
                        List <ElementDetail> elements = new List <ElementDetail>();
                        foreach (var term in taxobase.Terms)
                        {
                            Int32?valore  = term.Id;
                            Int32?mediaid = null;
                            try {
                                MediaLibraryPickerField mpf = (MediaLibraryPickerField)(term.Fields.Where(x => x.FieldDefinition.Name == "MediaLibraryPickerField").FirstOrDefault());
                                mediaid = mpf.Ids[0];
                            }
                            catch { }
                            if (!term.Selectable)
                            {
                                valore = null;
                            }
                            if (term.FullPath == "/" + term.Id.ToString() || term.FullPath == term.Id.ToString())
                            {
                                elements.Add(new ElementDetail()
                                {
                                    Name = term.Name, Value = valore, ImageId = mediaid
                                });
                            }
                            else
                            {
                                Int32 idtermfather = Convert.ToInt32(term.FullPath.Split('/')[term.FullPath.Split('/').Length - 2]);
                                FindTaxoVM(elements, idtermfather).Children.Add(new ElementDetail()
                                {
                                    Name = term.Name, Value = valore, ImageId = mediaid
                                });
                            }
                        }
                        ResponseElement re         = new ResponseElement();
                        bool            solofoglie = Convert.ToBoolean(singleField.Settings["TaxonomyFieldSettings.LeavesOnly"]);
                        if (solofoglie)
                        {
                            ElementDetail TempElement = new ElementDetail(); //elemento fittizzio per procedura ricorsiva
                            TempElement.Children = elements;
                            AnnullaNonFoglie(TempElement);
                            elements = TempElement.Children;
                        }
                        re.Values  = elements;
                        re.Setting = new ResponseSetting {
                            Type = "Taxonomie", Required = Convert.ToBoolean(singleField.Settings["TaxonomyFieldSettings.Required"]), SingleChoice = Convert.ToBoolean(singleField.Settings["TaxonomyFieldSettings.SingleChoice"])
                        };
                        eObj.Add(ctpd.PartDefinition.Name + "." + singleField.Name, re);

                        #endregion Tassonomia in Lingua
                    }
                    else
                    if (tipofield == typeof(EnumerationField).Name)
                    {
                        string[]             elencovalori         = singleField.Settings["EnumerationFieldSettings.Options"].Split(new string[] { "\r\n" }, StringSplitOptions.None);
                        List <string>        elencoValoriInLingua = new List <string>();
                        List <ElementDetail> ele = new List <ElementDetail>();
                        foreach (string val in elencovalori)
                        {
                            ElementDetail tvm = new ElementDetail();
                            tvm.Value = val;
                            tvm.Name  = _localizedStringManager
                                        .GetLocalizedString(new string[] { "UserEnumeratore" }, val, Language)
                                        .Format;
                            ele.Add(tvm);
                        }
                        ResponseElement re = new ResponseElement();
                        re.Values = ele;
                        bool singlechoise = true;
                        if (singleField.Settings["EnumerationFieldSettings.ListMode"] == "Listbox" || singleField.Settings["EnumerationFieldSettings.ListMode"] == "Checkbox")
                        {
                            singlechoise = false;
                        }
                        re.Setting = new ResponseSetting {
                            Type = "Enumerator", Required = Convert.ToBoolean(singleField.Settings["EnumerationFieldSettings.Required"]), SingleChoice = singlechoise
                        };
                        eObj.Add(ctpd.PartDefinition.Name + "." + singleField.Name, re);
                    }
                }
            }

            #endregion Tutti i field

            return(Json(eObj));
        }
예제 #6
0
        private MediaPart MediaPart(MediaLibraryPickerField field)
        {
            var mediaId = field.Ids.FirstOrDefault();

            return(_contentManager.Get <MediaPart>(mediaId));
        }
 private bool ShouldDetachPersonal(GDPRContentContext context, MediaLibraryPickerField field)
 {
     return(context.Erase
         ? Setting(field).DetachGDPRItemsOnErase
         : Setting(field).DetachGDPRItemsOnAnonymize);
 }
        private int[] RemainingIds(MediaLibraryPickerField field, Func <ContentItem, bool> shouldRemain)
        {
            var items = _contentManager.GetMany <ContentItem>(field.Ids, VersionOptions.AllVersions, QueryHints.Empty);

            return(items.Where(shouldRemain).Select(ci => ci.Id).Distinct().ToArray());
        }
 private MediaLibraryPickerFieldGDPRPartFieldSettings Setting(MediaLibraryPickerField field)
 {
     return(field.PartFieldDefinition.Settings.GetModel <MediaLibraryPickerFieldGDPRPartFieldSettings>());
 }