Exemplo n.º 1
0
        public void ToIsoDatabase()
        {
            try
            {
                IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
                using (JustRunDataContext db = new JustRunDataContext(JustRunDataContext.ConnectionString))
                {
                    db.CreateIfNotExists();
                    db.LogDebug = true;
                    var info = (User)settings["UserInfo"];
                    UserData a = new UserData();
                    a.Age = info.age;
                    a.Gender = info.gender;
                    a.Grade = info.grade;
                    a.Weight = info.weight;
                    db.UserDatas.InsertOnSubmit(a);
                    
                    db.SubmitChanges();
                    
                    
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }
        void DrawRoute(RunData item)
        {
            JustRunDataContext db = new JustRunDataContext(JustRunDataContext.ConnectionString);
            GeoCoordinateCollection geoCollection = new GeoCoordinateCollection();
            var geoCords = db.GeoCords.Where(p => p.No == item.No);
            foreach(var gc in geoCords)
            {
                GeoCoordinate _geoCord=new GeoCoordinate();
                _geoCord.Longitude=gc.Longitude;
                _geoCord.Latitude=gc.Latitude;
                geoCollection.Add(_geoCord);
            }
            if (geoCollection.Count != 0)
                Map.Center = geoCollection[0];
            else
            {
                MessageBox.Show(AppResources.NoGeoFoundMsg);
                NavigationService.GoBack();
                return;
            }
            Map.ZoomLevel = 16;
            Time.Text = item.Datetime.ToShortTimeString();
            Date.Text = item.Datetime.ToShortDateString();
            foreach (var geoCord in geoCollection)
            {
                _line.Path.Add(geoCord);
            }
            MapOverlay myLocationOverlay = new MapOverlay();
            BitmapImage tn = new BitmapImage();
            tn.SetSource(Application.GetResourceStream(new Uri(@"Assets/finishflag.png", UriKind.Relative)).Stream);
            Image img = new Image();
            img.Source = tn;
            img.Height = 80;
            img.Width = 80;
            myLocationOverlay.Content = img;
            myLocationOverlay.PositionOrigin = new Point(0.5, 0.5);
            myLocationOverlay.GeoCoordinate = geoCollection[geoCollection.Count - 1];

            MapLayer myLocationLayer = new MapLayer();
            myLocationLayer.Add(myLocationOverlay);

            myLocationOverlay = new MapOverlay();
            tn = new BitmapImage();
            tn.SetSource(Application.GetResourceStream(new Uri(@"Assets/GreenBall.png", UriKind.Relative)).Stream);
            img = new Image();
            img.Source = tn;
            img.Height = 25;
            img.Width = 25;
            myLocationOverlay.Content = img;
            myLocationOverlay.PositionOrigin = new Point(0.5, 0.5);
            myLocationOverlay.GeoCoordinate = geoCollection[0];

            myLocationLayer.Add(myLocationOverlay);
            Map.Layers.Add(myLocationLayer);
            Map.Center = geoCollection[geoCollection.Count / 2];
        }
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     if (NavigationContext.QueryString.ContainsKey("no"))
     {
         JustRunDataContext db = new JustRunDataContext(JustRunDataContext.ConnectionString);
         var data = db.RunDatas;
         RunData item = data.Single(p => p.No == int.Parse(NavigationContext.QueryString["no"]));
         DrawRoute(item);
     }
     //if (NavigationContext.QueryString.ContainsKey("item"))
     //{
     //    //int no = int.Parse(NavigationContext.QueryString["item"]);
     //    var item = (RunData)IsolatedStorageSettings.ApplicationSettings["TempData"];
     //    DrawRoute(item);
     //}
 }
        public static ObservableCollection<ChartDataContext> GetChartData(DateTime datetime, string type, int dayNumber)
        {
            JustRunDataContext db = new JustRunDataContext(JustRunDataContext.ConnectionString);
            ObservableCollection<ChartDataContext> values = new ObservableCollection<ChartDataContext>();
            var RunDatas = new List<RunData>();

            foreach (var item in db.RunDatas)
            {
                var a = item;
                // MessageBox.Show(a.Datetime.ToString());
                a.Datetime = item.Datetime.Date;
                //MessageBox.Show(a.Datetime.ToString());
                RunDatas.Add(a);

            }
            //MessageBox.Show(datetime.AddDays(-dayNumber).ToString());
            var data = from p in RunDatas
                       where p.Datetime >= datetime.AddDays(-dayNumber) && p.Datetime <= datetime
                       group p by p.Datetime into g
                       select new
                       {
                           _dateTime = g.Key,
                           _burnedCalories = g.Sum(p => p.BurnedCalories),
                           _distance = g.Sum(p => p.Distance)
                       };
            if (type == "Calories")
                foreach (var item in data)
                {
                    // MessageBox.Show(item.ToString());
                    values.Add(new ChartDataContext(item._dateTime.ToShortDateString(), item._burnedCalories));
                }
            if (type == "Distance")
                foreach (var item in data)
                {
                    values.Add(new ChartDataContext(item._dateTime.ToShortDateString(), (double)item._distance));
                }
            return values;
        }
        public static void ToGeoCordTable(GeoCoordinateCollection geoCordCollection, int No)
        {
            using (JustRunDataContext db = new JustRunDataContext(JustRunDataContext.ConnectionString))
            {
                db.CreateIfNotExists();
                db.LogDebug = true;
                foreach (var _geoCord in geoCordCollection)
                {
                    GeoCord geoCord = new GeoCord();
                    geoCord.No = No;
                    geoCord.Latitude = _geoCord.Latitude;
                    geoCord.Longitude = _geoCord.Longitude;
                    db.GeoCords.InsertOnSubmit(geoCord);
                }
                db.SubmitChanges();
                
            }

        }
        public static void ToIsoDatabase()
        {
            try
            {
                JustRunDataContext db = new JustRunDataContext(JustRunDataContext.ConnectionString);
                db.CreateIfNotExists();
                db.LogDebug = true;

                var data = (List<ARunData>)IsolatedStorageSettings.ApplicationSettings["RunData"];

                foreach (var item in data)
                {
                    RunData runData = new RunData();
                    runData.Duration = item.Duration;
                    runData.Distance = item.Distance;
                    runData.AvgPace = item.AvgPace;
                    runData.AvgSpeed = item.AvgSpeed;
                    runData.BurnedCalories = item.BurnedCalories;
                    runData.Datetime = item.datetime;
                    db.RunDatas.InsertOnSubmit(runData);
                    db.SubmitChanges();
                    var max = db.RunDatas.Max(p => p.No);

                    ARunData.ToGeoCordTable(item.geoCollection, max);

                }

            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }

        }
        /// <summary>
        /// Constructor for the Application object.
        /// </summary>
        public App()
        {
            // Global handler for uncaught exceptions.
            UnhandledException += Application_UnhandledException;

            // Standard XAML initialization
            InitializeComponent();

            // Phone-specific initialization
            InitializePhoneApplication();
            using (JustRunDataContext db = new JustRunDataContext(JustRunDataContext.ConnectionString))
            {
                db.CreateIfNotExists();
                db.LogDebug = true;
            }
            try
            {

                IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
                if (!settings.Contains("ReleaseCount")) // 1.0.0.2 version
                {
                    settings.Add("ReleaseCount", int.Parse(AppResources._ReleaseCount));
                   
                    if (!settings.Contains("NewRelease"))
                        settings.Add("NewRelease", true);
                    else
                        settings["NewRelease"] = true;

                    if (!settings.Contains("LaunchCount"))
                        settings.Add("LaunchCount", 0);
                    //else
                    //{
                    //    settings["LaunchCount"] = 0;
                    //}
                    
                }
                else
                {
                    if ((int)settings["ReleaseCount"] < int.Parse(AppResources._ReleaseCount))
                    {
                        if (!settings.Contains("NewRelease"))
                            settings.Add("NewRelease", true);
                        else
                            settings["NewRelease"] = true;

                        if (!settings.Contains("LaunchCount"))
                            settings.Add("LaunchCount", 0);

                    }
                }

                if (!settings.Contains("Voted"))
                    settings.Add("Voted", false);

                if (!settings.Contains("FirstRunAndNotRegistered"))
                {
                    using (JustRunDataContext db = new JustRunDataContext(JustRunDataContext.ConnectionString))
                    {
                        db.CreateIfNotExists();
                        db.LogDebug = true;
                        UserData userInfo = new UserData();
                        db.UserDatas.InsertOnSubmit(userInfo);
                        db.SubmitChanges();
                    }

                    AppSettings appSettings = new AppSettings();
                    appSettings._language = Thread.CurrentThread.CurrentCulture.Name;

                    if (!settings.Contains("NewRelease"))
                        settings.Add("NewRelease", true);
                    else
                    {
                        settings["NewRelese"] = true;
                    }

                    settings.Add("AppSettings", appSettings);
                    settings.Add("FirstRunAndNotRegistered", true); //TRUE or NOT FOUND means first run and haven't registered yet while   
                    // FALSE means IT"S NOT FIRST RUN & ALREADY REGISTERED!!
                }
               
                settings.Save();
            }

            catch
            {
            }
            // Language display initialization
            InitializeLanguage();


            // Show graphics profiling information while debugging.
            if (Debugger.IsAttached)
            {
                // Display the current frame rate counters.
                Application.Current.Host.Settings.EnableFrameRateCounter = true;

                // Show the areas of the app that are being redrawn in each frame.
                //Application.Current.Host.Settings.EnableRedrawRegions = true;

                // Enable non-production analysis visualization mode,
                // which shows areas of a page that are handed off to GPU with a colored overlay.
                //Application.Current.Host.Settings.EnableCacheVisualization = true;

                // Prevent the screen from turning off while under the debugger by disabling
                // the application's idle detection.
                // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
                // and consume battery power when the user is not using the phone.
                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;

            }

        }