Skip to content

Commit

Permalink
More Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesmontemagno committed Jun 4, 2020
1 parent 68a7ae6 commit babfaad
Show file tree
Hide file tree
Showing 17 changed files with 738 additions and 122 deletions.
1 change: 1 addition & 0 deletions TurnipTracker.Android/MainActivity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ protected override void OnCreate(Bundle savedInstanceState)

base.OnCreate(savedInstanceState);

Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
global::Xamarin.Forms.FormsMaterial.Init(this, savedInstanceState);
Expand Down
1 change: 1 addition & 0 deletions TurnipTracker.Android/Properties/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" />
<application android:label="Island Tracker" android:icon="@mipmap/icon"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.android.vending.BILLING" />
</manifest>
31 changes: 17 additions & 14 deletions TurnipTracker.Android/TurnipTracker.Android.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Plugin.InAppBilling">
<Version>2.0.0</Version>
</PackageReference>
<PackageReference Include="Plugin.StoreReview">
<Version>2.0.0.5</Version>
</PackageReference>
Expand All @@ -95,24 +98,24 @@
<Version>1.1.0</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.Buttons">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.Expander">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfBusyIndicator">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfChart">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfNumericUpDown">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms" Version="4.6.0.800" />
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
<PackageReference Include="Refractored.MvvmHelpers">
<Version>1.6.1-beta</Version>
<Version>1.6.2</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms.PancakeView">
<Version>1.4.2</Version>
Expand All @@ -121,31 +124,31 @@
<Version>4.6.0.800</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfNumericTextBox">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.Core">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfComboBox">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfMaskedEdit">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="MonkeyCache.FileStore">
<Version>1.4.0-beta</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Distribute">
<Version>3.2.1</Version>
<Version>3.2.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Crashes">
<Version>3.2.1</Version>
<Version>3.2.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Analytics">
<Version>3.2.1</Version>
<Version>3.2.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter">
<Version>3.2.1</Version>
<Version>3.2.2</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
Expand Down
22 changes: 22 additions & 0 deletions TurnipTracker.Functions/Model/ProStatusEntity.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.WindowsAzure.Storage.Table;

namespace TurnipTracker.Functions.Model
{
public class ProStatusEntity : TableEntity
{
public ProStatusEntity()
{

}
public ProStatusEntity(string publicKey, string privateKey)
{
PartitionKey = publicKey;
RowKey = privateKey;
}

public string Receipt { get; set; }
}
}
77 changes: 77 additions & 0 deletions TurnipTracker.Functions/Pro/CreateProStatus.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Microsoft.WindowsAzure.Storage.Table;
using TurnipTracker.Functions.Helpers;
using TurnipTracker.Shared;
using System.Web.Http;
using TurnipTracker.Functions.Model;

namespace TurnipTracker.Functions.Pro
{
public static class CreateProStatus
{
[FunctionName(nameof(CreateProStatus))]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
[Table("ProStatus")] CloudTable proTable,
ILogger log)
{
log.LogInformation($"C# HTTP trigger {nameof(CreateProStatus)} function processed a request.");


var privateKey = Utils.ParseToken(req);
if (privateKey == null)
return new UnauthorizedResult();

ProStatus status = null;

try
{
var requestBody = await new StreamReader(req.Body).ReadToEndAsync();
status = JsonConvert.DeserializeObject<ProStatus>(requestBody);
}
catch (Exception ex)
{
log.LogError("Unable to deserialize pro status: " + ex.Message);
}

if (status == null ||
string.IsNullOrWhiteSpace(status.PublicKey) ||
string.IsNullOrWhiteSpace(status.Receipt) ||
!status.IsPro)
{
return new BadRequestErrorMessageResult("Invalid data to process request");
}

var proEntity = new ProStatusEntity(status.PublicKey, privateKey)
{
Receipt = status.Receipt
};

try
{
// Create the InsertOrReplace table operation
var insertOrMergeOperation = TableOperation.InsertOrMerge(proEntity);

// Execute the operation.
var result = await proTable.ExecuteAsync(insertOrMergeOperation);
var insertedPro = result.Result as ProStatusEntity;

}
catch (Exception ex)
{
log.LogError($"Error {nameof(CreateProStatus)} - Error: " + ex.Message);
return new InternalServerErrorResult();
}

return new OkObjectResult("Pro Status Created");
}
}
}
81 changes: 81 additions & 0 deletions TurnipTracker.Functions/Pro/GetProStatus.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Microsoft.WindowsAzure.Storage.Table;
using System.Net.Http;
using System.Net;
using System.Text;
using TurnipTracker.Functions.Helpers;
using TurnipTracker.Shared;
using System.Linq;
using TurnipTracker.Functions.Model;

