From 21ae5f52e78dcaf5129e239b2d6143576805bd1c Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Wed, 25 Mar 2015 22:53:08 +0100 Subject: [PATCH] start with entities and first endpoint (appMetadata) --- src/OnePeek.Api/ApiBase.cs | 16 ++++++++ src/OnePeek.Api/ApiHttpClient.cs | 4 +- src/OnePeek.Api/AppMetadataEndpoint.cs | 17 +++++++++ src/OnePeek.Api/OnePeek.Api.csproj | 10 +++++ src/OnePeek.Entities/AppMetadata.cs | 39 ++++++++++++++++++++ src/OnePeek.Entities/AppPublisher.cs | 20 ++++++++++ src/OnePeek.Entities/AppRating.cs | 18 +++++++++ src/OnePeek.Entities/OnePeek.Entities.csproj | 5 +++ src/OnePeek.Entities/StoreCulture.cs | 2 + src/OnePeek.Entities/StoreCultureTypeEnum.cs | 10 +++++ src/OnePeek.Entities/StoreTypeEnum.cs | 9 +++++ src/OnePeek.sln | 6 +++ 12 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 src/OnePeek.Api/ApiBase.cs create mode 100644 src/OnePeek.Api/AppMetadataEndpoint.cs create mode 100644 src/OnePeek.Entities/AppMetadata.cs create mode 100644 src/OnePeek.Entities/AppPublisher.cs create mode 100644 src/OnePeek.Entities/AppRating.cs create mode 100644 src/OnePeek.Entities/StoreCultureTypeEnum.cs create mode 100644 src/OnePeek.Entities/StoreTypeEnum.cs diff --git a/src/OnePeek.Api/ApiBase.cs b/src/OnePeek.Api/ApiBase.cs new file mode 100644 index 0000000..4e79e6c --- /dev/null +++ b/src/OnePeek.Api/ApiBase.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OnePeek.Api +{ + public abstract class ApiBase + { + public ApiBase() + { + + } + } +} diff --git a/src/OnePeek.Api/ApiHttpClient.cs b/src/OnePeek.Api/ApiHttpClient.cs index 9c1b13e..28162df 100644 --- a/src/OnePeek.Api/ApiHttpClient.cs +++ b/src/OnePeek.Api/ApiHttpClient.cs @@ -9,7 +9,7 @@ namespace OnePeek.Api /// internal class ApiHttpClient : IDisposable { - internal static ApiHttpClient instance = null; + private static ApiHttpClient instance = null; /// /// Get Singleton of ApiHttpCient @@ -19,7 +19,7 @@ namespace OnePeek.Api /// /// Client for HTTP communication /// - protected readonly HttpClient httpClient; + private readonly HttpClient httpClient; public ApiHttpClient() diff --git a/src/OnePeek.Api/AppMetadataEndpoint.cs b/src/OnePeek.Api/AppMetadataEndpoint.cs new file mode 100644 index 0000000..36a47ba --- /dev/null +++ b/src/OnePeek.Api/AppMetadataEndpoint.cs @@ -0,0 +1,17 @@ +using OnePeek.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OnePeek.Api +{ + public class AppMetadataEndpoint : ApiBase + { + public async Task GetMetadata(StoreType store, StoreCultureType storeCulture) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/OnePeek.Api/OnePeek.Api.csproj b/src/OnePeek.Api/OnePeek.Api.csproj index fb2d9dc..f3206a1 100644 --- a/src/OnePeek.Api/OnePeek.Api.csproj +++ b/src/OnePeek.Api/OnePeek.Api.csproj @@ -41,7 +41,9 @@ + + @@ -50,6 +52,14 @@ OnePeek.Entities + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.dll + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.Extensions.dll + + diff --git a/src/OnePeek.Entities/AppMetadata.cs b/src/OnePeek.Entities/AppMetadata.cs new file mode 100644 index 0000000..04aeb14 --- /dev/null +++ b/src/OnePeek.Entities/AppMetadata.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OnePeek.Entities +{ + public class AppMetadata + { + public DateTime? StoreDataModifiedDate { get; set; } + + public string Name { get; set; } + + public string Urn { get; set; } + + public string Id { get; set; } + + public DateTime ReleaseDate { get; set; } + + public string Summary { get; set; } + + public string UpdateSummary { get; set; } + + public AppVisibilityStatus VisibilityStatus { get; set; } + + public AppPublisher Publisher { get; set; } + + public AppRating Rating { get; set; } + + public bool IsUniversal { get; set; } + } + + public enum AppVisibilityStatus + { + Unknown, + Live + } +} diff --git a/src/OnePeek.Entities/AppPublisher.cs b/src/OnePeek.Entities/AppPublisher.cs new file mode 100644 index 0000000..b05864a --- /dev/null +++ b/src/OnePeek.Entities/AppPublisher.cs @@ -0,0 +1,20 @@ +using System; +using System.Runtime.Serialization; + +namespace OnePeek.Entities +{ + public class AppPublisher + { + [DataMember(Name = "publisherid")] + public string Id { get; set; } + + [DataMember(Name = "publisherguid")] + public string Uid { get; set; } + + [DataMember(Name = "publisher")] + public string Name { get; set; } + + [DataMember(Name = "publisherurl")] + public Uri Url { get; set; } + } +} diff --git a/src/OnePeek.Entities/AppRating.cs b/src/OnePeek.Entities/AppRating.cs new file mode 100644 index 0000000..1e2dfc5 --- /dev/null +++ b/src/OnePeek.Entities/AppRating.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace OnePeek.Entities +{ + public class AppRating + { + [DataMember(Name = "averageuserrating")] + public float AverageRating { get; set; } + + [DataMember(Name = "userratingcount")] + public int RatingCount { get; set; } + } +} diff --git a/src/OnePeek.Entities/OnePeek.Entities.csproj b/src/OnePeek.Entities/OnePeek.Entities.csproj index e719ea4..d243c39 100644 --- a/src/OnePeek.Entities/OnePeek.Entities.csproj +++ b/src/OnePeek.Entities/OnePeek.Entities.csproj @@ -37,8 +37,13 @@ + + + + +