Beispiel #1
0
        public async Task SyncItems()
        {
            try
            {
                IsLoading = true;
                var Table = OfflineManager.GetOfflineSyncTableReference <Item>();
                if (Connectivity.NetworkAccess == NetworkAccess.Internet)
                {
                    await OfflineManager.PushAsync();

                    await OfflineManager.PullAsync <Item>(Table);

                    await NavigationHelper.PopPageAsync();

                    await NavigationHelper.NavigateToPageAsync(new HomePage());
                }
                else
                {
                    await PopUpsHelper.DisplayMessage("Connection Error", "Please Connect your phone to the internet", "OK");

                    IsLoading = false;
                }
            }
            catch (Exception ex)
            {
                IsLoading = false;
                await PopUpsHelper.DisplayMessage("Sync Error", "Error While Syncing new products", "OK");
            }
        }
Beispiel #2
0
    protected override void OnLoading()
    {
        base.OnLoading();
        omgr = DataManager.Manager <OfflineManager>();
        if (null != m_btn_OneCheck)
        {
            mtCheck1 = m_btn_OneCheck.GetComponent <UIToggle>();
        }

        if (null != m_btn_TwoCheck)
        {
            mtCheck2 = m_btn_TwoCheck.GetComponent <UIToggle>();
        }

        if (!m_ctor_ItemGridScrollView.Visible)
        {
            m_ctor_ItemGridScrollView.SetVisible(true);
        }
        if (null != m_ctor_ItemGridScrollView && null != m_trans_UIOfflineRewardGrid)
        {
            m_ctor_ItemGridScrollView.RefreshCheck();
            m_ctor_ItemGridScrollView.Initialize <UIOfflineRewardGrid>(m_trans_UIOfflineRewardGrid.gameObject, OnUpdateGridData, OnUIEventCallback);
            //m_ctor_ItemGridScrollView.Initialize<UIOfflineRewardGrid>((uint)GridID.Uiofflinerewardgrid, UIManager.OnObjsCreate, UIManager.OnObjsRelease, OnUpdateGridData, OnUIEventCallback);
        }
        mlstRewardItems = new List <BaseItem>();
    }
Beispiel #3
0
 private void Connectivity_ConnectivityChanged(object sender, Xamarin.Essentials.ConnectivityChangedEventArgs e)
 {
     if (e.NetworkAccess != NetworkAccess.Internet)
     {
         _offlineManager = null;
         _offlineManager = OfflineManager.GetInstance(Application.Context);
     }
 }
Beispiel #4
0
 void GetReferences()
 {
     offlineManager = FindObjectOfType <OfflineManager>();
     playFabLogin   = FindObjectOfType <PlayfabNoEmailLogin>();
     // playFab = FindObjectOfType<PlayFabLogin>();
     internetManager = FindObjectOfType <InternetManager>();
     gameloader      = FindObjectOfType <GameLoader>();
     popupManager    = FindObjectOfType <PopupManager>();
 }
Beispiel #5
0
        /// <summary>
        /// Общая логика модификации данных: вставка и обновление в зависимости от статуса.
        /// Используется в Post (вставка) и Patch (обновление).
        /// </summary>
        /// <param name="edmEntity"> Модифицируемая сущность. </param>
        /// <param name="key"> Ключ сущности. Использовать, если не задан в сущности, но специфичен (не д.б. сгенерирован). </param>
        /// <returns> Созданная сущность. </returns>
        private DataObject UpdateObject(EdmEntityObject edmEntity, object key)
        {
            Init();

            // Список объектов для обновления.
            List <DataObject> objs = new List <DataObject>();

            try
            {
                // Создадим объект данных по пришедшей сущности.
                // В переменной objs сформируем список всех объектов для обновления в нужном порядке: сам объект и зависимые всех уровней.
                DataObject obj = GetDataObjectByEdmEntity(edmEntity, key, objs);

                for (int i = 0; i < objs.Count; i++)
                {
                    if (_newDataObjects[objs[i]])
                    {
                        if (!ExecuteCallbackBeforeCreate(objs[i]))
                        {
                            objs.RemoveAt(i);
                            i++;
                        }
                    }
                    else
                    {
                        if (!ExecuteCallbackBeforeUpdate(objs[i]))
                        {
                            objs.RemoveAt(i);
                            i++;
                        }
                    }
                }

                if (!OfflineManager.UnlockObjects(QueryOptions, objs))
                {
                    throw new OperationCanceledException(); // TODO
                }
                // Обработка объектов данных в хранилище средствами сервиса данных.
                // Статусы объектов должны автоматически получиться верными, т.к. в GetDataObjectByEdmEntity объект создаем
                // только при неудачной попытке вычитки и лишь затем инициализируем свойства пришедшими значениями.
                var objsArr = objs.ToArray();

                // Список объектов для обновления без UnAltered.
                var objsArrSmall = objsArr.Where(t => t.GetStatus() != ObjectStatus.UnAltered).ToArray();

                _dataService.UpdateObjects(ref objsArrSmall);

                // При успешном обновлении вычищаем из файловой системы, файлы подлежащие удалению.
                FileController.RemoveFileUploadDirectories(_removingFileDescriptions);
                return(obj);
            }
            catch (Exception)
            {
                _removingFileDescriptions.Clear();
                throw;
            }
        }
 public OfflineManagerTest()
 {
     offlineManager = new OfflineManager(ws, kuzzle);
     offlineManager.MaxQueueSize           = -1;
     offlineManager.MaxRequestDelay        = 1000;
     offlineManager.MinTokenDuration       = 3600000;
     offlineManager.RefreshedTokenDuration = 3600000;
     offlineManager.QueueFilter            = null;
     testableOfflineManager = new TestableOfflineManager(ws, kuzzle);
 }
        private Task <OfflineTilePyramidRegionDefinition> GetDefinition()
        {
            var tcs = new TaskCompletionSource <OfflineTilePyramidRegionDefinition>();

            OfflineManager.GetInstance(_context).ListOfflineRegions(new OfflineRegionCallback()
            {
                OnListCallback = regions =>
                {
                    tcs.SetResult(regions.Last().Definition as OfflineTilePyramidRegionDefinition);
                }
            });

            return(tcs.Task);
        }
