﻿<?xml version="1.0" encoding="utf-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{437D108F-528C-4B2A-B399-06CF02DEB08B}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Usergrid.Sdk</RootNamespace>
    <AssemblyName>Usergrid.Sdk</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Configuration" />
    <Reference Include="Newtonsoft.Json">
      <HintPath>..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll</HintPath>
    </Reference>
    <Reference Include="RestSharp">
      <HintPath>..\packages\RestSharp.104.1\lib\net4\RestSharp.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Client.cs" />
    <Compile Include="IClient.cs" />
    <Compile Include="IUsergridRequest.cs" />
    <Compile Include="Manager\INotificationsManager.cs" />
    <Compile Include="Manager\NotificationsManager.cs" />
    <Compile Include="Model\Connection.cs" />
    <Compile Include="Model\UsergridEntity.cs" />
    <Compile Include="Model\UsergridError.cs" />
    <Compile Include="Model\UsergridNotifier.cs" />
    <Compile Include="Payload\AndroidNotifierPayload.cs" />
    <Compile Include="Payload\CancelNotificationPayload.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="RestSharpJsonSerializer.cs" />
    <Compile Include="UsergridRequest.cs" />
    <Compile Include="Model\UsergridUser.cs" />
    <Compile Include="Model\UsergridGroup.cs" />
    <Compile Include="Payload\UserLoginPayload.cs" />
    <Compile Include="Payload\ChangePasswordPayload.cs" />
    <Compile Include="Payload\ClientIdLoginPayload.cs" />
    <Compile Include="Payload\LoginResponse.cs" />
    <Compile Include="Payload\UsergridGetResponse.cs" />
    <Compile Include="Manager\EntityManager.cs" />
    <Compile Include="Manager\IAuthenticationManager.cs" />
    <Compile Include="Manager\IConnectionManager.cs" />
    <Compile Include="Manager\IEntityManager.cs" />
    <Compile Include="Manager\ManagerBase.cs" />
    <Compile Include="Model\UsergridException.cs" />
    <Compile Include="Model\AuthType.cs" />
    <Compile Include="Manager\AuthenticationManager.cs" />
    <Compile Include="Manager\ConnectionManager.cs" />
    <Compile Include="Model\UsergridCollection.cs" />
    <Compile Include="Model\UsergridEntitySerializer.cs" />
    <Compile Include="Model\UsergridActivity.cs" />
    <Compile Include="Model\UsergridActor.cs" />
    <Compile Include="Model\UsergridImage.cs" />
    <Compile Include="Model\UnixDateTimeHelper.cs" />
    <Compile Include="Model\INotificationRecipients.cs" />
    <Compile Include="Model\NotificationRecipients.cs" />
    <Compile Include="Model\Notification.cs" />
    <Compile Include="Model\AndroidNotification.cs" />
    <Compile Include="Model\AppleNotification.cs" />
    <Compile Include="Payload\NotificationPayload.cs" />
    <Compile Include="Model\NotificationSchedulerSettings.cs" />
    <Compile Include="Model\UsergridDevice.cs" />
  </ItemGroup>
  <ItemGroup>
    <None Include="packages.config" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
  <ItemGroup />
</Project>
