| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Threading.Tasks;
 
- using Comal.Classes;
 
- using InABox.Core;
 
- using Rb.Forms.Barcode.Pcl;
 
- using Xamarin.Forms;
 
- namespace comal.timesheets
 
- {
 
-     public partial class BarcodeForm : ContentPage
 
-     {
 
-         public Guid JobID { get; set; }
 
-         public double Latitude { get; set; }
 
-         public double Longitude { get; set; }
 
-         private DataTable Jobs = null;
 
-         public BarcodeForm(DataTable jobs)
 
-         {
 
-             InitializeComponent();
 
-             Jobs = jobs;
 
-             MessagingCenter.Subscribe<App>(this, App.MessageOnSleep, disableScanner);
 
-             MessagingCenter.Subscribe<App>(this, App.MessageOnResume, enableScanner);
 
-             barcodeScanner.BarcodeChanged += animateFlash;
 
-         }
 
-         protected override void OnAppearing()
 
-         {
 
-             base.OnAppearing();
 
-             enableScanner(this);
 
-         }
 
-         protected override void OnDisappearing()
 
-         {
 
-             disableScanner(this);
 
-             base.OnDisappearing();
 
-         }
 
-         //public void DisableScanner()
 
-         //{
 
-         //    disableScanner(null);
 
-         //}
 
-         private void disableScanner(object sender)
 
-         {
 
-             barcodeScanner.IsEnabled = false;
 
-         }
 
-         private void enableScanner(object sender)
 
-         {
 
-             barcodeScanner.IsEnabled = true;
 
-         }
 
-         private async Task ProcessBarcode(String barcode)
 
-         {
 
-             disableScanner(this);
 
-             JobID = Guid.Empty;
 
-             foreach (DataRow row in Jobs.Rows)
 
-             {
 
-                 Guid jobid = row.Get<Job, Guid>(X => X.ID);
 
-                 if (jobid.ToString().Equals(barcode))
 
-                 {
 
-                     JobID = jobid;
 
-                     Latitude = row.Get<Job, double>(X => X.SiteAddress.Location.Latitude);
 
-                     Longitude = row.Get<Job, double>(X => X.SiteAddress.Location.Longitude);
 
-                     break;
 
-                 }
 
-             }
 
-             if (JobID != Guid.Empty)
 
-                 Navigation.PopAsync();
 
-             else
 
-                 enableScanner(this);
 
-         }
 
-         private async void animateFlash(object sender, BarcodeEventArgs e)
 
-         {
 
-             Device.BeginInvokeOnMainThread(async () =>
 
-             {
 
-                 await flash.FadeTo(1, 150, Easing.CubicInOut);
 
-                 flash.Opacity = 0;
 
-                 await ProcessBarcode(e.Barcode.Result);
 
-             });
 
-         }
 
-         ~BarcodeForm()
 
-         {
 
-             disableScanner(this);
 
-             MessagingCenter.Unsubscribe<App>(this, App.MessageOnSleep);
 
-             MessagingCenter.Unsubscribe<App>(this, App.MessageOnResume);
 
-             barcodeScanner.BarcodeChanged -= animateFlash;
 
-         }
 
-     }
 
- }
 
 
  |