Exemple #1
0
        /// <summary>
        /// Add a tile layout size that the notification will be displayed on.
        /// </summary>
        /// <param name="size">The size of tile that the notification will be displayed on.</param>
        /// <param name="tileContent">Specialized tile content. Use for special tile template. Default to NULL.</param>
        /// <returns>The current instance of <see cref="TileContentBuilder"/></returns>
        public TileContentBuilder AddTile(TileSize size, ITileBindingContent tileContent = null)
        {
            if (size.HasFlag(TileSize.Small))
            {
                SmallTile         = new TileBinding();
                SmallTile.Content = tileContent ?? new TileBindingContentAdaptive();
            }

            if (size.HasFlag(TileSize.Medium))
            {
                MediumTile         = new TileBinding();
                MediumTile.Content = tileContent ?? new TileBindingContentAdaptive();
            }

            if (size.HasFlag(TileSize.Wide))
            {
                WideTile         = new TileBinding();
                WideTile.Content = tileContent ?? new TileBindingContentAdaptive();
            }

            if (size.HasFlag(TileSize.Large))
            {
                LargeTile         = new TileBinding();
                LargeTile.Content = tileContent ?? new TileBindingContentAdaptive();
            }

            return(this);
        }
        private static TileTemplateNameV3 GetTemplateName(ITileBindingContent bindingContent, TileSize size)
        {
            if (bindingContent == null)
            {
                return(TileSizeToAdaptiveTemplateConverter.Convert(size));
            }

            if (bindingContent is TileBindingContentAdaptive)
            {
                return((bindingContent as TileBindingContentAdaptive).GetTemplateName(size));
            }

            if (bindingContent is TileBindingContentContact)
            {
                return((bindingContent as TileBindingContentContact).GetTemplateName(size));
            }

            if (bindingContent is TileBindingContentIconic)
            {
                return((bindingContent as TileBindingContentIconic).GetTemplateName(size));
            }

            if (bindingContent is TileBindingContentPeople)
            {
                return((bindingContent as TileBindingContentPeople).GetTemplateName(size));
            }

            if (bindingContent is TileBindingContentPhotos)
            {
                return((bindingContent as TileBindingContentPhotos).GetTemplateName(size));
            }

            throw new NotImplementedException("Unknown binding content type: " + bindingContent.GetType());
        }
        private static void PopulateElement(ITileBindingContent bindingContent, Element_TileBinding binding, TileSize size)
        {
            if (bindingContent == null)
            {
                return;
            }

            if (bindingContent is TileBindingContentAdaptive)
            {
                (bindingContent as TileBindingContentAdaptive).PopulateElement(binding, size);
            }
            else if (bindingContent is TileBindingContentContact)
            {
                (bindingContent as TileBindingContentContact).PopulateElement(binding, size);
            }
            else if (bindingContent is TileBindingContentIconic)
            {
                (bindingContent as TileBindingContentIconic).PopulateElement(binding, size);
            }
            else if (bindingContent is TileBindingContentPeople)
            {
                (bindingContent as TileBindingContentPeople).PopulateElement(binding, size);
            }
            else if (bindingContent is TileBindingContentPhotos)
            {
                (bindingContent as TileBindingContentPhotos).PopulateElement(binding, size);
            }
            else
            {
                throw new NotImplementedException("Unknown binding content type: " + bindingContent.GetType());
            }
        }
        private static void PopulateElement(ITileBindingContent bindingContent, Element_TileBinding binding, TileSize size)
        {
            if (bindingContent == null)
                return;

            if (bindingContent is TileBindingContentAdaptive)
                (bindingContent as TileBindingContentAdaptive).PopulateElement(binding, size);

            else if (bindingContent is TileBindingContentContact)
                (bindingContent as TileBindingContentContact).PopulateElement(binding, size);

            else if (bindingContent is TileBindingContentIconic)
                (bindingContent as TileBindingContentIconic).PopulateElement(binding, size);

            else if (bindingContent is TileBindingContentPeople)
                (bindingContent as TileBindingContentPeople).PopulateElement(binding, size);

            else if (bindingContent is TileBindingContentPhotos)
                (bindingContent as TileBindingContentPhotos).PopulateElement(binding, size);

            else
                throw new NotImplementedException("Unknown binding content type: " + bindingContent.GetType());
        }
        private static TileTemplateNameV3 GetTemplateName(ITileBindingContent bindingContent, TileSize size)
        {
            if (bindingContent == null)
                return TileSizeToAdaptiveTemplateConverter.Convert(size);


            if (bindingContent is TileBindingContentAdaptive)
                return (bindingContent as TileBindingContentAdaptive).GetTemplateName(size);

            else if (bindingContent is TileBindingContentContact)
                return (bindingContent as TileBindingContentContact).GetTemplateName(size);

            else if (bindingContent is TileBindingContentIconic)
                return (bindingContent as TileBindingContentIconic).GetTemplateName(size);

            else if (bindingContent is TileBindingContentPeople)
                return (bindingContent as TileBindingContentPeople).GetTemplateName(size);

            else if (bindingContent is TileBindingContentPhotos)
                return (bindingContent as TileBindingContentPhotos).GetTemplateName(size);

            throw new NotImplementedException("Unknown binding content type: " + bindingContent.GetType());
        }