namespace TurnipTracker.Functions.Pro
{
public static class GetProStatus
{
[FunctionName(nameof(GetProStatus))]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "GetProStatus/{myPublicKey}")] HttpRequest req,
string myPublicKey,
[Table("ProStatus")] CloudTable proTable,
ILogger log)
{
log.LogInformation($"C# HTTP trigger {nameof(GetProStatus)} function processed a request.");


var privateKey = Utils.ParseToken(req);
if (privateKey == null)
return new HttpResponseMessage(HttpStatusCode.Unauthorized)
{
Content = new StringContent("You are not authorized to make this request.")
};

if (string.IsNullOrWhiteSpace(myPublicKey))
{
return new HttpResponseMessage(HttpStatusCode.BadRequest)
{
Content = new StringContent("Invalid data to process request")
};
}



ProStatus status = null;
try
{
var publicKeyFilter = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, myPublicKey);
var privateKeyFilter = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, privateKey);

var rangeQuery = new TableQuery<ProStatusEntity>().Where(
TableQuery.CombineFilters(publicKeyFilter, TableOperators.And, privateKeyFilter));
var entity = (await proTable.ExecuteQuerySegmentedAsync(rangeQuery, null)).FirstOrDefault();


status = new ProStatus
{
IsPro = entity != null,
Receipt = entity?.Receipt ?? string.Empty
};

}
catch (Exception ex)
{
log.LogError($"Error {nameof(GetFriends)} - Error: " + ex.Message);
return new HttpResponseMessage(HttpStatusCode.InternalServerError);
}

var json = JsonConvert.SerializeObject(status);
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent(json, Encoding.UTF8, "application/json")
};
}
}
}
2 changes: 1 addition & 1 deletion TurnipTracker.Functions/Turnips/GetFriends.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public static async Task<HttpResponseMessage> Run(
[Table("User")] CloudTable userTable,
ILogger log)
{
log.LogInformation($"C# HTTP trigger {nameof(SubmitFriendRequest)} function processed a request.");
log.LogInformation($"C# HTTP trigger {nameof(GetFriends)} function processed a request.");


var privateKey = Utils.ParseToken(req);
Expand Down
14 changes: 14 additions & 0 deletions TurnipTracker.Shared/ProStatus.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace TurnipTracker.Shared
{
public class ProStatus
{
public string PublicKey { get; set; }
public bool IsPro { get; set; }

public string Receipt { get;set; }
}
}
31 changes: 17 additions & 14 deletions TurnipTracker.iOS/TurnipTracker.iOS.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,9 @@
<Reference Include="System.Numerics.Vectors" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Plugin.InAppBilling">
<Version>2.0.0</Version>
</PackageReference>
<PackageReference Include="Plugin.StoreReview">
<Version>2.0.0.5</Version>
</PackageReference>
Expand All @@ -160,24 +163,24 @@
<Version>1.1.0</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.Buttons">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.Expander">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfBusyIndicator">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfChart">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfNumericUpDown">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms" Version="4.6.0.800" />
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
<PackageReference Include="Refractored.MvvmHelpers">
<Version>1.6.1-beta</Version>
<Version>1.6.2</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms.PancakeView">
<Version>1.4.2</Version>
Expand All @@ -186,31 +189,31 @@
<Version>4.6.0.800</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfNumericTextBox">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.Core">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfComboBox">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfMaskedEdit">
<Version>18.1.0.53</Version>
<Version>18.1.0.54</Version>
</PackageReference>
<PackageReference Include="MonkeyCache.FileStore">
<Version>1.4.0-beta</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Distribute">
<Version>3.2.1</Version>
<Version>3.2.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Crashes">
<Version>3.2.1</Version>
<Version>3.2.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Analytics">
<Version>3.2.1</Version>
<Version>3.2.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter">
<Version>3.2.1</Version>
<Version>3.2.2</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
Expand Down
Loading

0 comments on commit babfaad

Please sign in to comment.