Mike James преди 9 години
родител
ревизия
0d26a6e840

+ 4 - 0
HandsOnLab/Finish/DevDaysSpeakers.userprefs

@@ -0,0 +1,4 @@
+<Properties StartupItem="DevDaysSpeakers/DevDaysSpeakers.Droid/DevDaysSpeakers.Droid.csproj">
+  <MonoDevelop.Ide.ItemProperties.DevDaysSpeakers.Droid PreferredExecutionTarget="Android.Nexus 5 (Lollipop)" />
+  <MonoDevelop.Ide.ItemProperties.DevDaysSpeakers.iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget.B93F0F51-E949-438A-BB04-D08F42619BF1" />
+</Properties>

+ 9 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Droid/DevDaysSpeakers.Droid.csproj

@@ -148,6 +148,15 @@
       <HintPath>..\..\packages\Xamarin.Forms.2.3.0.107\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll</HintPath>
       <Private>True</Private>
     </Reference>
+    <Reference Include="Plugin.Connectivity">
+      <HintPath>..\..\packages\Xam.Plugin.Connectivity.2.2.2\lib\MonoAndroid10\Plugin.Connectivity.dll</HintPath>
+    </Reference>
+    <Reference Include="Plugin.Connectivity.Abstractions">
+      <HintPath>..\..\packages\Xam.Plugin.Connectivity.2.2.2\lib\MonoAndroid10\Plugin.Connectivity.Abstractions.dll</HintPath>
+    </Reference>
+    <Reference Include="Azure.Mobile">
+      <HintPath>..\..\packages\AppService.Helpers.1.0.2\lib\Azure.Mobile.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="MainActivity.cs" />

Файловите разлики са ограничени, защото са твърде много
+ 682 - 568
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Droid/Resources/Resource.Designer.cs


+ 2 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.Droid/packages.config

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
+  <package id="AppService.Helpers" version="1.0.2" targetFramework="MonoAndroid60" />
   <package id="Microsoft.Azure.Mobile.Client" version="2.1.0" targetFramework="monoandroid60" />
   <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="2.1.0" targetFramework="monoandroid60" />
   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="monoandroid60" />
@@ -7,6 +8,7 @@
   <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="monoandroid60" />
   <package id="Newtonsoft.Json" version="6.0.4" targetFramework="monoandroid60" />
   <package id="SQLitePCL" version="3.8.7.2" targetFramework="monoandroid60" />
+  <package id="Xam.Plugin.Connectivity" version="2.2.2" targetFramework="MonoAndroid60" />
   <package id="Xam.Plugins.TextToSpeech" version="2.0.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
   <package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />

+ 3 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.iOS/DevDaysSpeakers.iOS.csproj

@@ -183,6 +183,9 @@
     <Reference Include="Plugin.Connectivity.Abstractions">
       <HintPath>..\..\packages\Xam.Plugin.Connectivity.2.2.2\lib\Xamarin.iOS10\Plugin.Connectivity.Abstractions.dll</HintPath>
     </Reference>
+    <Reference Include="Azure.Mobile">
+      <HintPath>..\..\packages\AppService.Helpers.1.0.1\lib\Azure.Mobile.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\DevDaysSpeakers\DevDaysSpeakers.csproj">

+ 1 - 0
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers.iOS/packages.config

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
+  <package id="AppService.Helpers" version="1.0.1" targetFramework="xamarinios10" />
   <package id="Microsoft.Azure.Mobile.Client" version="2.1.0" targetFramework="xamarinios10" />
   <package id="Microsoft.Azure.Mobile.Client.SQLiteStore" version="2.1.0" targetFramework="xamarinios10" />
   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="xamarinios10" />

+ 2 - 4
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/App.cs

@@ -19,13 +19,11 @@ namespace DevDaysSpeakers
             client.FinalizeSchema();
 
             // The root page of your application
-            var content = new SpeakersPage();
+            var content = new SpeakersPage(client);
 
             MainPage = new NavigationPage(content);
         }
