@ -0,0 +1,212 @@ | |||||
#!/usr/bin/env bash | |||||
# http://redsymbol.net/articles/unofficial-bash-strict-mode/ | |||||
set -euo pipefail | |||||
# This script is comparable to the PowerShell script deploy.ps1 but to be used from a Mac bash environment. | |||||
# There are, however, the following few differences/limitations: | |||||
# It assumes docker/container registry login was already performed | |||||
# It assumes K8s was given access to the registry—does not create any K8s secrets | |||||
# It does not support explicit kubectl config file (relies on kubectl config use-context to point kubectl at the right cluster/namespace) | |||||
# It always deploys infrastructure bits (redis, SQL Server etc) | |||||
# The script was tested only with Azure Container Registry (not Docker Hub, although it is expected to work with Docker Hub too) | |||||
# Feel free to submit a PR in order to improve it. | |||||
usage() | |||||
{ | |||||
cat <<END | |||||
deploy.sh: deploys eShopOnContainers application to Kubernetes cluster | |||||
Parameters: | |||||
-r | --registry <container registry> | |||||
Specifies container registry (ACR) to use (required), e.g. myregistry.azurecr.io | |||||
-t | --tag <docker image tag> | |||||
Default: newly created, date-based timestamp, with 1-minute resolution | |||||
-b | --build-solution | |||||
Force solution build before deployment (default: false) | |||||
--skip-image-build | |||||
Do not build images (default is to build all images) | |||||
--skip-image-push | |||||
Do not upload images to the container registry (just run the Kubernetes deployment portion) | |||||
Default is to push images to container registry | |||||
-h | --help | |||||
Displays this help text and exits the script | |||||
It is assumed that the Kubernetes AKS cluster has been granted access to ACR registry. | |||||
For more info see | |||||
https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auth-aks | |||||
WARNING! THE SCRIPT WILL COMPLETELY DESTROY ALL DEPLOYMENTS AND SERVICES VISIBLE | |||||
FROM THE CURRENT CONFIGURATION CONTEXT. | |||||
It is recommended that you create a separate namespace and confguration context | |||||
for the eShopOnContainers application, to isolate it from other applications on the cluster. | |||||
For more information see https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ | |||||
You can use eshop-namespace.yaml file (in the same directory) to create the namespace. | |||||
END | |||||
} | |||||
image_tag=$(date '+%Y%m%d%H%M') | |||||
build_solution='' | |||||
container_registry='' | |||||
build_images='yes' | |||||
push_images='yes' | |||||
while [[ $# -gt 0 ]]; do | |||||
case "$1" in | |||||
-r | --registry ) | |||||
container_registry="$2"; shift 2 ;; | |||||
-t | --tag ) | |||||
image_tag="$2"; shift 2 ;; | |||||
-b | --build-solution ) | |||||
build_solution='yes'; shift ;; | |||||
--skip-image-build ) | |||||
build_images=''; shift ;; | |||||
--skip-image-push ) | |||||
push_images=''; shift ;; | |||||
-h | --help ) | |||||
usage; exit 1 ;; | |||||
*) | |||||
echo "Unknown option $1" | |||||
usage; exit 2 ;; | |||||
esac | |||||
done | |||||
if [[ ! $container_registry ]]; then | |||||
echo 'Container registry must be specified (e.g. myregistry.azurecr.io)' | |||||
echo '' | |||||
usage | |||||
exit 3 | |||||
fi | |||||
if [[ $build_solution ]]; then | |||||
echo "#################### Building eShopOnContainers solution ####################" | |||||
dotnet publish -o obj/Docker/publish ../eShopOnContainers-ServicesAndWebApps.sln | |||||
fi | |||||
export TAG=$image_tag | |||||
if [[ $build_images ]]; then | |||||
echo "#################### Building eShopOnContainers Docker images ####################" | |||||
docker-compose -p .. -f ../docker-compose.yml build | |||||
# Remove temporary images | |||||
docker rmi $(docker images -qf "dangling=true") | |||||
fi | |||||
if [[ $push_images ]]; then | |||||
echo "#################### Pushing images to registry ####################" | |||||
services=(basket.api catalog.api identity.api ordering.api marketing.api payment.api locations.api webmvc webspa webstatus) | |||||
for service in "${services[@]}" | |||||
do | |||||
echo "Pushing image for service $service..." | |||||
docker tag "eshop/$service:$image_tag" "$container_registry/$service:$image_tag" | |||||
docker push "$container_registry/$service:$image_tag" | |||||
done | |||||
fi | |||||
echo "#################### Cleaning up old deployment ####################" | |||||
kubectl delete deployments --all | |||||
kubectl delete services --all | |||||
kubectl delete configmap config-files || true | |||||
kubectl delete configmap urls || true | |||||
kubectl delete configmap externalcfg || true | |||||
echo "#################### Deploying infrastructure components ####################" | |||||
kubectl create configmap config-files --from-file=nginx-conf=nginx.conf | |||||
kubectl label configmap config-files app=eshop | |||||
kubectl create -f sql-data.yaml -f basket-data.yaml -f keystore-data.yaml -f rabbitmq.yaml -f nosql-data.yaml | |||||
echo "#################### Creating application service definitions ####################" | |||||
kubectl create -f services.yaml -f frontend.yaml | |||||
echo "#################### Waiting for Azure to provision external IP ####################" | |||||
ip_regex='([0-9]{1,3}\.){3}[0-9]{1,3}' | |||||
while true; do | |||||
printf "." | |||||
frontendUrl=$(kubectl get svc frontend -o=jsonpath="{.status.loadBalancer.ingress[0].ip}") | |||||
if [[ $frontendUrl =~ $ip_regex ]]; then | |||||
break | |||||
fi | |||||
sleep 5s | |||||
done | |||||
printf "\n" | |||||
externalDns=$frontendUrl | |||||
echo "Using $externalDns as the external DNS/IP of the K8s cluster" | |||||
echo "#################### Creating application configuration ####################" | |||||
# urls configmap | |||||
kubectl create configmap urls \ | |||||
"--from-literal=BasketUrl=http://basket" \ | |||||
"--from-literal=BasketHealthCheckUrl=http://basket/hc" \ | |||||
"--from-literal=CatalogUrl=http://$externalDns/catalog-api" \ | |||||
"--from-literal=CatalogHealthCheckUrl=http://catalog/hc" \ | |||||
"--from-literal=PicBaseUrl=http://$externalDns/catalog-api/api/v1/catalog/items/[0]/pic/" \ | |||||
"--from-literal=Marketing_PicBaseUrl=http://$externalDns/marketing-api/api/v1/campaigns/[0]/pic/" \ | |||||
"--from-literal=IdentityUrl=http://$externalDns/identity" \ | |||||
"--from-literal=IdentityHealthCheckUrl=http://identity/hc" \ | |||||
"--from-literal=OrderingUrl=http://ordering" \ | |||||
"--from-literal=OrderingHealthCheckUrl=http://ordering/hc" \ | |||||
"--from-literal=MvcClientExternalUrl=http://$externalDns/webmvc" \ | |||||
"--from-literal=WebMvcHealthCheckUrl=http://webmvc/hc" \ | |||||
"--from-literal=MvcClientOrderingUrl=http://ordering" \ | |||||
"--from-literal=MvcClientCatalogUrl=http://catalog" \ | |||||
"--from-literal=MvcClientBasketUrl=http://basket" \ | |||||
"--from-literal=MvcClientMarketingUrl=http://marketing" \ | |||||
"--from-literal=MvcClientLocationsUrl=http://locations" \ | |||||
"--from-literal=MarketingHealthCheckUrl=http://marketing/hc" \ | |||||
"--from-literal=WebSpaHealthCheckUrl=http://webspa/hc" \ | |||||
"--from-literal=SpaClientMarketingExternalUrl=http://$externalDns/marketing-api" \ | |||||
"--from-literal=SpaClientOrderingExternalUrl=http://$externalDns/ordering-api" \ | |||||
"--from-literal=SpaClientCatalogExternalUrl=http://$externalDns/catalog-api" \ | |||||
"--from-literal=SpaClientBasketExternalUrl=http://$externalDns/basket-api" \ | |||||
"--from-literal=SpaClientIdentityExternalUrl=http://$externalDns/identity" \ | |||||
"--from-literal=SpaClientLocationsUrl=http://$externalDns/locations-api" \ | |||||
"--from-literal=LocationsHealthCheckUrl=http://locations/hc" \ | |||||
"--from-literal=SpaClientExternalUrl=http://$externalDns" \ | |||||
"--from-literal=LocationApiClient=http://$externalDns/locations-api" \ | |||||
"--from-literal=MarketingApiClient=http://$externalDns/marketing-api" \ | |||||
"--from-literal=BasketApiClient=http://$externalDns/basket-api" \ | |||||
"--from-literal=OrderingApiClient=http://$externalDns/ordering-api" \ | |||||
"--from-literal=PaymentHealthCheckUrl=http://payment/hc" | |||||
kubectl label configmap urls app=eshop | |||||
# externalcfg configmap -- points to local infrastructure components (rabbitmq, SQL Server etc) | |||||
kubectl create -f conf_local.yml | |||||
# Create application pod deployments | |||||
kubectl create -f deployments.yaml | |||||
echo "#################### Deploying application pods ####################" | |||||
# update deployments with the correct image (with tag and/or registry) | |||||
kubectl set image deployments/basket "basket=$container_registry/basket.api:$image_tag" | |||||
kubectl set image deployments/catalog "catalog=$container_registry/catalog.api:$image_tag" | |||||
kubectl set image deployments/identity "identity=$container_registry/identity.api:$image_tag" | |||||
kubectl set image deployments/ordering "ordering=$container_registry/ordering.api:$image_tag" | |||||
kubectl set image deployments/marketing "marketing=$container_registry/marketing.api:$image_tag" | |||||
kubectl set image deployments/locations "locations=$container_registry/locations.api:$image_tag" | |||||
kubectl set image deployments/payment "payment=$container_registry/payment.api:$image_tag" | |||||
kubectl set image deployments/webmvc "webmvc=$container_registry/webmvc:$image_tag" | |||||
kubectl set image deployments/webstatus "webstatus=$container_registry/webstatus:$image_tag" | |||||
kubectl set image deployments/webspa "webspa=$container_registry/webspa:$image_tag" | |||||
kubectl rollout resume deployments/basket | |||||
kubectl rollout resume deployments/catalog | |||||
kubectl rollout resume deployments/identity | |||||
kubectl rollout resume deployments/ordering | |||||
kubectl rollout resume deployments/marketing | |||||
kubectl rollout resume deployments/locations | |||||
kubectl rollout resume deployments/payment | |||||
kubectl rollout resume deployments/webmvc | |||||
kubectl rollout resume deployments/webstatus | |||||
kubectl rollout resume deployments/webspa | |||||
echo "WebSPA is exposed at http://$externalDns, WebMVC at http://$externalDns/webmvc, WebStatus at http://$externalDns/webstatus" | |||||
echo "eShopOnContainers deployment is DONE" |
@ -0,0 +1,5 @@ | |||||
apiVersion: v1 | |||||
kind: Namespace | |||||
metadata: | |||||
name: eshop | |||||
@ -1,564 +0,0 @@ | |||||
| |||||
Microsoft Visual Studio Solution File, Format Version 12.00 | |||||
# Visual Studio 14 | |||||
VisualStudioVersion = 14.0.25420.1 | |||||
MinimumVisualStudioVersion = 10.0.40219.1 | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Droid", "eShopOnContainers\eShopOnContainers.Droid\eShopOnContainers.Droid.csproj", "{62DBB163-9CA9-4818-B48B-13233DF37C24}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.iOS", "eShopOnContainers\eShopOnContainers.iOS\eShopOnContainers.iOS.csproj", "{6EEB23DC-7063-4444-9AF8-90DF24F549C0}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{65116D1C-145B-4693-ABDA-F0FB6F425191}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Windows", "eShopOnContainers\eShopOnContainers.Windows\eShopOnContainers.Windows.csproj", "{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}" | |||||
EndProject | |||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared Code", "Shared Code", "{65D002E7-E869-491C-ABA8-9650CEAF677A}" | |||||
EndProject | |||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{8F848898-6B21-4905-AE2E-B3ABDEDA1963}" | |||||
EndProject | |||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{71D6317D-AF0F-46FE-91DA-B0556911FC4B}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UnitTests", "eShopOnContainers\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj", "{F7B6A162-BC4D-4924-B16A-713F9B0344E7}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Droid", "eShopOnContainers\eShopOnContainers.TestRunner.Droid\eShopOnContainers.TestRunner.Droid.csproj", "{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.iOS", "eShopOnContainers\eShopOnContainers.TestRunner.iOS\eShopOnContainers.TestRunner.iOS.csproj", "{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Windows", "eShopOnContainers\eShopOnContainers.TestRunner.Windows\eShopOnContainers.TestRunner.Windows.csproj", "{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UITests", "eShopOnContainers\eShopOnContainers.UITests\eShopOnContainers.UITests.csproj", "{E3B18084-842C-4B80-8E4A-A7E588EC3137}" | |||||
EndProject | |||||
Global | |||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU | |||||
Ad-Hoc|ARM = Ad-Hoc|ARM | |||||
Ad-Hoc|iPhone = Ad-Hoc|iPhone | |||||
Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator | |||||
Ad-Hoc|x64 = Ad-Hoc|x64 | |||||
Ad-Hoc|x86 = Ad-Hoc|x86 | |||||
AppStore|Any CPU = AppStore|Any CPU | |||||
AppStore|ARM = AppStore|ARM | |||||
AppStore|iPhone = AppStore|iPhone | |||||
AppStore|iPhoneSimulator = AppStore|iPhoneSimulator | |||||
AppStore|x64 = AppStore|x64 | |||||
AppStore|x86 = AppStore|x86 | |||||
Debug|Any CPU = Debug|Any CPU | |||||
Debug|ARM = Debug|ARM | |||||
Debug|iPhone = Debug|iPhone | |||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator | |||||
Debug|x64 = Debug|x64 | |||||
Debug|x86 = Debug|x86 | |||||
Release|Any CPU = Release|Any CPU | |||||
Release|ARM = Release|ARM | |||||
Release|iPhone = Release|iPhone | |||||
Release|iPhoneSimulator = Release|iPhoneSimulator | |||||
Release|x64 = Release|x64 | |||||
Release|x86 = Release|x86 | |||||
EndGlobalSection | |||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|ARM.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x64.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x86.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|Any CPU.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|Any CPU.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|Any CPU.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|ARM.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|ARM.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|ARM.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhone.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhone.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhone.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x64.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x64.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x64.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x86.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x86.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x86.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|Any CPU.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|ARM.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhone.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhone.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhone.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x64.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x86.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|Any CPU.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|ARM.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|ARM.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhone.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhone.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhone.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x64.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x64.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x86.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x86.Deploy.0 = Release|Any CPU | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|ARM.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhone.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhone.Build.0 = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|x64.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|x86.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|Any CPU.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|Any CPU.Build.0 = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|ARM.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhone.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhone.Build.0 = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x64.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x86.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|Any CPU.ActiveCfg = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|Any CPU.Build.0 = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|ARM.ActiveCfg = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.ActiveCfg = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.Build.0 = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|x64.ActiveCfg = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|x86.ActiveCfg = Release|iPhone | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|ARM.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|x64.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|x86.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|Any CPU.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|Any CPU.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|ARM.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|ARM.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|iPhone.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|iPhone.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|x64.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|x64.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|x86.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|x86.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|iPhone.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|iPhone.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|ARM.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|iPhone.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|iPhone.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|x64.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|x86.Build.0 = Release|Any CPU | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|Any CPU.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|ARM.ActiveCfg = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|ARM.Build.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|ARM.Deploy.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhone.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhone.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhone.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x64.ActiveCfg = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x64.Build.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x64.Deploy.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x86.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x86.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x86.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|Any CPU.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|Any CPU.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|Any CPU.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|ARM.ActiveCfg = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|ARM.Build.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|ARM.Deploy.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhone.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhone.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhone.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhoneSimulator.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x64.ActiveCfg = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x64.Build.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x64.Deploy.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x86.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x86.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x86.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|Any CPU.ActiveCfg = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|Any CPU.Build.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|Any CPU.Deploy.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|ARM.ActiveCfg = Debug|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|ARM.Build.0 = Debug|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|ARM.Deploy.0 = Debug|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhone.ActiveCfg = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhone.Build.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhone.Deploy.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhoneSimulator.Build.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhoneSimulator.Deploy.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x64.ActiveCfg = Debug|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x64.Build.0 = Debug|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x64.Deploy.0 = Debug|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.ActiveCfg = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Build.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Deploy.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|Any CPU.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|Any CPU.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|Any CPU.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.ActiveCfg = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Build.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Deploy.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|iPhone.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|iPhoneSimulator.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x64.ActiveCfg = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x64.Build.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x64.Deploy.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x86.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x86.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x86.Deploy.0 = Release|x86 | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|ARM.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|x64.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Ad-Hoc|x86.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|Any CPU.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|Any CPU.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|ARM.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|ARM.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|iPhone.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|iPhone.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|x64.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|x64.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|x86.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.AppStore|x86.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|iPhone.ActiveCfg = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|iPhone.Build.0 = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|ARM.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|iPhone.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|iPhone.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|x64.Build.0 = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7}.Release|x86.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|ARM.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x64.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x86.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|Any CPU.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|Any CPU.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|Any CPU.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|ARM.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|ARM.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|ARM.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhone.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhone.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhone.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x64.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x64.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x64.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x86.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x86.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x86.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|ARM.Deploy.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhone.ActiveCfg = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhone.Build.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhone.Deploy.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x64.Deploy.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x86.Deploy.0 = Debug|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|Any CPU.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|ARM.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|ARM.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhone.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhone.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhone.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x64.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x64.Deploy.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x86.Build.0 = Release|Any CPU | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x86.Deploy.0 = Release|Any CPU | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|ARM.ActiveCfg = AppStore|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|iPhone.ActiveCfg = AppStore|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|iPhone.Build.0 = AppStore|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|x64.ActiveCfg = AppStore|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|x86.ActiveCfg = AppStore|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|Any CPU.ActiveCfg = Debug|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|Any CPU.Build.0 = Debug|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|ARM.ActiveCfg = Debug|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|iPhone.ActiveCfg = Debug|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|iPhone.Build.0 = Debug|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|x64.ActiveCfg = Debug|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|x86.ActiveCfg = Debug|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|Any CPU.ActiveCfg = Release|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|Any CPU.Build.0 = Release|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|ARM.ActiveCfg = Release|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhone.ActiveCfg = Release|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhone.Build.0 = Release|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|x64.ActiveCfg = Release|iPhone | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|x86.ActiveCfg = Release|iPhone | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|Any CPU.ActiveCfg = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|Any CPU.Build.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|Any CPU.Deploy.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|ARM.ActiveCfg = Release|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|ARM.Build.0 = Release|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|ARM.Deploy.0 = Release|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|iPhone.ActiveCfg = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|iPhone.Build.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|iPhone.Deploy.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|x64.ActiveCfg = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|x64.Build.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|x64.Deploy.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|x86.ActiveCfg = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|x86.Build.0 = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Ad-Hoc|x86.Deploy.0 = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|Any CPU.ActiveCfg = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|Any CPU.Build.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|Any CPU.Deploy.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|ARM.ActiveCfg = Release|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|ARM.Build.0 = Release|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|ARM.Deploy.0 = Release|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|iPhone.ActiveCfg = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|iPhone.Build.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|iPhone.Deploy.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|iPhoneSimulator.ActiveCfg = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|iPhoneSimulator.Build.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|iPhoneSimulator.Deploy.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|x64.ActiveCfg = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|x64.Build.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|x64.Deploy.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|x86.ActiveCfg = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|x86.Build.0 = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.AppStore|x86.Deploy.0 = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|Any CPU.ActiveCfg = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|Any CPU.Build.0 = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|Any CPU.Deploy.0 = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|ARM.ActiveCfg = Debug|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|ARM.Build.0 = Debug|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|ARM.Deploy.0 = Debug|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|iPhone.ActiveCfg = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|iPhone.Build.0 = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|iPhone.Deploy.0 = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|iPhoneSimulator.Build.0 = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|iPhoneSimulator.Deploy.0 = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x64.ActiveCfg = Debug|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x64.Build.0 = Debug|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x64.Deploy.0 = Debug|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x86.ActiveCfg = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x86.Build.0 = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x86.Deploy.0 = Debug|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|Any CPU.ActiveCfg = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|Any CPU.Build.0 = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.ActiveCfg = Release|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.Build.0 = Release|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.Deploy.0 = Release|ARM | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|iPhone.ActiveCfg = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|iPhoneSimulator.ActiveCfg = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|x64.ActiveCfg = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|x64.Build.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|x64.Deploy.0 = Release|x64 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|x86.ActiveCfg = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|x86.Build.0 = Release|x86 | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|x86.Deploy.0 = Release|x86 | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|ARM.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|x64.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|x86.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|Any CPU.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|Any CPU.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|ARM.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|ARM.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|iPhone.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|iPhone.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|x64.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|x64.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|x86.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|x86.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|iPhone.ActiveCfg = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|iPhone.Build.0 = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|ARM.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|iPhone.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|iPhone.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|x64.Build.0 = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|x86.Build.0 = Release|Any CPU | |||||
EndGlobalSection | |||||
GlobalSection(SolutionProperties) = preSolution | |||||
HideSolutionNode = FALSE | |||||
EndGlobalSection | |||||
GlobalSection(NestedProjects) = preSolution | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24} = {8F848898-6B21-4905-AE2E-B3ABDEDA1963} | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0} = {8F848898-6B21-4905-AE2E-B3ABDEDA1963} | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191} = {65D002E7-E869-491C-ABA8-9650CEAF677A} | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B} = {8F848898-6B21-4905-AE2E-B3ABDEDA1963} | |||||
{F7B6A162-BC4D-4924-B16A-713F9B0344E7} = {71D6317D-AF0F-46FE-91DA-B0556911FC4B} | |||||
{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1} = {71D6317D-AF0F-46FE-91DA-B0556911FC4B} | |||||
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3} = {71D6317D-AF0F-46FE-91DA-B0556911FC4B} | |||||
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F} = {71D6317D-AF0F-46FE-91DA-B0556911FC4B} | |||||
{E3B18084-842C-4B80-8E4A-A7E588EC3137} = {71D6317D-AF0F-46FE-91DA-B0556911FC4B} | |||||
EndGlobalSection | |||||
EndGlobal |
@ -1,275 +0,0 @@ | |||||
| |||||
Microsoft Visual Studio Solution File, Format Version 12.00 | |||||
# Visual Studio 14 | |||||
VisualStudioVersion = 14.0.25420.1 | |||||
MinimumVisualStudioVersion = 10.0.40219.1 | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Droid", "eShopOnContainers\eShopOnContainers.Droid\eShopOnContainers.Droid.csproj", "{62DBB163-9CA9-4818-B48B-13233DF37C24}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.iOS", "eShopOnContainers\eShopOnContainers.iOS\eShopOnContainers.iOS.csproj", "{6EEB23DC-7063-4444-9AF8-90DF24F549C0}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{65116D1C-145B-4693-ABDA-F0FB6F425191}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Windows", "eShopOnContainers\eShopOnContainers.Windows\eShopOnContainers.Windows.csproj", "{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}" | |||||
EndProject | |||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared Code", "Shared Code", "{65D002E7-E869-491C-ABA8-9650CEAF677A}" | |||||
EndProject | |||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{8F848898-6B21-4905-AE2E-B3ABDEDA1963}" | |||||
EndProject | |||||
Global | |||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU | |||||
Ad-Hoc|ARM = Ad-Hoc|ARM | |||||
Ad-Hoc|iPhone = Ad-Hoc|iPhone | |||||
Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator | |||||
Ad-Hoc|x64 = Ad-Hoc|x64 | |||||
Ad-Hoc|x86 = Ad-Hoc|x86 | |||||
AppStore|Any CPU = AppStore|Any CPU | |||||
AppStore|ARM = AppStore|ARM | |||||
AppStore|iPhone = AppStore|iPhone | |||||
AppStore|iPhoneSimulator = AppStore|iPhoneSimulator | |||||
AppStore|x64 = AppStore|x64 | |||||
AppStore|x86 = AppStore|x86 | |||||
Debug|Any CPU = Debug|Any CPU | |||||
Debug|ARM = Debug|ARM | |||||
Debug|iPhone = Debug|iPhone | |||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator | |||||
Debug|x64 = Debug|x64 | |||||
Debug|x86 = Debug|x86 | |||||
Release|Any CPU = Release|Any CPU | |||||
Release|ARM = Release|ARM | |||||
Release|iPhone = Release|iPhone | |||||
Release|iPhoneSimulator = Release|iPhoneSimulator | |||||
Release|x64 = Release|x64 | |||||
Release|x86 = Release|x86 | |||||
EndGlobalSection | |||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|ARM.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x64.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x86.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|Any CPU.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|Any CPU.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|Any CPU.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|ARM.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|ARM.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|ARM.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhone.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhone.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhone.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x64.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x64.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x64.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x86.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x86.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x86.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|Any CPU.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|ARM.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhone.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhone.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhone.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x64.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x86.Deploy.0 = Debug|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|Any CPU.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|ARM.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|ARM.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhone.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhone.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhone.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x64.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x64.Deploy.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x86.Build.0 = Release|Any CPU | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x86.Deploy.0 = Release|Any CPU | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|ARM.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhone.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhone.Build.0 = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|x64.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|x86.ActiveCfg = AppStore|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|Any CPU.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|Any CPU.Build.0 = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|ARM.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhone.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhone.Build.0 = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x64.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x86.ActiveCfg = Debug|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|Any CPU.ActiveCfg = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|ARM.ActiveCfg = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.ActiveCfg = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.Build.0 = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|x64.ActiveCfg = Release|iPhone | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|x86.ActiveCfg = Release|iPhone | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|ARM.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|x64.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Ad-Hoc|x86.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|Any CPU.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|Any CPU.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|ARM.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|ARM.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|iPhone.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|iPhone.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|x64.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|x64.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|x86.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.AppStore|x86.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|iPhone.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|iPhone.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|ARM.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|iPhone.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|iPhone.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|iPhoneSimulator.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|x64.Build.0 = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191}.Release|x86.Build.0 = Release|Any CPU | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|Any CPU.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|ARM.ActiveCfg = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|ARM.Build.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|ARM.Deploy.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhone.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhone.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhone.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x64.ActiveCfg = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x64.Build.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x64.Deploy.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x86.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x86.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x86.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|Any CPU.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|Any CPU.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|Any CPU.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|ARM.ActiveCfg = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|ARM.Build.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|ARM.Deploy.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhone.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhone.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhone.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhoneSimulator.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x64.ActiveCfg = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x64.Build.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x64.Deploy.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x86.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x86.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x86.Deploy.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|Any CPU.ActiveCfg = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|Any CPU.Build.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|Any CPU.Deploy.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|ARM.ActiveCfg = Debug|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|ARM.Build.0 = Debug|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|ARM.Deploy.0 = Debug|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhone.ActiveCfg = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhone.Build.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhone.Deploy.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhoneSimulator.Build.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhoneSimulator.Deploy.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x64.ActiveCfg = Debug|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x64.Build.0 = Debug|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x64.Deploy.0 = Debug|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.ActiveCfg = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Build.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Deploy.0 = Debug|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|Any CPU.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.ActiveCfg = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Build.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Deploy.0 = Release|ARM | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|iPhone.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|iPhoneSimulator.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x64.ActiveCfg = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x64.Build.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x64.Deploy.0 = Release|x64 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x86.ActiveCfg = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x86.Build.0 = Release|x86 | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x86.Deploy.0 = Release|x86 | |||||
EndGlobalSection | |||||
GlobalSection(SolutionProperties) = preSolution | |||||
HideSolutionNode = FALSE | |||||
EndGlobalSection | |||||
GlobalSection(NestedProjects) = preSolution | |||||
{62DBB163-9CA9-4818-B48B-13233DF37C24} = {8F848898-6B21-4905-AE2E-B3ABDEDA1963} | |||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0} = {8F848898-6B21-4905-AE2E-B3ABDEDA1963} | |||||
{65116D1C-145B-4693-ABDA-F0FB6F425191} = {65D002E7-E869-491C-ABA8-9650CEAF677A} | |||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B} = {8F848898-6B21-4905-AE2E-B3ABDEDA1963} | |||||
EndGlobalSection | |||||
EndGlobal |
@ -1,90 +0,0 @@ | |||||
using Plugin.Settings; | |||||
using Plugin.Settings.Abstractions; | |||||
namespace eShopOnContainers.Core.Helpers | |||||
{ | |||||
/// <summary> | |||||
/// This is the Settings static class that can be used in your Core solution or in any | |||||
/// of your client applications. All settings are laid out the same exact way with getters | |||||
/// and setters. | |||||
/// </summary> | |||||
public static class Settings | |||||
{ | |||||
private static ISettings AppSettings | |||||
{ | |||||
get | |||||
{ | |||||
return CrossSettings.Current; | |||||
} | |||||
} | |||||
#region Setting Constants | |||||
private const string AccessToken = "access_token"; | |||||
private const string IdToken = "id_token"; | |||||
private const string IdUseMocks = "use_mocks"; | |||||
private const string IdUrlBase = "url_base"; | |||||
private const string IdUseFakeLocation = "use_fake_location"; | |||||
private const string IdLatitude = "latitude"; | |||||
private const string IdLongitude = "longitude"; | |||||
private const string IdAllowGpsLocation = "allow_gps_location"; | |||||
private static readonly string AccessTokenDefault = string.Empty; | |||||
private static readonly string IdTokenDefault = string.Empty; | |||||
private static readonly bool UseMocksDefault = true; | |||||
private static readonly bool UseFakeLocationDefault = false; | |||||
private static readonly bool AllowGpsLocationDefault = false; | |||||
private static readonly double FakeLatitudeDefault = 47.604610d; | |||||
private static readonly double FakeLongitudeDefault = -122.315752d; | |||||
private static readonly string UrlBaseDefault = GlobalSetting.Instance.BaseEndpoint; | |||||
#endregion | |||||
public static string AuthAccessToken | |||||
{ | |||||
get => AppSettings.GetValueOrDefault<string>(AccessToken, AccessTokenDefault); | |||||
set => AppSettings.AddOrUpdateValue<string>(AccessToken, value); | |||||
} | |||||
public static string AuthIdToken | |||||
{ | |||||
get => AppSettings.GetValueOrDefault<string>(IdToken, IdTokenDefault); | |||||
set => AppSettings.AddOrUpdateValue<string>(IdToken, value); | |||||
} | |||||
public static bool UseMocks | |||||
{ | |||||
get => AppSettings.GetValueOrDefault<bool>(IdUseMocks, UseMocksDefault); | |||||
set => AppSettings.AddOrUpdateValue<bool>(IdUseMocks, value); | |||||
} | |||||
public static string UrlBase | |||||
{ | |||||
get => AppSettings.GetValueOrDefault<string>(IdUrlBase, UrlBaseDefault); | |||||
set => AppSettings.AddOrUpdateValue<string>(IdUrlBase, value); | |||||
} | |||||
public static bool UseFakeLocation | |||||
{ | |||||
get => AppSettings.GetValueOrDefault<bool>(IdUseFakeLocation, UseFakeLocationDefault); | |||||
set => AppSettings.AddOrUpdateValue<bool>(IdUseFakeLocation, value); | |||||
} | |||||
public static string Latitude | |||||
{ | |||||
get => AppSettings.GetValueOrDefault<string>(IdLatitude, FakeLatitudeDefault.ToString()); | |||||
set => AppSettings.AddOrUpdateValue<string>(IdLatitude, value); | |||||
} | |||||
public static string Longitude | |||||
{ | |||||
get => AppSettings.GetValueOrDefault<string>(IdLongitude, FakeLongitudeDefault.ToString()); | |||||
set => AppSettings.AddOrUpdateValue<string>(IdLongitude, value); | |||||
} | |||||
public static bool AllowGpsLocation | |||||
{ | |||||
get => AppSettings.GetValueOrDefault<bool>(IdAllowGpsLocation, AllowGpsLocationDefault); | |||||
set => AppSettings.AddOrUpdateValue<bool>(IdAllowGpsLocation, value); | |||||
} | |||||
} | |||||
} |
@ -1,30 +0,0 @@ | |||||
using System.Resources; | |||||
using System.Reflection; | |||||
using System.Runtime.CompilerServices; | |||||
using System.Runtime.InteropServices; | |||||
// General Information about an assembly is controlled through the following | |||||
// set of attributes. Change these attribute values to modify the information | |||||
// associated with an assembly. | |||||
[assembly: AssemblyTitle("eShopOnContainers.Core")] | |||||
[assembly: AssemblyDescription("")] | |||||
[assembly: AssemblyConfiguration("")] | |||||
[assembly: AssemblyCompany("")] | |||||
[assembly: AssemblyProduct("eShopOnContainers.Core")] | |||||
[assembly: AssemblyCopyright("Copyright © 2014")] | |||||
[assembly: AssemblyTrademark("")] | |||||
[assembly: AssemblyCulture("")] | |||||
[assembly: NeutralResourcesLanguage("en")] | |||||
// Version information for an assembly consists of the following four values: | |||||
// | |||||
// Major Version | |||||
// Minor Version | |||||
// Build Number | |||||
// Revision | |||||
// | |||||
// You can specify all the values or you can default the Build and Revision Numbers | |||||
// by using the '*' as shown below: | |||||
// [assembly: AssemblyVersion("1.0.*")] | |||||
[assembly: AssemblyVersion("1.0.0.0")] | |||||
[assembly: AssemblyFileVersion("1.0.0.0")] |
@ -0,0 +1,10 @@ | |||||
namespace eShopOnContainers.Core.Services.Dependency | |||||
{ | |||||
public class DependencyService : IDependencyService | |||||
{ | |||||
public T Get<T>() where T : class | |||||
{ | |||||
return Xamarin.Forms.DependencyService.Get<T>(); | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,7 @@ | |||||
namespace eShopOnContainers.Core.Services.Dependency | |||||
{ | |||||
public interface IDependencyService | |||||
{ | |||||
T Get<T>() where T : class; | |||||
} | |||||
} |
@ -0,0 +1,14 @@ | |||||
using System.Collections.Generic; | |||||
using eShopOnContainers.Core.Models.Basket; | |||||
using eShopOnContainers.Core.Models.Catalog; | |||||
using eShopOnContainers.Core.Models.Marketing; | |||||
namespace eShopOnContainers.Core.Services.FixUri | |||||
{ | |||||
public interface IFixUriService | |||||
{ | |||||
void FixCatalogItemPictureUri(IEnumerable<CatalogItem> catalogItems); | |||||
void FixBasketItemPictureUri(IEnumerable<BasketItem> basketItems); | |||||
void FixCampaignItemPictureUri(IEnumerable<CampaignItem> campaignItems); | |||||
} | |||||
} |
@ -0,0 +1,23 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Net; | |||||
namespace eShopOnContainers.Core.Services.Identity | |||||
{ | |||||
public class AuthorizeRequest | |||||
{ | |||||
readonly Uri _authorizeEndpoint; | |||||
public AuthorizeRequest(string authorizeEndpoint) | |||||
{ | |||||
_authorizeEndpoint = new Uri(authorizeEndpoint); | |||||
} | |||||
public string Create(IDictionary<string, string> values) | |||||
{ | |||||
var queryString = string.Join("&", values.Select(kvp => string.Format("{0}={1}", WebUtility.UrlEncode(kvp.Key), WebUtility.UrlEncode(kvp.Value))).ToArray()); | |||||
return string.Format("{0}?{1}", _authorizeEndpoint.AbsoluteUri, queryString); | |||||
} | |||||
} | |||||
} |
@ -1,10 +1,9 @@ | |||||
namespace eShopOnContainers.Core.Services.Location | |||||
{ | |||||
using System.Threading.Tasks; | |||||
using Models.Location; | |||||
using System.Threading.Tasks; | |||||
namespace eShopOnContainers.Core.Services.Location | |||||
{ | |||||
public interface ILocationService | public interface ILocationService | ||||
{ | { | ||||
Task UpdateUserLocation(Location newLocReq, string token); | |||||
Task UpdateUserLocation(eShopOnContainers.Core.Models.Location.Location newLocReq, string token); | |||||
} | } | ||||
} | } |
@ -0,0 +1,14 @@ | |||||
namespace eShopOnContainers.Core.Services.Settings | |||||
{ | |||||
public interface ISettingsService | |||||
{ | |||||
string AuthAccessToken { get; set; } | |||||
string AuthIdToken { get; set; } | |||||
bool UseMocks { get; set; } | |||||
string UrlBase { get; set; } | |||||
bool UseFakeLocation { get; set; } | |||||
string Latitude { get; set; } | |||||
string Longitude { get; set; } | |||||
bool AllowGpsLocation { get; set; } | |||||
} | |||||
} |
@ -0,0 +1,13 @@ | |||||
namespace eShopOnContainers.Core.Services.Settings | |||||
{ | |||||
public interface ISettingsServiceImplementation | |||||
{ | |||||
bool GetValueOrDefault(string key, bool defaultValue); | |||||
string GetValueOrDefault(string key, string defaultValue); | |||||
bool AddOrUpdateValue(string key, bool value); | |||||
bool AddOrUpdateValue(string key, string value); | |||||
void Remove(string key); | |||||
} | |||||
} |
@ -0,0 +1,88 @@ | |||||
using eShopOnContainers.Core.Services.Dependency; | |||||
namespace eShopOnContainers.Core.Services.Settings | |||||
{ | |||||
public class SettingsService : ISettingsService | |||||
{ | |||||
private readonly ISettingsServiceImplementation _settingsService; | |||||
ISettingsServiceImplementation AppSettings | |||||
{ | |||||
get { return _settingsService; } | |||||
} | |||||
public SettingsService(IDependencyService dependencyService) | |||||
{ | |||||
_settingsService = dependencyService.Get<ISettingsServiceImplementation>(); | |||||
} | |||||
#region Setting Constants | |||||
private const string AccessToken = "access_token"; | |||||
private const string IdToken = "id_token"; | |||||
private const string IdUseMocks = "use_mocks"; | |||||
private const string IdUrlBase = "url_base"; | |||||
private const string IdUseFakeLocation = "use_fake_location"; | |||||
private const string IdLatitude = "latitude"; | |||||
private const string IdLongitude = "longitude"; | |||||
private const string IdAllowGpsLocation = "allow_gps_location"; | |||||
private readonly string AccessTokenDefault = string.Empty; | |||||
private readonly string IdTokenDefault = string.Empty; | |||||
private readonly bool UseMocksDefault = true; | |||||
private readonly bool UseFakeLocationDefault = false; | |||||
private readonly bool AllowGpsLocationDefault = false; | |||||
private readonly double FakeLatitudeDefault = 47.604610d; | |||||
private readonly double FakeLongitudeDefault = -122.315752d; | |||||
private readonly string UrlBaseDefault = GlobalSetting.Instance.BaseEndpoint; | |||||
#endregion | |||||
public string AuthAccessToken | |||||
{ | |||||
get => AppSettings.GetValueOrDefault(AccessToken, AccessTokenDefault); | |||||
set => AppSettings.AddOrUpdateValue(AccessToken, value); | |||||
} | |||||
public string AuthIdToken | |||||
{ | |||||
get => AppSettings.GetValueOrDefault(IdToken, IdTokenDefault); | |||||
set => AppSettings.AddOrUpdateValue(IdToken, value); | |||||
} | |||||
public bool UseMocks | |||||
{ | |||||
get => AppSettings.GetValueOrDefault(IdUseMocks, UseMocksDefault); | |||||
set => AppSettings.AddOrUpdateValue(IdUseMocks, value); | |||||
} | |||||
public string UrlBase | |||||
{ | |||||
get => AppSettings.GetValueOrDefault(IdUrlBase, UrlBaseDefault); | |||||
set => AppSettings.AddOrUpdateValue(IdUrlBase, value); | |||||
} | |||||
public bool UseFakeLocation | |||||
{ | |||||
get => AppSettings.GetValueOrDefault(IdUseFakeLocation, UseFakeLocationDefault); | |||||
set => AppSettings.AddOrUpdateValue(IdUseFakeLocation, value); | |||||
} | |||||
public string Latitude | |||||
{ | |||||
get => AppSettings.GetValueOrDefault(IdLatitude, FakeLatitudeDefault.ToString()); | |||||
set => AppSettings.AddOrUpdateValue(IdLatitude, value); | |||||
} | |||||
public string Longitude | |||||
{ | |||||
get => AppSettings.GetValueOrDefault(IdLongitude, FakeLongitudeDefault.ToString()); | |||||
set => AppSettings.AddOrUpdateValue(IdLongitude, value); | |||||
} | |||||
public bool AllowGpsLocation | |||||
{ | |||||
get => AppSettings.GetValueOrDefault(IdAllowGpsLocation, AllowGpsLocationDefault); | |||||
set => AppSettings.AddOrUpdateValue(IdAllowGpsLocation, value); | |||||
} | |||||
} | |||||
} |
@ -1,117 +1,131 @@ | |||||
using Autofac; | |||||
using eShopOnContainers.Services; | |||||
using System; | |||||
using System.Globalization; | |||||
using System.Reflection; | |||||
using eShopOnContainers.Core.Services.Basket; | |||||
using eShopOnContainers.Core.Services.Catalog; | using eShopOnContainers.Core.Services.Catalog; | ||||
using eShopOnContainers.Core.Services.OpenUrl; | |||||
using eShopOnContainers.Core.Services.RequestProvider; | |||||
using eShopOnContainers.Core.Services.Basket; | |||||
using eShopOnContainers.Core.Services.Dependency; | |||||
using eShopOnContainers.Core.Services.FixUri; | |||||
using eShopOnContainers.Core.Services.Identity; | using eShopOnContainers.Core.Services.Identity; | ||||
using eShopOnContainers.Core.Services.Location; | |||||
using eShopOnContainers.Core.Services.Marketing; | |||||
using eShopOnContainers.Core.Services.OpenUrl; | |||||
using eShopOnContainers.Core.Services.Order; | using eShopOnContainers.Core.Services.Order; | ||||
using eShopOnContainers.Core.Services.RequestProvider; | |||||
using eShopOnContainers.Core.Services.Settings; | |||||
using eShopOnContainers.Core.Services.User; | using eShopOnContainers.Core.Services.User; | ||||
using eShopOnContainers.Services; | |||||
using System; | |||||
using System.Globalization; | |||||
using System.Reflection; | |||||
using TinyIoC; | |||||
using Xamarin.Forms; | using Xamarin.Forms; | ||||
using eShopOnContainers.Core.Services.Location; | |||||
using eShopOnContainers.Core.Services.Marketing; | |||||
namespace eShopOnContainers.Core.ViewModels.Base | namespace eShopOnContainers.Core.ViewModels.Base | ||||
{ | { | ||||
public static class ViewModelLocator | public static class ViewModelLocator | ||||
{ | { | ||||
private static IContainer _container; | |||||
public static readonly BindableProperty AutoWireViewModelProperty = | |||||
BindableProperty.CreateAttached("AutoWireViewModel", typeof(bool), typeof(ViewModelLocator), default(bool), propertyChanged: OnAutoWireViewModelChanged); | |||||
public static bool GetAutoWireViewModel(BindableObject bindable) | |||||
{ | |||||
return (bool)bindable.GetValue(ViewModelLocator.AutoWireViewModelProperty); | |||||
} | |||||
public static void SetAutoWireViewModel(BindableObject bindable, bool value) | |||||
{ | |||||
bindable.SetValue(ViewModelLocator.AutoWireViewModelProperty, value); | |||||
} | |||||
public static bool UseMockService { get; set; } | |||||
public static void RegisterDependencies(bool useMockServices) | |||||
{ | |||||
var builder = new ContainerBuilder(); | |||||
// View models | |||||
builder.RegisterType<BasketViewModel>(); | |||||
builder.RegisterType<CatalogViewModel>(); | |||||
builder.RegisterType<CheckoutViewModel>(); | |||||
builder.RegisterType<LoginViewModel>(); | |||||
builder.RegisterType<MainViewModel>(); | |||||
builder.RegisterType<OrderDetailViewModel>(); | |||||
builder.RegisterType<ProfileViewModel>(); | |||||
builder.RegisterType<SettingsViewModel>(); | |||||
builder.RegisterType<CampaignViewModel>(); | |||||
builder.RegisterType<CampaignDetailsViewModel>(); | |||||
private static TinyIoCContainer _container; | |||||
public static readonly BindableProperty AutoWireViewModelProperty = | |||||
BindableProperty.CreateAttached("AutoWireViewModel", typeof(bool), typeof(ViewModelLocator), default(bool), propertyChanged: OnAutoWireViewModelChanged); | |||||
public static bool GetAutoWireViewModel(BindableObject bindable) | |||||
{ | |||||
return (bool)bindable.GetValue(ViewModelLocator.AutoWireViewModelProperty); | |||||
} | |||||
public static void SetAutoWireViewModel(BindableObject bindable, bool value) | |||||
{ | |||||
bindable.SetValue(ViewModelLocator.AutoWireViewModelProperty, value); | |||||
} | |||||
public static bool UseMockService { get; set; } | |||||
static ViewModelLocator() | |||||
{ | |||||
_container = new TinyIoCContainer(); | |||||
// View models | |||||
_container.Register<BasketViewModel>(); | |||||
_container.Register<CatalogViewModel>(); | |||||
_container.Register<CheckoutViewModel>(); | |||||
_container.Register<LoginViewModel>(); | |||||
_container.Register<MainViewModel>(); | |||||
_container.Register<OrderDetailViewModel>(); | |||||
_container.Register<ProfileViewModel>(); | |||||
_container.Register<SettingsViewModel>(); | |||||
_container.Register<CampaignViewModel>(); | |||||
_container.Register<CampaignDetailsViewModel>(); | |||||
// Services | // Services | ||||
builder.RegisterType<NavigationService>().As<INavigationService>().SingleInstance(); | |||||
builder.RegisterType<DialogService>().As<IDialogService>(); | |||||
builder.RegisterType<OpenUrlService>().As<IOpenUrlService>(); | |||||
builder.RegisterType<IdentityService>().As<IIdentityService>(); | |||||
builder.RegisterType<RequestProvider>().As<IRequestProvider>(); | |||||
builder.RegisterType<LocationService>().As<ILocationService>().SingleInstance(); | |||||
_container.Register<INavigationService, NavigationService>().AsSingleton(); | |||||
_container.Register<IDialogService, DialogService>(); | |||||
_container.Register<IOpenUrlService, OpenUrlService>(); | |||||
_container.Register<IIdentityService, IdentityService>(); | |||||
_container.Register<IRequestProvider, RequestProvider>(); | |||||
_container.Register<IDependencyService, Services.Dependency.DependencyService>(); | |||||
_container.Register<ISettingsService, SettingsService>().AsSingleton(); | |||||
_container.Register<IFixUriService, FixUriService>().AsSingleton(); | |||||
_container.Register<ILocationService, LocationService>().AsSingleton(); | |||||
_container.Register<ICatalogService, CatalogMockService>().AsSingleton(); | |||||
_container.Register<IBasketService, BasketMockService>().AsSingleton(); | |||||
_container.Register<IOrderService, OrderMockService>().AsSingleton(); | |||||
_container.Register<IUserService, UserMockService>().AsSingleton(); | |||||
_container.Register<ICampaignService, CampaignMockService>().AsSingleton(); | |||||
} | |||||
public static void UpdateDependencies(bool useMockServices) | |||||
{ | |||||
// Change injected dependencies | |||||
if (useMockServices) | if (useMockServices) | ||||
{ | |||||
builder.RegisterInstance(new CatalogMockService()).As<ICatalogService>(); | |||||
builder.RegisterInstance(new BasketMockService()).As<IBasketService>(); | |||||
builder.RegisterInstance(new OrderMockService()).As<IOrderService>(); | |||||
builder.RegisterInstance(new UserMockService()).As<IUserService>(); | |||||
builder.RegisterInstance(new CampaignMockService()).As<ICampaignService>(); | |||||
{ | |||||
_container.Register<ICatalogService, CatalogMockService>().AsSingleton(); | |||||
_container.Register<IBasketService, BasketMockService>().AsSingleton(); | |||||
_container.Register<IOrderService, OrderMockService>().AsSingleton(); | |||||
_container.Register<IUserService, UserMockService>().AsSingleton(); | |||||
_container.Register<ICampaignService, CampaignMockService>().AsSingleton(); | |||||
UseMockService = true; | UseMockService = true; | ||||
} | |||||
else | |||||
{ | |||||
builder.RegisterType<CatalogService>().As<ICatalogService>().SingleInstance(); | |||||
builder.RegisterType<BasketService>().As<IBasketService>().SingleInstance(); | |||||
builder.RegisterType<OrderService>().As<IOrderService>().SingleInstance(); | |||||
builder.RegisterType<UserService>().As<IUserService>().SingleInstance(); | |||||
builder.RegisterType<CampaignService>().As<ICampaignService>().SingleInstance(); | |||||
} | |||||
else | |||||
{ | |||||
_container.Register<ICatalogService, CatalogService>().AsSingleton(); | |||||
_container.Register<IBasketService, BasketService>().AsSingleton(); | |||||
_container.Register<IOrderService, OrderService>().AsSingleton(); | |||||
_container.Register<IUserService, UserService>().AsSingleton(); | |||||
_container.Register<ICampaignService, CampaignService>().AsSingleton(); | |||||
UseMockService = false; | UseMockService = false; | ||||
} | |||||
if (_container != null) | |||||
{ | |||||
_container.Dispose(); | |||||
} | |||||
_container = builder.Build(); | |||||
} | |||||
public static T Resolve<T>() | |||||
{ | |||||
return _container.Resolve<T>(); | |||||
} | |||||
private static void OnAutoWireViewModelChanged(BindableObject bindable, object oldValue, object newValue) | |||||
{ | |||||
var view = bindable as Element; | |||||
if (view == null) | |||||
{ | |||||
return; | |||||
} | |||||
var viewType = view.GetType(); | |||||
var viewName = viewType.FullName.Replace(".Views.", ".ViewModels."); | |||||
var viewAssemblyName = viewType.GetTypeInfo().Assembly.FullName; | |||||
var viewModelName = string.Format(CultureInfo.InvariantCulture, "{0}Model, {1}", viewName, viewAssemblyName); | |||||
var viewModelType = Type.GetType(viewModelName); | |||||
if (viewModelType == null) | |||||
{ | |||||
return; | |||||
} | |||||
var viewModel = _container.Resolve(viewModelType); | |||||
view.BindingContext = viewModel; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
public static void RegisterSingleton<TInterface, T>() where TInterface : class where T : class, TInterface | |||||
{ | |||||
_container.Register<TInterface, T>().AsSingleton(); | |||||
} | |||||
public static T Resolve<T>() where T : class | |||||
{ | |||||
return _container.Resolve<T>(); | |||||
} | |||||
private static void OnAutoWireViewModelChanged(BindableObject bindable, object oldValue, object newValue) | |||||
{ | |||||
var view = bindable as Element; | |||||
if (view == null) | |||||
{ | |||||
return; | |||||
} | |||||
var viewType = view.GetType(); | |||||
var viewName = viewType.FullName.Replace(".Views.", ".ViewModels."); | |||||
var viewAssemblyName = viewType.GetTypeInfo().Assembly.FullName; | |||||
var viewModelName = string.Format(CultureInfo.InvariantCulture, "{0}Model, {1}", viewName, viewAssemblyName); | |||||
var viewModelType = Type.GetType(viewModelName); | |||||
if (viewModelType == null) | |||||
{ | |||||
return; | |||||
} | |||||
var viewModel = _container.Resolve(viewModelType); | |||||
view.BindingContext = viewModel; | |||||
} | |||||
} | |||||
} | } |
@ -1,11 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<configuration> | |||||
<runtime> | |||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | |||||
<dependentAssembly> | |||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> | |||||
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> | |||||
</dependentAssembly> | |||||
</assemblyBinding> | |||||
</runtime> | |||||
</configuration> |
@ -1,277 +1,18 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||||
<Project Sdk="Microsoft.NET.Sdk"> | |||||
<PropertyGroup> | <PropertyGroup> | ||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||||
<ProjectGuid>{BA96A12C-4EE3-46C4-BB3F-F811B554CD01}</ProjectGuid> | |||||
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||||
<UseMSBuildEngine>true</UseMSBuildEngine> | |||||
<OutputType>Library</OutputType> | |||||
<RootNamespace>eShopOnContainers.Core</RootNamespace> | |||||
<AssemblyName>eShopOnContainers.Core</AssemblyName> | |||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | |||||
<TargetFrameworkProfile>Profile111</TargetFrameworkProfile> | |||||
<TargetFramework>netstandard2.0</TargetFramework> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |||||
<DebugSymbols>true</DebugSymbols> | |||||
<DebugType>full</DebugType> | |||||
<Optimize>false</Optimize> | |||||
<OutputPath>bin\Debug</OutputPath> | |||||
<DefineConstants>DEBUG;</DefineConstants> | |||||
<ErrorReport>prompt</ErrorReport> | |||||
<WarningLevel>4</WarningLevel> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |||||
<Optimize>true</Optimize> | |||||
<OutputPath>bin\Release</OutputPath> | |||||
<ErrorReport>prompt</ErrorReport> | |||||
<WarningLevel>4</WarningLevel> | |||||
</PropertyGroup> | |||||
<ItemGroup> | |||||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||||
<Compile Include="App.xaml.cs"> | |||||
<DependentUpon>App.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Animations\FadeToAnimation.cs" /> | |||||
<Compile Include="Animations\StoryBoard.cs" /> | |||||
<Compile Include="Animations\Base\AnimationBase.cs" /> | |||||
<Compile Include="Animations\Base\EasingType.cs" /> | |||||
<Compile Include="Controls\AddBasketButton.xaml.cs"> | |||||
<DependentUpon>AddBasketButton.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Controls\CustomTabbedPage.cs" /> | |||||
<Compile Include="Controls\ToggleButton.cs" /> | |||||
<Compile Include="Behaviors\EventToCommandBehavior.cs" /> | |||||
<Compile Include="Behaviors\LineColorBehavior.cs" /> | |||||
<Compile Include="Behaviors\Base\BindableBehavior.cs" /> | |||||
<Compile Include="Converters\CountToBoolConverter.cs" /> | |||||
<Compile Include="Converters\DatetimeConverter.cs" /> | |||||
<Compile Include="Converters\DoubleConverter.cs" /> | |||||
<Compile Include="Converters\FirstValidationErrorConverter.cs" /> | |||||
<Compile Include="Converters\ImageConverter.cs" /> | |||||
<Compile Include="Converters\InverseBoolConverter.cs" /> | |||||
<Compile Include="Converters\InverseCountToBoolConverter.cs" /> | |||||
<Compile Include="Converters\ItemsToHeightConverter.cs" /> | |||||
<Compile Include="Converters\ItemTappedEventArgsConverter.cs" /> | |||||
<Compile Include="Converters\StringNullOrEmptyBoolConverter.cs" /> | |||||
<Compile Include="Converters\ToUpperConverter.cs" /> | |||||
<Compile Include="Converters\WebNavigatedEventArgsConverter.cs" /> | |||||
<Compile Include="Converters\WebNavigatingEventArgsConverter.cs" /> | |||||
<Compile Include="Helpers\EasingHelper.cs" /> | |||||
<Compile Include="Helpers\RandomNumberGenerator.cs" /> | |||||
<Compile Include="Helpers\ServicesHelper.cs" /> | |||||
<Compile Include="Helpers\Settings.cs" /> | |||||
<Compile Include="Views\Templates\BasketItemTemplate.xaml.cs"> | |||||
<DependentUpon>BasketItemTemplate.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\Templates\CampaignTemplate.xaml.cs"> | |||||
<DependentUpon>CampaignTemplate.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\Templates\OrderItemTemplate.xaml.cs"> | |||||
<DependentUpon>OrderItemTemplate.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\Templates\OrderTemplate.xaml.cs"> | |||||
<DependentUpon>OrderTemplate.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\Templates\ProductTemplate.xaml.cs"> | |||||
<DependentUpon>ProductTemplate.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\BasketView.xaml.cs"> | |||||
<DependentUpon>BasketView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\CampaignDetailsView.xaml.cs"> | |||||
<DependentUpon>CampaignDetailsView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\CampaignView.xaml.cs"> | |||||
<DependentUpon>CampaignView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\CatalogView.xaml.cs"> | |||||
<DependentUpon>CatalogView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\CheckoutView.xaml.cs"> | |||||
<DependentUpon>CheckoutView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\CustomNavigationView.xaml.cs"> | |||||
<DependentUpon>CustomNavigationView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\FiltersView.xaml.cs"> | |||||
<DependentUpon>FiltersView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\LoginView.xaml.cs"> | |||||
<DependentUpon>LoginView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\MainView.xaml.cs"> | |||||
<DependentUpon>MainView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\OrderDetailView.xaml.cs"> | |||||
<DependentUpon>OrderDetailView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\ProfileView.xaml.cs"> | |||||
<DependentUpon>ProfileView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Views\SettingsView.xaml.cs"> | |||||
<DependentUpon>SettingsView.xaml</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Extensions\ObservableExtension.cs" /> | |||||
<Compile Include="Exceptions\ServiceAuthenticationException.cs" /> | |||||
<Compile Include="Models\Basket\BasketCheckout.cs" /> | |||||
<Compile Include="Models\Basket\BasketItem.cs" /> | |||||
<Compile Include="Models\Basket\CustomerBasket.cs" /> | |||||
<Compile Include="Models\Catalog\CatalogBrand.cs" /> | |||||
<Compile Include="Models\Catalog\CatalogItem.cs" /> | |||||
<Compile Include="Models\Catalog\CatalogRoot.cs" /> | |||||
<Compile Include="Models\Catalog\CatalogType.cs" /> | |||||
<Compile Include="Models\Location\Location.cs" /> | |||||
<Compile Include="Models\Marketing\Campaign.cs" /> | |||||
<Compile Include="Models\Marketing\CampaignItem.cs" /> | |||||
<Compile Include="Models\Marketing\CampaignRoot.cs" /> | |||||
<Compile Include="Models\Navigation\TabParameter.cs" /> | |||||
<Compile Include="Models\Orders\CancelOrderCommand.cs" /> | |||||
<Compile Include="Models\Orders\CardType.cs" /> | |||||
<Compile Include="Models\Orders\Order.cs" /> | |||||
<Compile Include="Models\Orders\OrderItem.cs" /> | |||||
<Compile Include="Models\Orders\OrderStatus.cs" /> | |||||
<Compile Include="Models\Token\UserToken.cs" /> | |||||
<Compile Include="Models\User\Address.cs" /> | |||||
<Compile Include="Models\User\LogoutParameter.cs" /> | |||||
<Compile Include="Models\User\PaymentInfo.cs" /> | |||||
<Compile Include="Models\User\UserInfo.cs" /> | |||||
<Compile Include="Triggers\BeginAnimation.cs" /> | |||||
<Compile Include="Services\Basket\BasketMockService.cs" /> | |||||
<Compile Include="Services\Basket\BasketService.cs" /> | |||||
<Compile Include="Services\Basket\IBasketService.cs" /> | |||||
<Compile Include="Services\Catalog\CatalogMockService.cs" /> | |||||
<Compile Include="Services\Catalog\CatalogService.cs" /> | |||||
<Compile Include="Services\Catalog\ICatalogService.cs" /> | |||||
<Compile Include="Services\Common\Common.cs" /> | |||||
<Compile Include="Services\Dialog\DialogService.cs" /> | |||||
<Compile Include="Services\Dialog\IDialogService.cs" /> | |||||
<Compile Include="Services\Identity\IdentityService.cs" /> | |||||
<Compile Include="Services\Identity\IIdentityService.cs" /> | |||||
<Compile Include="Services\Location\ILocationService.cs" /> | |||||
<Compile Include="Services\Location\LocationService.cs" /> | |||||
<Compile Include="Services\Marketing\CampaignMockService.cs" /> | |||||
<Compile Include="Services\Marketing\CampaignService.cs" /> | |||||
<Compile Include="Services\Marketing\ICampaignService.cs" /> | |||||
<Compile Include="Services\Navigation\INavigationService.cs" /> | |||||
<Compile Include="Services\Navigation\NavigationService.cs" /> | |||||
<Compile Include="Services\OpenUrl\IOpenUrlService.cs" /> | |||||
<Compile Include="Services\OpenUrl\OpenUrlService.cs" /> | |||||
<Compile Include="Services\Order\IOrderService.cs" /> | |||||
<Compile Include="Services\Order\OrderMockService.cs" /> | |||||
<Compile Include="Services\Order\OrderService.cs" /> | |||||
<Compile Include="Services\RequestProvider\HttpRequestExceptionEx.cs" /> | |||||
<Compile Include="Services\RequestProvider\IRequestProvider.cs" /> | |||||
<Compile Include="Services\RequestProvider\RequestProvider.cs" /> | |||||
<Compile Include="Services\User\IUserService.cs" /> | |||||
<Compile Include="Services\User\UserMockService.cs" /> | |||||
<Compile Include="Services\User\UserService.cs" /> | |||||
<Compile Include="ViewModels\Base\ExtendedBindableObject.cs" /> | |||||
<Compile Include="ViewModels\Base\MessageKeys.cs" /> | |||||
<Compile Include="ViewModels\Base\ViewModelBase.cs" /> | |||||
<Compile Include="ViewModels\Base\ViewModelLocator.cs" /> | |||||
<Compile Include="ViewModels\BasketViewModel.cs" /> | |||||
<Compile Include="ViewModels\CampaignDetailsViewModel.cs" /> | |||||
<Compile Include="ViewModels\CampaignViewModel.cs" /> | |||||
<Compile Include="ViewModels\CatalogViewModel.cs" /> | |||||
<Compile Include="ViewModels\CheckoutViewModel.cs" /> | |||||
<Compile Include="ViewModels\LoginViewModel.cs" /> | |||||
<Compile Include="ViewModels\MainViewModel.cs" /> | |||||
<Compile Include="ViewModels\OrderDetailViewModel.cs" /> | |||||
<Compile Include="ViewModels\ProfileViewModel.cs" /> | |||||
<Compile Include="ViewModels\SettingsViewModel.cs" /> | |||||
<Compile Include="Effects\EntryLineColorEffect.cs" /> | |||||
<Compile Include="Effects\ThemeEffects.cs" /> | |||||
<Compile Include="Validations\IsNotNullOrEmptyRule.cs" /> | |||||
<Compile Include="Validations\IValidationRule.cs" /> | |||||
<Compile Include="Validations\IValidity.cs" /> | |||||
<Compile Include="Validations\ValidatableObject.cs" /> | |||||
<Compile Include="GlobalSettings.cs" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<None Include="app.config" /> | |||||
<None Include="project.json" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | <ItemGroup> | ||||
<EmbeddedResource Include="App.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Controls\AddBasketButton.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\Templates\BasketItemTemplate.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\Templates\CampaignTemplate.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\Templates\OrderItemTemplate.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\Templates\OrderTemplate.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\Templates\ProductTemplate.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\BasketView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\CampaignDetailsView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\CampaignView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\CatalogView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\SettingsView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\ProfileView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\OrderDetailView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\MainView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\LoginView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\FiltersView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\CustomNavigationView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<EmbeddedResource Include="Views\CheckoutView.xaml"> | |||||
<SubType>Designer</SubType> | |||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||||
</EmbeddedResource> | |||||
<PackageReference Include="System.ComponentModel.Annotations" Version="4.4.1" /> | |||||
<PackageReference Include="Acr.UserDialogs" Version="6.5.1" /> | |||||
<PackageReference Include="SlideOverKit" Version="2.1.5" /> | |||||
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" /> | |||||
<PackageReference Include="PCLCrypto" Version="2.0.147" /> | |||||
<PackageReference Include="Xam.Plugin.Geolocator" Version="3.0.4" /> | |||||
<PackageReference Include="Xamarin.FFImageLoading.Forms" Version="2.3.4" /> | |||||
<PackageReference Include="Xamarin.Forms" Version="2.5.0.122203" /> | |||||
<PackageReference Include="IdentityModel" Version="3.0.0" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup /> | |||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" /> | |||||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.3.4.270\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.3.4.270\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" /> | |||||
<Import Project="..\..\..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" /> | |||||
</Project> | |||||
</Project> |
@ -1,24 +0,0 @@ | |||||
{ | |||||
"dependencies": { | |||||
"Acr.UserDialogs": "6.3.3", | |||||
"Autofac": "4.5.0", | |||||
"IdentityModel": "1.3.1", | |||||
"Microsoft.Bcl": "1.1.10", | |||||
"Microsoft.Bcl.Build": "1.0.21", | |||||
"Microsoft.Net.Http": "2.2.29", | |||||
"modernhttpclient": "2.4.2", | |||||
"Newtonsoft.Json": "9.0.1", | |||||
"PCLCrypto": "2.0.147", | |||||
"SlideOverKit": "2.1.4", | |||||
"Splat": "1.6.2", | |||||
"System.ComponentModel.Annotations": "4.3.0", | |||||
"Xam.Plugin.Geolocator": "3.0.4", | |||||
"Xam.Plugins.Settings": "2.6.0.12-beta", | |||||
"Xamarin.FFImageLoading": "2.2.9", | |||||
"Xamarin.FFImageLoading.Forms": "2.2.9", | |||||
"Xamarin.Forms": "2.5.0.91635" | |||||
}, | |||||
"frameworks": { | |||||
".NETPortable,Version=v4.5,Profile=Profile111": {} | |||||
} | |||||
} |
@ -1,44 +0,0 @@ | |||||
/* | |||||
// Helpers/Settings.cs This file was automatically added when you installed the Settings Plugin. If you are not using a PCL then comment this file back in to use it. | |||||
using Plugin.Settings; | |||||
using Plugin.Settings.Abstractions; | |||||
namespace eShopOnContainers.Droid.Helpers | |||||
{ | |||||
/// <summary> | |||||
/// This is the Settings static class that can be used in your Core solution or in any | |||||
/// of your client applications. All settings are laid out the same exact way with getters | |||||
/// and setters. | |||||
/// </summary> | |||||
public static class Settings | |||||
{ | |||||
private static ISettings AppSettings | |||||
{ | |||||
get | |||||
{ | |||||
return CrossSettings.Current; | |||||
} | |||||
} | |||||
#region Setting Constants | |||||
private const string SettingsKey = "settings_key"; | |||||
private static readonly string SettingsDefault = string.Empty; | |||||
#endregion | |||||
public static string GeneralSettings | |||||
{ | |||||
get | |||||
{ | |||||
return AppSettings.GetValueOrDefault<string>(SettingsKey, SettingsDefault); | |||||
} | |||||
set | |||||
{ | |||||
AppSettings.AddOrUpdateValue<string>(SettingsKey, value); | |||||
} | |||||
} | |||||
} | |||||
}*/ |
@ -0,0 +1,149 @@ | |||||
using Android.App; | |||||
using Android.Content; | |||||
using Android.Preferences; | |||||
using eShopOnContainers.Core.Services.Settings; | |||||
using eShopOnContainers.Droid.Services; | |||||
using System; | |||||
[assembly: Xamarin.Forms.Dependency(typeof(SettingsServiceImplementation))] | |||||
namespace eShopOnContainers.Droid.Services | |||||
{ | |||||
public class SettingsServiceImplementation : ISettingsServiceImplementation | |||||
{ | |||||
#region Internal Implementation | |||||
readonly object _locker = new object(); | |||||
ISharedPreferences GetSharedPreference() | |||||
{ | |||||
return PreferenceManager.GetDefaultSharedPreferences(Application.Context); | |||||
} | |||||
bool AddOrUpdateValueInternal<T>(string key, T value) | |||||
{ | |||||
if (Application.Context == null) | |||||
return false; | |||||
if (value == null) | |||||
{ | |||||
Remove(key); | |||||
return true; | |||||
} | |||||
var type = typeof(T); | |||||
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) | |||||
{ | |||||
type = Nullable.GetUnderlyingType(type); | |||||
} | |||||
var typeCode = Type.GetTypeCode(type); | |||||
lock (_locker) | |||||
{ | |||||
using (var sharedPrefs = GetSharedPreference()) | |||||
{ | |||||
using (var editor = sharedPrefs.Edit()) | |||||
{ | |||||
switch (typeCode) | |||||
{ | |||||
case TypeCode.Boolean: | |||||
editor.PutBoolean(key, Convert.ToBoolean(value)); | |||||
break; | |||||
case TypeCode.String: | |||||
editor.PutString(key, Convert.ToString(value)); | |||||
break; | |||||
default: | |||||
throw new ArgumentException($"Value of type {typeCode} is not supported."); | |||||
} | |||||
editor.Commit(); | |||||
} | |||||
} | |||||
} | |||||
return true; | |||||
} | |||||
T GetValueOrDefaultInternal<T>(string key, T defaultValue = default(T)) | |||||
{ | |||||
if (Application.Context == null) | |||||
return defaultValue; | |||||
if (!Contains(key)) | |||||
return defaultValue; | |||||
lock (_locker) | |||||
{ | |||||
using (var sharedPrefs = GetSharedPreference()) | |||||
{ | |||||
var type = typeof(T); | |||||
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) | |||||
{ | |||||
type = Nullable.GetUnderlyingType(type); | |||||
} | |||||
object value = null; | |||||
var typeCode = Type.GetTypeCode(type); | |||||
switch (typeCode) | |||||
{ | |||||
case TypeCode.Boolean: | |||||
value = sharedPrefs.GetBoolean(key, Convert.ToBoolean(defaultValue)); | |||||
break; | |||||
case TypeCode.String: | |||||
value = sharedPrefs.GetString(key, Convert.ToString(defaultValue)); | |||||
break; | |||||
default: | |||||
throw new ArgumentException($"Value of type {typeCode} is not supported."); | |||||
} | |||||
return null != value ? (T)value : defaultValue; | |||||
} | |||||
} | |||||
} | |||||
bool Contains(string key) | |||||
{ | |||||
if (Application.Context == null) | |||||
return false; | |||||
lock (_locker) | |||||
{ | |||||
using (var sharedPrefs = GetSharedPreference()) | |||||
{ | |||||
if (sharedPrefs == null) | |||||
return false; | |||||
return sharedPrefs.Contains(key); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
#region ISettingsServiceImplementation | |||||
public bool AddOrUpdateValue(string key, bool value) => AddOrUpdateValueInternal(key, value); | |||||
public bool AddOrUpdateValue(string key, string value) => AddOrUpdateValueInternal(key, value); | |||||
public bool GetValueOrDefault(string key, bool defaultValue) => GetValueOrDefaultInternal(key, defaultValue); | |||||
public string GetValueOrDefault(string key, string defaultValue) => GetValueOrDefaultInternal(key, defaultValue); | |||||
public void Remove(string key) | |||||
{ | |||||
if (Application.Context == null) | |||||
return; | |||||
lock (_locker) | |||||
{ | |||||
using (var sharedPrefs = GetSharedPreference()) | |||||
{ | |||||
using (var editor = sharedPrefs.Edit()) | |||||
{ | |||||
editor.Remove(key); | |||||
editor.Commit(); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
} | |||||
} |
@ -1,18 +0,0 @@ | |||||
{ | |||||
"dependencies": { | |||||
"Microsoft.NETCore.UniversalWindowsPlatform": "5.3.3", | |||||
"Xamarin.Forms": "2.5.0.91635", | |||||
"xunit.runner.devices": "2.1.0" | |||||
}, | |||||
"frameworks": { | |||||
"uap10.0.10586": {} | |||||
}, | |||||
"runtimes": { | |||||
"win10-arm": {}, | |||||
"win10-arm-aot": {}, | |||||
"win10-x86": {}, | |||||
"win10-x86-aot": {}, | |||||
"win10-x64": {}, | |||||
"win10-x64-aot": {} | |||||
} | |||||
} |
@ -1,79 +1,64 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<packages> | <packages> | ||||
<package id="Acr.Support" version="2.1.0" targetFramework="xamarinios10" /> | |||||
<package id="Acr.UserDialogs" version="6.3.3" targetFramework="xamarinios10" /> | |||||
<package id="Autofac" version="4.5.0" targetFramework="xamarinios10" /> | |||||
<package id="IdentityModel" version="1.3.1" targetFramework="xamarinios10" /> | |||||
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="xamarinios10" /> | |||||
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="xamarinios10" /> | |||||
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="xamarinios10" /> | |||||
<package id="Microsoft.NETCore.Platforms" version="1.0.1" targetFramework="xamarinios10" /> | |||||
<package id="Microsoft.Win32.Primitives" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="modernhttpclient" version="2.4.2" targetFramework="xamarinios10" /> | |||||
<package id="NETStandard.Library" version="1.6.0" targetFramework="xamarinios10" /> | |||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="xamarinios10" /> | |||||
<package id="PCLCrypto" version="2.0.147" targetFramework="xamarinios10" /> | |||||
<package id="PInvoke.BCrypt" version="0.3.2" targetFramework="xamarinios10" /> | |||||
<package id="PInvoke.Kernel32" version="0.3.2" targetFramework="xamarinios10" /> | |||||
<package id="PInvoke.NCrypt" version="0.3.2" targetFramework="xamarinios10" /> | |||||
<package id="PInvoke.Windows.Core" version="0.3.2" targetFramework="xamarinios10" /> | |||||
<package id="SlideOverKit" version="2.1.4" targetFramework="xamarinios10" /> | |||||
<package id="Splat" version="1.6.2" targetFramework="xamarinios10" /> | |||||
<package id="System.AppContext" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Collections" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="System.Collections.Concurrent" version="4.0.12" targetFramework="xamarinios10" /> | |||||
<package id="Microsoft.CSharp" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="xamarinios10" /> | |||||
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="NETStandard.Library" version="2.0.0" targetFramework="xamarinios10" /> | |||||
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="xamarinios10" /> | |||||
<package id="System.AppContext" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Collections" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.ComponentModel" version="4.0.1" targetFramework="xamarinios10" /> | <package id="System.ComponentModel" version="4.0.1" targetFramework="xamarinios10" /> | ||||
<package id="System.Console" version="4.0.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="System.Diagnostics.Tools" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.Diagnostics.Tracing" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Globalization" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="System.Globalization.Calendars" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.IO" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.IO.Compression" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.IO.Compression.ZipFile" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.IO.FileSystem" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.Linq" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Linq.Expressions" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Net.Http" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Net.Primitives" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="System.Net.Sockets" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.ObjectModel" version="4.0.12" targetFramework="xamarinios10" /> | |||||
<package id="System.Reflection" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Reflection.Extensions" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.Reflection.Primitives" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.Extensions" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.Handles" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.InteropServices" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.0.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.Numerics" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.Security.Cryptography.Algorithms" version="4.2.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Security.Cryptography.Encoding" version="4.0.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Security.Cryptography.Primitives" version="4.0.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Security.Cryptography.X509Certificates" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Text.Encoding" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="System.Text.Encoding.Extensions" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="System.Text.RegularExpressions" version="4.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Threading" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="System.Threading.Tasks" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="System.Threading.Timer" version="4.0.1" targetFramework="xamarinios10" /> | |||||
<package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="System.Xml.XDocument" version="4.0.11" targetFramework="xamarinios10" /> | |||||
<package id="Validation" version="2.2.8" targetFramework="xamarinios10" /> | |||||
<package id="WebP.Touch" version="1.0.3" targetFramework="xamarinios10" /> | |||||
<package id="Xam.Plugin.Geolocator" version="3.0.4" targetFramework="xamarinios10" /> | |||||
<package id="Xam.Plugins.Settings" version="2.6.0.12-beta" targetFramework="xamarinios10" /> | |||||
<package id="Xamarin.FFImageLoading" version="2.2.9" targetFramework="xamarinios10" /> | |||||
<package id="Xamarin.FFImageLoading.Forms" version="2.2.9" targetFramework="xamarinios10" /> | |||||
<package id="Xamarin.Forms" version="2.5.0.91635" targetFramework="xamarinios10" /> | |||||
<package id="xunit.abstractions" version="2.0.0" targetFramework="xamarinios10" /> | |||||
<package id="xunit.assert" version="2.2.0" targetFramework="xamarinios10" /> | |||||
<package id="xunit.core" version="2.1.0" targetFramework="xamarinios10" /> | |||||
<package id="xunit.extensibility.core" version="2.1.0" targetFramework="xamarinios10" /> | |||||
<package id="xunit.extensibility.execution" version="2.1.0" targetFramework="xamarinios10" /> | |||||
<package id="xunit.runner.devices" version="2.1.0" targetFramework="xamarinios10" /> | |||||
<package id="xunit.runner.utility" version="2.1.0" targetFramework="xamarinios10" /> | |||||
<package id="System.ComponentModel.TypeConverter" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Console" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Globalization" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.IO" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Linq" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Net.Http" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Net.Primitives" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Net.Sockets" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.ObjectModel" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Reflection" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.Serialization.Formatters" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Text.Encoding" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Threading" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Threading.Timer" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="xamarinios10" /> | |||||
<package id="Xamarin.Forms" version="2.5.0.122203" targetFramework="xamarinios10" /> | |||||
<package id="xunit" version="2.3.1" targetFramework="xamarinios10" /> | |||||
<package id="xunit.abstractions" version="2.0.1" targetFramework="xamarinios10" /> | |||||
<package id="xunit.analyzers" version="0.7.0" targetFramework="xamarinios10" /> | |||||
<package id="xunit.assert" version="2.3.1" targetFramework="xamarinios10" /> | |||||
<package id="xunit.core" version="2.3.1" targetFramework="xamarinios10" /> | |||||
<package id="xunit.extensibility.core" version="2.3.1" targetFramework="xamarinios10" /> | |||||
<package id="xunit.extensibility.execution" version="2.3.1" targetFramework="xamarinios10" /> | |||||
<package id="xunit.runner.devices" version="2.3.3" targetFramework="xamarinios10" /> | |||||
</packages> | </packages> |
@ -1,23 +0,0 @@ | |||||
using Xamarin.UITest; | |||||
namespace eShopOnContainers.UITests | |||||
{ | |||||
public class AppInitializer | |||||
{ | |||||
public static IApp StartApp(Platform platform) | |||||
{ | |||||
if (platform == Platform.Android) | |||||
{ | |||||
return ConfigureApp | |||||
.Android | |||||
.ApkFile(@"..\..\..\eShopOnContainers.Droid\bin\Release\eShopOnContainers.Droid.apk") | |||||
.StartApp(); | |||||
} | |||||
return ConfigureApp | |||||
.iOS | |||||
.StartApp(); | |||||
} | |||||
} | |||||
} | |||||
@ -1,42 +0,0 @@ | |||||
using NUnit.Framework; | |||||
using Xamarin.UITest; | |||||
namespace eShopOnContainers.UITests | |||||
{ | |||||
[TestFixture(Platform.Android)] | |||||
[TestFixture(Platform.iOS)] | |||||
public class Tests | |||||
{ | |||||
IApp app; | |||||
Platform platform; | |||||
public Tests(Platform platform) | |||||
{ | |||||
this.platform = platform; | |||||
} | |||||
[SetUp] | |||||
public void BeforeEachTest() | |||||
{ | |||||
app = AppInitializer.StartApp(platform); | |||||
} | |||||
[Test] | |||||
public void AppLaunches() | |||||
{ | |||||
app.Screenshot("First screen."); | |||||
} | |||||
[Test] | |||||
public void LoginTest() | |||||
{ | |||||
app.Tap(x => x.Text("[ LOGIN ]")); | |||||
app.Tap(x => x.Class("WebView").Css("INPUT#Email")); | |||||
app.EnterText(x => x.Class("WebView").Css("INPUT#Email"), "jdoe@eshop.com"); | |||||
app.Tap(x => x.Class("WebView").Css("INPUT#Password")); | |||||
app.EnterText(x => x.Class("WebView").Css("INPUT#Password"), "eshopContainers.123"); | |||||
app.Tap(x => x.Class("WebView").Css("BUTTON.btn.btn-default.btn-brand.btn-brand-big")); | |||||
app.Screenshot("eShopOnContainers Login process"); | |||||
} | |||||
} | |||||
} |
@ -1,11 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<configuration> | |||||
<runtime> | |||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | |||||
<dependentAssembly> | |||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> | |||||
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> | |||||
</dependentAssembly> | |||||
</assemblyBinding> | |||||
</runtime> | |||||
</configuration> |
@ -1,69 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||||
<PropertyGroup> | |||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||||
<ProjectGuid>{E3B18084-842C-4B80-8E4A-A7E588EC3137}</ProjectGuid> | |||||
<OutputType>Library</OutputType> | |||||
<RootNamespace>eShopOnContainers.UITests</RootNamespace> | |||||
<AssemblyName>eShopOnContainers.UITests</AssemblyName> | |||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |||||
<DebugSymbols>true</DebugSymbols> | |||||
<DebugType>full</DebugType> | |||||
<Optimize>false</Optimize> | |||||
<OutputPath>bin\Debug</OutputPath> | |||||
<DefineConstants>DEBUG;</DefineConstants> | |||||
<ErrorReport>prompt</ErrorReport> | |||||
<WarningLevel>4</WarningLevel> | |||||
<ConsolePause>false</ConsolePause> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |||||
<DebugType>full</DebugType> | |||||
<Optimize>true</Optimize> | |||||
<OutputPath>bin\Release</OutputPath> | |||||
<ErrorReport>prompt</ErrorReport> | |||||
<WarningLevel>4</WarningLevel> | |||||
<ConsolePause>false</ConsolePause> | |||||
</PropertyGroup> | |||||
<ItemGroup> | |||||
<Reference Include="nunit.core, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL"> | |||||
<HintPath>..\..\..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll</HintPath> | |||||
<Private>False</Private> | |||||
</Reference> | |||||
<Reference Include="nunit.core.interfaces, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL"> | |||||
<HintPath>..\..\..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.interfaces.dll</HintPath> | |||||
<Private>False</Private> | |||||
</Reference> | |||||
<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL"> | |||||
<HintPath>..\..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath> | |||||
<Private>True</Private> | |||||
</Reference> | |||||
<Reference Include="nunit.util, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL"> | |||||
<HintPath>..\..\..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.util.dll</HintPath> | |||||
<Private>False</Private> | |||||
</Reference> | |||||
<Reference Include="NUnit.VisualStudio.TestAdapter, Version=2.0.0.0, Culture=neutral, PublicKeyToken=4cb40d35494691ac, processorArchitecture=MSIL"> | |||||
<HintPath>..\..\..\..\packages\NUnitTestAdapter.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll</HintPath> | |||||
<Private>False</Private> | |||||
</Reference> | |||||
<Reference Include="System" /> | |||||
<Reference Include="Xamarin.UITest, Version=2.0.3.0, Culture=neutral, processorArchitecture=MSIL"> | |||||
<HintPath>..\..\..\..\packages\Xamarin.UITest.2.0.3\lib\Xamarin.UITest.dll</HintPath> | |||||
<Private>True</Private> | |||||
</Reference> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<Compile Include="Tests.cs" /> | |||||
<Compile Include="AppInitializer.cs" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<None Include="app.config" /> | |||||
<None Include="packages.config" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> | |||||
</ItemGroup> | |||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> | |||||
</Project> |
@ -1,6 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<packages> | |||||
<package id="NUnit" version="2.6.4" targetFramework="net45" /> | |||||
<package id="NUnitTestAdapter" version="2.0.0" targetFramework="net45" /> | |||||
<package id="Xamarin.UITest" version="2.0.3" targetFramework="net45" /> | |||||
</packages> |
@ -0,0 +1,65 @@ | |||||
using eShopOnContainers.Core.Services.Settings; | |||||
using System; | |||||
namespace eShopOnContainers.UnitTests.Mocks | |||||
{ | |||||
public class MockSettingsService : ISettingsService | |||||
{ | |||||
string _accessTokenDefault = string.Empty; | |||||
string _idTokenDefault = string.Empty; | |||||
bool _useMocksDefault = true; | |||||
string _urlBaseDefault = "https://13.88.8.119"; | |||||
bool _useFakeLocationDefault = false; | |||||
bool _allowGpsLocationDefault = false; | |||||
double _fakeLatitudeDefault = 47.604610d; | |||||
double _fakeLongitudeDefault = -122.315752d; | |||||
public string AuthAccessToken | |||||
{ | |||||
get { return _accessTokenDefault; } | |||||
set { _accessTokenDefault = value; } | |||||
} | |||||
public string AuthIdToken | |||||
{ | |||||
get { return _idTokenDefault; } | |||||
set { _idTokenDefault = value; } | |||||
} | |||||
public bool UseMocks | |||||
{ | |||||
get { return _useMocksDefault; } | |||||
set { _useMocksDefault = value; } | |||||
} | |||||
public string UrlBase | |||||
{ | |||||
get { return _urlBaseDefault; } | |||||
set { _urlBaseDefault = value; } | |||||
} | |||||
public bool UseFakeLocation | |||||
{ | |||||
get { return _useFakeLocationDefault; } | |||||
set { _useFakeLocationDefault = value; } | |||||
} | |||||
public string Latitude | |||||
{ | |||||
get { return _fakeLatitudeDefault.ToString(); } | |||||
set { _fakeLatitudeDefault = Convert.ToDouble(value); } | |||||
} | |||||
public string Longitude | |||||
{ | |||||
get { return _fakeLongitudeDefault.ToString(); } | |||||
set { _fakeLongitudeDefault = Convert.ToDouble(value); } | |||||
} | |||||
public bool AllowGpsLocation | |||||
{ | |||||
get { return _allowGpsLocationDefault; } | |||||
set { _allowGpsLocationDefault = value; } | |||||
} | |||||
} | |||||
} |
@ -1,30 +0,0 @@ | |||||
using System.Resources; | |||||
using System.Reflection; | |||||
using System.Runtime.CompilerServices; | |||||
using System.Runtime.InteropServices; | |||||
// La información general de un ensamblado se controla mediante el siguiente | |||||
// conjunto de atributos. Cambie estos valores de atributo para modificar la información | |||||
// asociada con un ensamblado. | |||||
[assembly: AssemblyTitle("eShopOnContainers.UnitTests")] | |||||
[assembly: AssemblyDescription("")] | |||||
[assembly: AssemblyConfiguration("")] | |||||
[assembly: AssemblyCompany("")] | |||||
[assembly: AssemblyProduct("eShopOnContainers.UnitTests")] | |||||
[assembly: AssemblyCopyright("Copyright © 2016")] | |||||
[assembly: AssemblyTrademark("")] | |||||
[assembly: AssemblyCulture("")] | |||||
[assembly: NeutralResourcesLanguage("es")] | |||||
// La información de versión de un ensamblado consta de los cuatro valores siguientes: | |||||
// | |||||
// Versión principal | |||||
// Versión secundaria | |||||
// Número de compilación | |||||
// Revisión | |||||
// | |||||
// Puede especificar todos los valores o usar los valores predeterminados de número de compilación y de revisión | |||||
// mediante el carácter '*', como se muestra a continuación: | |||||
// [assembly: AssemblyVersion("1.0.*")] | |||||
[assembly: AssemblyVersion("1.0.0.0")] | |||||
[assembly: AssemblyFileVersion("1.0.0.0")] |
@ -1,223 +1,226 @@ | |||||
using Xunit; | |||||
using eShopOnContainers.Core.Models.Catalog; | |||||
using eShopOnContainers.Core.Services.Catalog; | |||||
using eShopOnContainers.Core.Services.Settings; | |||||
using eShopOnContainers.Core.ViewModels; | using eShopOnContainers.Core.ViewModels; | ||||
using eShopOnContainers.Core.ViewModels.Base; | using eShopOnContainers.Core.ViewModels.Base; | ||||
using eShopOnContainers.Core.Services.Catalog; | |||||
using eShopOnContainers.Core.Models.Catalog; | |||||
using System.Threading.Tasks; | |||||
using eShopOnContainers.UnitTests.Mocks; | |||||
using System.Linq; | using System.Linq; | ||||
using System.Threading.Tasks; | |||||
using Xunit; | |||||
namespace eShopOnContainers.UnitTests | namespace eShopOnContainers.UnitTests | ||||
{ | { | ||||
public class CatalogViewModelTests | |||||
{ | |||||
public CatalogViewModelTests() | |||||
{ | |||||
ViewModelLocator.RegisterDependencies(true); | |||||
} | |||||
[Fact] | |||||
public void AddCatalogItemCommandIsNotNullTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.NotNull(catalogViewModel.AddCatalogItemCommand); | |||||
} | |||||
[Fact] | |||||
public void FilterCommandIsNotNullTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.NotNull(catalogViewModel.FilterCommand); | |||||
} | |||||
[Fact] | |||||
public void ClearFilterCommandIsNotNullTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.NotNull(catalogViewModel.ClearFilterCommand); | |||||
} | |||||
[Fact] | |||||
public void ProductsPropertyIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Products); | |||||
} | |||||
[Fact] | |||||
public void BrandsPropertyuIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Brands); | |||||
} | |||||
[Fact] | |||||
public void BrandPropertyIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Brand); | |||||
} | |||||
[Fact] | |||||
public void TypesPropertyIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Types); | |||||
} | |||||
[Fact] | |||||
public void TypePropertyIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Type); | |||||
} | |||||
[Fact] | |||||
public void IsFilterPropertyIsFalseWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.False(catalogViewModel.IsFilter); | |||||
} | |||||
[Fact] | |||||
public async Task ProductsPropertyIsNotNullAfterViewModelInitializationTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.NotNull(catalogViewModel.Products); | |||||
} | |||||
[Fact] | |||||
public async Task BrandsPropertyIsNotNullAfterViewModelInitializationTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.NotNull(catalogViewModel.Brands); | |||||
} | |||||
[Fact] | |||||
public async Task TypesPropertyIsNotNullAfterViewModelInitializationTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.NotNull(catalogViewModel.Types); | |||||
} | |||||
[Fact] | |||||
public async Task SettingProductsPropertyShouldRaisePropertyChanged() | |||||
{ | |||||
bool invoked = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
catalogViewModel.PropertyChanged += (sender, e) => | |||||
{ | |||||
if (e.PropertyName.Equals("Products")) | |||||
invoked = true; | |||||
}; | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.True(invoked); | |||||
} | |||||
[Fact] | |||||
public async Task SettingBrandsPropertyShouldRaisePropertyChanged() | |||||
{ | |||||
bool invoked = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
catalogViewModel.PropertyChanged += (sender, e) => | |||||
{ | |||||
if (e.PropertyName.Equals("Brands")) | |||||
invoked = true; | |||||
}; | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.True(invoked); | |||||
} | |||||
[Fact] | |||||
public async Task SettingTypesPropertyShouldRaisePropertyChanged() | |||||
{ | |||||
bool invoked = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
catalogViewModel.PropertyChanged += (sender, e) => | |||||
{ | |||||
if (e.PropertyName.Equals("Types")) | |||||
invoked = true; | |||||
}; | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.True(invoked); | |||||
} | |||||
[Fact] | |||||
public void AddCatalogItemCommandSendsAddProductMessageTest() | |||||
{ | |||||
bool messageReceived = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Xamarin.Forms.MessagingCenter.Subscribe<CatalogViewModel, CatalogItem>(this, MessageKeys.AddProduct, (sender, arg) => | |||||
{ | |||||
messageReceived = true; | |||||
}); | |||||
catalogViewModel.AddCatalogItemCommand.Execute(null); | |||||
Assert.True(messageReceived); | |||||
} | |||||
[Fact] | |||||
public async Task FilterCommandSendsFilterMessageTest() | |||||
{ | |||||
bool messageReceived = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
catalogViewModel.Brand = catalogViewModel.Brands.FirstOrDefault(); | |||||
catalogViewModel.Type = catalogViewModel.Types.FirstOrDefault(); | |||||
Xamarin.Forms.MessagingCenter.Subscribe<CatalogViewModel>(this, MessageKeys.Filter, (sender) => | |||||
{ | |||||
messageReceived = true; | |||||
}); | |||||
catalogViewModel.FilterCommand.Execute(null); | |||||
Assert.True(messageReceived); | |||||
} | |||||
[Fact] | |||||
public async Task ClearFilterCommandResetsPropertiesTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
catalogViewModel.ClearFilterCommand.Execute(null); | |||||
Assert.Null(catalogViewModel.Brand); | |||||
Assert.Null(catalogViewModel.Type); | |||||
Assert.NotNull(catalogViewModel.Products); | |||||
} | |||||
} | |||||
public class CatalogViewModelTests | |||||
{ | |||||
public CatalogViewModelTests() | |||||
{ | |||||
ViewModelLocator.UpdateDependencies(true); | |||||
ViewModelLocator.RegisterSingleton<ISettingsService, MockSettingsService>(); | |||||
} | |||||
[Fact] | |||||
public void AddCatalogItemCommandIsNotNullTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.NotNull(catalogViewModel.AddCatalogItemCommand); | |||||
} | |||||
[Fact] | |||||
public void FilterCommandIsNotNullTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.NotNull(catalogViewModel.FilterCommand); | |||||
} | |||||
[Fact] | |||||
public void ClearFilterCommandIsNotNullTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.NotNull(catalogViewModel.ClearFilterCommand); | |||||
} | |||||
[Fact] | |||||
public void ProductsPropertyIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Products); | |||||
} | |||||
[Fact] | |||||
public void BrandsPropertyuIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Brands); | |||||
} | |||||
[Fact] | |||||
public void BrandPropertyIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Brand); | |||||
} | |||||
[Fact] | |||||
public void TypesPropertyIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Types); | |||||
} | |||||
[Fact] | |||||
public void TypePropertyIsNullWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.Null(catalogViewModel.Type); | |||||
} | |||||
[Fact] | |||||
public void IsFilterPropertyIsFalseWhenViewModelInstantiatedTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Assert.False(catalogViewModel.IsFilter); | |||||
} | |||||
[Fact] | |||||
public async Task ProductsPropertyIsNotNullAfterViewModelInitializationTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.NotNull(catalogViewModel.Products); | |||||
} | |||||
[Fact] | |||||
public async Task BrandsPropertyIsNotNullAfterViewModelInitializationTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.NotNull(catalogViewModel.Brands); | |||||
} | |||||
[Fact] | |||||
public async Task TypesPropertyIsNotNullAfterViewModelInitializationTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.NotNull(catalogViewModel.Types); | |||||
} | |||||
[Fact] | |||||
public async Task SettingProductsPropertyShouldRaisePropertyChanged() | |||||
{ | |||||
bool invoked = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
catalogViewModel.PropertyChanged += (sender, e) => | |||||
{ | |||||
if (e.PropertyName.Equals("Products")) | |||||
invoked = true; | |||||
}; | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.True(invoked); | |||||
} | |||||
[Fact] | |||||
public async Task SettingBrandsPropertyShouldRaisePropertyChanged() | |||||
{ | |||||
bool invoked = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
catalogViewModel.PropertyChanged += (sender, e) => | |||||
{ | |||||
if (e.PropertyName.Equals("Brands")) | |||||
invoked = true; | |||||
}; | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.True(invoked); | |||||
} | |||||
[Fact] | |||||
public async Task SettingTypesPropertyShouldRaisePropertyChanged() | |||||
{ | |||||
bool invoked = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
catalogViewModel.PropertyChanged += (sender, e) => | |||||
{ | |||||
if (e.PropertyName.Equals("Types")) | |||||
invoked = true; | |||||
}; | |||||
await catalogViewModel.InitializeAsync(null); | |||||
Assert.True(invoked); | |||||
} | |||||
[Fact] | |||||
public void AddCatalogItemCommandSendsAddProductMessageTest() | |||||
{ | |||||
bool messageReceived = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
Xamarin.Forms.MessagingCenter.Subscribe<CatalogViewModel, CatalogItem>(this, MessageKeys.AddProduct, (sender, arg) => | |||||
{ | |||||
messageReceived = true; | |||||
}); | |||||
catalogViewModel.AddCatalogItemCommand.Execute(null); | |||||
Assert.True(messageReceived); | |||||
} | |||||
[Fact] | |||||
public async Task FilterCommandSendsFilterMessageTest() | |||||
{ | |||||
bool messageReceived = false; | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
catalogViewModel.Brand = catalogViewModel.Brands.FirstOrDefault(); | |||||
catalogViewModel.Type = catalogViewModel.Types.FirstOrDefault(); | |||||
Xamarin.Forms.MessagingCenter.Subscribe<CatalogViewModel>(this, MessageKeys.Filter, (sender) => | |||||
{ | |||||
messageReceived = true; | |||||
}); | |||||
catalogViewModel.FilterCommand.Execute(null); | |||||
Assert.True(messageReceived); | |||||
} | |||||
[Fact] | |||||
public async Task ClearFilterCommandResetsPropertiesTest() | |||||
{ | |||||
var catalogService = new CatalogMockService(); | |||||
var catalogViewModel = new CatalogViewModel(catalogService); | |||||
await catalogViewModel.InitializeAsync(null); | |||||
catalogViewModel.ClearFilterCommand.Execute(null); | |||||
Assert.Null(catalogViewModel.Brand); | |||||
Assert.Null(catalogViewModel.Type); | |||||
Assert.NotNull(catalogViewModel.Products); | |||||
} | |||||
} | |||||
} | } |