示例#1
0
        public ResponseProfile GetImageMediaProfile(string container, int?width, int?height)
        {
            foreach (var i in ResponseProfiles)
            {
                if (i.Type != DlnaProfileType.Photo)
                {
                    continue;
                }

                if (!ContainerProfile.ContainsContainer(i.GetContainers(), container))
                {
                    continue;
                }

                var anyOff = false;
                foreach (var c in i.Conditions)
                {
                    if (!ConditionProcessor.IsImageConditionSatisfied(GetModelProfileCondition(c), width, height))
                    {
                        anyOff = true;
                        break;
                    }
                }

                if (anyOff)
                {
                    continue;
                }

                return(i);
            }
            return(null);
        }
示例#2
0
        public ResponseProfile GetImageMediaProfile(string container, int?width, int?height)
        {
            container = StringHelper.TrimStart((container ?? string.Empty), '.');

            foreach (var i in ResponseProfiles)
            {
                if (i.Type != DlnaProfileType.Photo)
                {
                    continue;
                }

                List <string> containers = i.GetContainers();
                if (containers.Count > 0 && !ListHelper.ContainsIgnoreCase(containers, container))
                {
                    continue;
                }

                ConditionProcessor conditionProcessor = new ConditionProcessor();

                var anyOff = false;
                foreach (ProfileCondition c in i.Conditions)
                {
                    if (!conditionProcessor.IsImageConditionSatisfied(c, width, height))
                    {
                        anyOff = true;
                        break;
                    }
                }

                if (anyOff)
                {
                    continue;
                }

                return(i);
            }
            return(null);
        }
示例#3
0
        public ResponseProfile GetPhotoMediaProfile(string container, int?width, int?height)
        {
            container = (container ?? string.Empty).TrimStart('.');

            return(ResponseProfiles.FirstOrDefault(i =>
            {
                if (i.Type != DlnaProfileType.Photo)
                {
                    return false;
                }

                var containers = i.GetContainers().ToList();
                if (containers.Count > 0 && !containers.Contains(container))
                {
                    return false;
                }

                var conditionProcessor = new ConditionProcessor();
                return i.Conditions.All(c => conditionProcessor.IsImageConditionSatisfied(c,
                                                                                          width,
                                                                                          height));
            }));
        }
示例#4
0
        public ResponseProfile GetImageMediaProfile(string container, int? width, int? height)
        {
            container = StringHelper.TrimStart((container ?? string.Empty), '.');

            foreach (var i in ResponseProfiles)
            {
                if (i.Type != DlnaProfileType.Photo)
                {
                    continue;
                }

                List<string> containers = i.GetContainers();
                if (containers.Count > 0 && !ListHelper.ContainsIgnoreCase(containers, container))
                {
                    continue;
                }

                ConditionProcessor conditionProcessor = new ConditionProcessor();

                var anyOff = false;
                foreach (ProfileCondition c in i.Conditions)
                {
                    if (!conditionProcessor.IsImageConditionSatisfied(c, width, height))
                    {
                        anyOff = true;
                        break;
                    }
                }

                if (anyOff)
                {
                    continue;
                }

                return i;
            }
            return null;
        }