-
-
-
+      
         protected override void OnStart()
         {
             // Handle when your app starts

+ 0 - 1
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/DevDaysSpeakers.csproj

@@ -38,7 +38,6 @@
     <Compile Include="App.cs" />
     <Compile Include="Model\Speaker.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ViewModel\AzureStore.cs" />
     <Compile Include="ViewModel\SpeakersViewModel.cs" />
     <Compile Include="View\DetailsPage.xaml.cs">
       <DependentUpon>DetailsPage.xaml</DependentUpon>

+ 4 - 3
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/View/SpeakersPage.xaml.cs

@@ -8,18 +8,19 @@ using Xamarin.Forms;
 
 using DevDaysSpeakers.Model;
 using DevDaysSpeakers.ViewModel;
-
+using AppServiceHelpers;
+using AppServiceHelpers.Abstractions;
 
 namespace DevDaysSpeakers.View
 {
     public partial class SpeakersPage : ContentPage
     {
         SpeakersViewModel vm;
-        public SpeakersPage()
+        public SpeakersPage(IEasyMobileServiceClient client)
         {
             InitializeComponent();
 
-            vm = new SpeakersViewModel();
+            vm = new SpeakersViewModel(client);
 
             BindingContext = vm;
 

+ 0 - 65
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/ViewModel/AzureStore.cs

@@ -1,65 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-using Microsoft.WindowsAzure.MobileServices;
-using Microsoft.WindowsAzure.MobileServices.Sync;
-using Microsoft.WindowsAzure.MobileServices.SQLiteStore;
-using DevDaysSpeakers.Model;
-using System.Diagnostics;
-
-namespace DevDaysSpeakers.ViewModel
-{
-    public class AzureStore
-    {
-        static AzureStore current;
-        public static AzureStore Current
-        {
-            get
-            {
-                if (current == null)
-                    current = new AzureStore();
-
-                return current;
-            }
-        }
-
-        MobileServiceClient MobileService { get; set; }
-        IMobileServiceSyncTable<Speaker> speakerTable;
-
-        public async Task Initialize()
-        {
-            if (MobileService != null)
-                return;
-
-            MobileService = new MobileServiceClient("https://montemagnospeakers.azurewebsites.net");
-
-            var store = new MobileServiceSQLiteStore("speakers.db");
-
-            store.DefineTable<Speaker>();
-
-            await MobileService.SyncContext.InitializeAsync(store);
-
-            speakerTable = MobileService.GetSyncTable<Speaker>();
-        }
-
-        public async Task<List<Speaker>> GetSpeakers()
-        {
-            await Initialize();
-
-            try
-            {
-                await speakerTable.PullAsync("allSpeakers", speakerTable.CreateQuery());
-            }
-            catch (Exception ex)
-            {
-                Debug.WriteLine(ex);
-            }
-
-            return await speakerTable.ToListAsync();
-        }
-
-    }
-}

+ 8 - 11
HandsOnLab/Finish/DevDaysSpeakers/DevDaysSpeakers/ViewModel/SpeakersViewModel.cs

@@ -11,16 +11,19 @@ using System.Net.Http;
 using Newtonsoft.Json;
 using System.Collections.ObjectModel;
 using AppServiceHelpers.Abstractions;
+using AppServiceHelpers;
 
 namespace DevDaysSpeakers.ViewModel
 {
     public class SpeakersViewModel : INotifyPropertyChanged
     {
-        public ITableDataStore<Speaker> Table { get; set;}
         public ObservableCollection<Speaker> Speakers { get; set; }
-        public SpeakersViewModel()
+
+        ITableDataStore<Speaker> table;
+        public SpeakersViewModel(IEasyMobileServiceClient client)
         {
             Speakers = new ObservableCollection<Speaker>();
+            table = client.Table<Speaker>();
         }
 
         bool busy;
@@ -43,18 +46,12 @@ namespace DevDaysSpeakers.ViewModel
             try
             {
                 IsBusy = true;
-
-                if (Table == null)
-                {
-                    var client = new AppServiceHelpers.EasyMobileServiceClient();
-                    Table = client.Table<Speaker>();
-                }
-
-                var items = await Table.GetItemsAsync();
+             
+                var items = await table.GetItemsAsync();
 
                 Speakers.Clear();
                 foreach (var item in items)
-                    Speakers.Add(item);
+                    Speakers.Add(item); 
                 
             }
             catch(Exception ex)

Някои файлове не бяха показани, защото твърде много файлове са промени