Beispiel #8
0
        /// <summary>
        /// Initialize a new instance of the <see cref="T:Kuzzle.Kuzzle"/> class.
        /// </summary>
        public Kuzzle(
            AbstractProtocol networkProtocol,
            int refreshedTokenDuration       = 3600000,
            int minTokenDuration             = 3600000,
            int maxQueueSize                 = -1,
            int maxRequestDelay              = 1000,
            bool autoRecover                 = false,
            Func <JObject, bool> queueFilter = null
            )
        {
            NetworkProtocol = networkProtocol;
            NetworkProtocol.ResponseEvent += ResponsesListener;
            NetworkProtocol.StateChanged  += StateChangeListener;

            EventHandler = new KuzzleEventHandler(this);

            // Initializes the controllers
            Auth       = new AuthController(this);
            Collection = new CollectionController(this);
            Document   = new DocumentController(this);
            Index      = new IndexController(this);
            Realtime   = new RealtimeController(this);
            Server     = new ServerController(this);
            Bulk       = new BulkController(this);
            Admin      = new AdminController(this);

            Offline = new OfflineManager(networkProtocol, this)
            {
                RefreshedTokenDuration = refreshedTokenDuration,
                MinTokenDuration       = minTokenDuration,
                MaxQueueSize           = maxQueueSize,
                MaxRequestDelay        = maxRequestDelay,
                QueueFilter            = queueFilter,
                AutoRecover            = autoRecover
            };

            // Initializes instance unique properties
            Version = typeof(Kuzzle)
                      .GetTypeInfo()
                      .Assembly
                      .GetName()
                      .Version
                      .ToString();

            InstanceId = Guid.NewGuid().ToString();

            SdkName = $"csharp@{Version}";
        }
Beispiel #9
0
        private async void LoginButtonClicked()
        {
            if (Regex.IsMatch(UserName, "[^A-Za-z0-9]+"))
            {
                IsErrorShown = true;
                ErrorMessage = "Invalid User Name Only Chars and numbers are allowed";
            }
            else
            {
                IsLoading    = true;
                IsErrorShown = false;
                ErrorMessage = "";
                var UserTable = Client.GetTableReference <User>();
                var user      = await UserService.PostUserAsync(new User()
                {
                    Name = UserName
                });

                var UsersTable = OfflineManager.GetOfflineSyncTableReference <User>();
                var Users      = await OfflineManager.GetAllOfflineSyncItemsAsync <User>(UsersTable);

                if (!Users.Any(i => i.ID == SharedUser?.ID))
                {
                    await OfflineManager.InsertOfflineSyncObjectAsync <User>(new User()
                    {
                        Name = SharedUser?.Name, ID = SharedUser?.ID
                    }, UsersTable);
                }


                Application.Current.Properties["UserName"] = UserName;
                Application.Current.Properties["User"]     = user != null ? user : new User()
                {
                    Name = UserName
                };
                await NavigationHelper.NavigateToPageAsync(new HomePage());

                UserName  = null;
                IsLoading = false;
            }
        }
Beispiel #10
0
        public async Task GetAllItemsFromLocalDBAsync()
        {
            try
            {
                IsLoading = true;
                var Table  = OfflineManager.GetOfflineSyncTableReference <Item>();
                var result = await OfflineManager.GetAllOfflineSyncItemsAsync <Item>(Table);

                for (int i = 0; i < result?.Count; i++)
                {
                    result[i].SmallDetails = result[i].Details.Length > 51 ? result[i].Details.Substring(0, 50) : result[i].Details;
                }
                Filter(result);
                IsLoading = false;
            }
            catch (Exception ex)
            {
                IsLoading = false;
                await PopUpsHelper.DisplayMessage("Sync Error", "Error While Getting all offline products", "OK");
            }
        }
Beispiel #11
0
    private void PlayMovie_Start()
    {
        OfflineManager omgr = DataManager.Manager <OfflineManager>();

        omgr.mShowAdvertise = false;

        //设置相机参数
        string strCameraName = "MainCamera";

        Engine.ICamera cam = Engine.RareEngine.Instance().GetRenderSystem().GetCamera(ref strCameraName);
        if (cam == null)
        {
            return;
        }
        cam.SetFarClipPlane(250);


        if (cam.GetNode().GetTransForm().gameObject.GetComponent <PostRender.K3DPostRenderRadialBlur>() == null)
        {
            post = cam.GetNode().GetTransForm().gameObject.AddComponent <PostRender.K3DPostRenderRadialBlur>();
        }

        m_uSaveHeartTime = Protocol.Instance.SetHeartBeat(4000000);
    }
Beispiel #12
0
 public OfflineStorageService()
 {
     offlineManager = OfflineManager.GetInstance(Android.App.Application.Context);
     RunningTasks   = new List <TaskCompletionSource <OfflinePack> >();
 }
Beispiel #13
0
 public MapBoxOfflineService()
 {
     _offlineManager = OfflineManager.GetInstance(Application.Context);
     Connectivity.ConnectivityChanged += Connectivity_ConnectivityChanged;
 }
 private void Awake()
 {
     Manager = this;
 }
 public OfflineStorageService()
 {
     offlineManager = OfflineManager.GetInstance(Android.App.Application.Context);
 }