Chronozoom.UI.ChronozoomSVC.GetUserFeatured C# (CSharp) Метод

GetUserFeatured() публичный Метод

public GetUserFeatured ( string guid ) : Collection
guid string
Результат Collection
        public Collection<TimelineShortcut> GetUserFeatured(string guid)
        {
            return ApiOperation<Collection<TimelineShortcut>>(delegate(User user, Storage storage)
            {
                Guid userGuid;

                // If GUID is not given then get supervisor's GUID. Otherwise parse the given GUID.
                if (guid.Equals("default"))
                {
                    string aps = ConfigurationManager.AppSettings["FeaturedTimelinesSupervisorGuid"];
                    userGuid = String.IsNullOrEmpty(aps) ? Guid.Empty : Guid.Parse(aps);
                }
                else if (!Guid.TryParse(guid, out userGuid))
                {
                    return null;
                }

                var cacheKey = string.Format(CultureInfo.InvariantCulture, "UserFeatured - {0}", userGuid);
                if (Cache.Contains(cacheKey))
                {
                    return (Collection<TimelineShortcut>)Cache.Get(cacheKey);
                }

                var triple = storage.GetTriplet(String.Format("czusr:{0}", userGuid), "czpred:featured").FirstOrDefault();
                if (triple == null)
                    return null;

                var elements = new Collection<TimelineShortcut>();
                foreach (var t in triple.Objects)
                {
                    var objName = TripleName.Parse(t.Object);
                    if (objName.Prefix == "cztimeline")
                    {
                        var g = new Guid(objName.Name);
                        var timeline = storage.Timelines.Where(x => x.Id == g)
                            .Include("Collection")
                            .Include("Collection.User")
                            .Include("Collection.SuperCollection")
                            .Include("Exhibits")
                            .Include("Exhibits.ContentItems")
                            .FirstOrDefault();

                        if (timeline != null)
                            elements.Add(storage.GetTimelineShortcut(timeline));
                    }
                }

                Cache.Add(cacheKey, elements);

                return elements;
            });
        }