Пример #1
0
        public void UpdateWithProject(dynamic project)
        {
            Guard.IsNotNull(project, nameof(project));
            Model = project;

            // Set base properties
            Title       = project.appName;
            Description = project.description;
            ReleaseDate = project.createdAt;
            if (project.externalLink != null)
            {
                Website = Link.Create(project.externalLink, ShortTitle + " website");
            }

            if (project.heroImage != null)
            {
                Images.Add(new FileImage
                {
                    Url       = project.heroImage,
                    ImageType = ImageType.Hero
                });
            }

            if (project.appIcon != null)
            {
                Images.Add(new FileImage
                {
                    Url             = project.appIcon,
                    ImageType       = ImageType.Logo,
                    BackgroundColor = project.accentColor,
                });
            }

            // Set UWPC properties
            ProjectId = (int)project.id;
            if (project.downloadLink != null)
            {
                PackageUri = new(project.downloadLink);
            }
            if (project.githubLink != null)
            {
                GithubLink = Link.Create(project.githubLink, ShortTitle + " on GitHub");
            }
            if (project.tags != null)
            {
                foreach (dynamic tag in project.tags)
                {
                    Tags.Add(tag.name);
                }
            }

            Urn = new(UwpCommunityHandler.NAMESPACE_PROJECT, new RawNamespaceSpecificString(ProjectId.ToInvariantString()));
        }