示例#1
0
        public async override Task <SynchroManager.Status> Synchronize(SynchroHandle _syncHandle)
        {
            SynchroManager.Status _syncStatus = SynchroManager.Status.ErrorOrNotConnected;

            if (LoggedIn != WebAccountState.Connected)
            {
                await SyncMngr.Login(SynchroManager.ServerName.GooglePlus);
            }

            if (!Connection.InternetAccess())
            {
                return(_syncStatus);
            }

            ProgressUpdate(Res.GetString("SynchroStart"), 0);

            HttpResponseMessage _response = await(new HttpClient()).GetAsync(new Uri(MAIN + "?access_token=" + Token));

            if ((_response != null) && (_response.StatusCode == HttpStatusCode.OK))
            {
                ResponseFeed _feed = await Serialization.DeserializeHttpToXml <ResponseFeed>(_response.Content, "feed", "http://www.w3.org/2005/Atom") as ResponseFeed;
            }

            Trip _trip = await Trip.LoadFromSummary(_syncHandle.TripSummary);

            return(SynchroManager.Status.Synchronized);
        }
示例#2
0
        public void SetSynchroStatus(SynchroHandle _syncObj, SynchroManager.Status _status)
        {
            // not synchronized => rect not visible
            // synchronized but not connected => rect visible red
            // synchronized connected but not finished => rect visible orange
            // synchronized connected but finished => rect visible green

            Visibility      _visibility = Visibility.Collapsed;
            SolidColorBrush _color      = null;

            switch (_status)
            {
            case SynchroManager.Status.NoRequest:
                loadRing.IsActive = false;
                _color            = new SolidColorBrush(Colors.White);
                _timer.Stop();
                break;

            case SynchroManager.Status.ErrorOrNotConnected:
                loadRing.IsActive = false;
                _visibility       = Visibility.Visible;
                _color            = new SolidColorBrush(Colors.Red);
                _timer.Stop();
                break;

            case SynchroManager.Status.InProgress:
                loadRing.IsActive = true;
                _visibility       = Visibility.Visible;
                _color            = new SolidColorBrush(Colors.Orange);
                _handleProgress   = _syncObj;
                _timer.Start();
                break;

            case SynchroManager.Status.Synchronized:
                loadRing.IsActive = false;
                _visibility       = Visibility.Visible;
                _color            = new SolidColorBrush(Colors.Green);
                _timer.Stop();
                break;
            }

            _syncObj.UpdateRectangle(_visibility, _color);
        }
示例#3
0
        public async override Task <SynchroManager.Status> Synchronize(SynchroHandle _syncHandle)
        {
            SynchroManager.Status _syncStatus = SynchroManager.Status.ErrorOrNotConnected;

            if (!Connection.InternetAccess())
            {
                return(_syncStatus);
            }

            if (LoggedIn != WebAccountState.Connected)
            {
                await SyncMngr.Login(SynchroManager.ServerName.Facebook);
            }

            ProgressUpdate(Res.GetString("SynchroStart"), 0);

            Trip _trip = await Trip.LoadFromSummary(_syncHandle.TripSummary);

            return(SynchroManager.Status.Synchronized);
        }
示例#4
0
        public async override Task <SynchroManager.Status> Synchronize(SynchroHandle _syncHandle)
        {
            Boolean _status = true;

            SynchroManager.Status _syncStatus = SynchroManager.Status.NoRequest;

            if (LoggedIn != WebAccountState.Connected)
            {
                _syncHandleSav = _syncHandle;
                _status        = await SyncMngr.Login(SynchroManager.ServerName.Usb);
            }
            if (_status)
            {
                Trip _trip = await Trip.LoadFromSummary(_syncHandle.TripSummary);

                _status &= await SynchronizeTrip(_trip);

                ProgressFinished("");

                // check error status
                if (CancelInProgress())
                {
                    _syncStatus = SynchroManager.Status.NoRequest;
                }
                else if (!_status)
                {
                    _syncStatus = SynchroManager.Status.ErrorOrNotConnected;
                }
                else
                {
                    _syncStatus = SynchroManager.Status.Synchronized;
                }
            }
            else
            {
                _syncStatus = SynchroManager.Status.ErrorOrNotConnected;
            }

            _syncHandle.SetSynchroStatus(_syncStatus);
            return(_syncStatus);
        }
示例#5
0
 public void SetSynchroStatus(SynchroManager.Status _status)
 {
     tripDescUc.SetSynchroStatus(this, _status);
 }
示例#6
0
        public async override Task <SynchroManager.Status> Synchronize(SynchroHandle _syncHandle)
        {
            _handle = _syncHandle;

            SynchroManager.Status _syncStatus = SynchroManager.Status.ErrorOrNotConnected;

            if (!Connection.InternetAccess())
            {
                return(_syncStatus);
            }

            ProgressUpdate(Res.GetString("SynchroStart"), 0);

            //list top-folder, login if not logged (reentrant)
            ResponseContainer _folderDesc = await MetadataTopFolder(SyncMngr, true);

            if ((_folderDesc != null) && (_folderDesc.contents != null))
            {
                Boolean _status = true;

                List <String> _listTripNames = new List <string>();
                foreach (ResponseElement _element in _folderDesc.contents)
                {
                    if (_element.is_dir)
                    {
                        _listTripNames.Add(_element.path);
                    }
                }

                // check if trip folder name match, rename if necessary
                foreach (String _tripName in _listTripNames)
                {
                    // no error check since the folder may not exist
                    if ((_syncHandle.TripSummary.SyncDropbox.PreviousName != null) && (_syncHandle.TripSummary.SyncDropbox.PreviousName != ""))
                    {
                        if (_syncHandle.TripSummary.SyncDropbox.PreviousName == _tripName)
                        {
                            await RenameFolder(_tripName, _syncHandle.TripSummary.FolderTopName);
                        }
                    }

                    // check cancellation
                    if (CancelInProgress())
                    {
                        return(SynchroManager.Status.NoRequest);
                    }
                }

                Trip _trip = await Trip.LoadFromSummary(_syncHandle.TripSummary);

                UploadList = new List <UploadOperation>();

                _status &= await SynchronizeTrip(_trip);

                // check error status
                if (CancelInProgress())
                {
                    return(SynchroManager.Status.NoRequest);
                }
                else if (!_status)
                {
                    return(SynchroManager.Status.ErrorOrNotConnected);
                }

                _status &= await UploadAll(UploadList);

                // check error status
                if (CancelInProgress())
                {
                    _syncStatus = SynchroManager.Status.NoRequest;
                }
                else if (!_status)
                {
                    _syncStatus = SynchroManager.Status.ErrorOrNotConnected;
                }
                else
                {
                    _syncStatus = SynchroManager.Status.Synchronized;
                }

                return(_syncStatus);
            }
            else
            {
                ProgressFinished("");
                return(SynchroManager.Status.ErrorOrNotConnected);
            }
        }