Пример #1
0
 public void OpenStorageUI(StorageObject storageObj)
 {
     storageCache = storageObj;
     storageCache.clientUpdatedDelegate += StorageUpdatedEvent;
     PopulateInventorySlots();
     SoundManager.PlayAtPosition("Rustle#", PlayerManager.LocalPlayer.transform.position);
 }
        public void AddEqualObjects()
        {
            StorageObject obj1 = new StorageObject(1);
            StorageObject obj2 = new StorageObject(1);

            Assert.False(obj1 == obj2);
            Assert.True(_comparer.Equals(obj1, obj2));

            long id1 = _store.AddObject(obj1);
            long id2 = _store.AddObject(obj2);

            Assert.That(id1, Is.EqualTo(id2));
            Assert.That(_store.Count, Is.EqualTo(1));

            Assert.That(_store.GetObject(id1), Is.EqualTo(obj1));
            Assert.That(_comparer.Equals(_store.GetObject(id1), obj2));

            _store.RemoveObject(id1);
            Assert.That(_store.GetObject(id2), Is.EqualTo(obj1));
            Assert.That(_store.Count, Is.EqualTo(1));

            _store.RemoveObject(id2);
            Assert.Throws <RpcException>(() => _store.GetObject(id2));
            Assert.That(_store.Count, Is.EqualTo(0));
        }
Пример #3
0
    // void OnEnable()
    // {
    //     StorageObject.OnChestOpen += CheckChest;
    // }

    // void OnDisable()
    // {
    //     StorageObject.OnChestOpen -= CheckChest;
    // }

    void CheckChest(StorageObject pChest)
    {
        if (pChest.UniqueID == ChestID)
        {
            Event.Invoke();
        }
    }
        public void CanConvertMultipleStorageObjectToJson()
        {
            var obj = new StorageObject("a/b/c", "TestContainer", DateTime.UtcNow, "12345", 54321, string.Empty,
                                        new Dictionary <string, string>());

            var obj2 = new StorageObject("a/b/d", "TestContainer", DateTime.UtcNow, "00000", 11111, string.Empty,
                                         new Dictionary <string, string>());

            var converter = new StorageObjectPayloadConverter();
            var payload   = converter.Convert(new List <StorageObject>()
            {
                obj, obj2
            });

            var result = JArray.Parse(payload);

            Assert.AreEqual(2, result.Count);

            var item = result[0];

            Assert.AreEqual("TestContainer/a/b/c", item["path"]);
            Assert.AreEqual(54321, item["size_bytes"]);
            Assert.AreEqual("12345", item["etag"]);

            var item2 = result[1];

            Assert.AreEqual("TestContainer/a/b/d", item2["path"]);
            Assert.AreEqual(11111, item2["size_bytes"]);
            Assert.AreEqual("00000", item2["etag"]);
        }
Пример #5
0
        public virtual StorageObjectID Create()
        {
            Guid internalID;

            do
            {
                internalID = Guid.NewGuid();
            }while (usedIDs.Contains(internalID));

            usedIDs.Add(internalID);

            var id  = new StorageObjectID(internalID);
            var obj = new StorageObject(this, id);

            storage.Add(id, obj);

            node_refcount.Add(id, 0);
            archivalstates.Add(id, ArchivalState.Unarchived);
            arrows_to_sink.Add(id, new Dictionary <string, List <StorageObjectID> >());
            arrows_to_source.Add(id, new Dictionary <string, List <StorageObjectID> >());
            arrows_to_sink_inverse.Add(id, new Dictionary <StorageObjectID, List <string> >());
            arrows_to_source_inverse.Add(id, new Dictionary <StorageObjectID, List <string> >());

            Messages.Add(new IOMessage(id, IOEvent.ObjectCreated));

            return(id);
        }
Пример #6
0
 public void OpenStorageUI(StorageObject storageObj)
 {
     storageCache = storageObj;
     storageCache.clientUpdatedDelegate += StorageUpdatedEvent;
     PopulateInventorySlots();
     SoundManager.PlayAtPosition("Rustle0" + UnityEngine.Random.Range(1, 6).ToString(), PlayerManager.LocalPlayer.transform.position);
 }
        public async Task <bool> SetData([FromBody] StorageObject dataObject)
        {
            bool ok = false;


            try
            {
                if (dataObject == null ||
                    dataObject.Key == null ||
                    dataObject.Key.Length == 0 ||
                    dataObject.Data == null ||
                    dataObject.Data.Length == 0)
                {
                    return(ok);
                }
                var task = new Task(() =>
                {
                    ok = DataCache.SetDataObject(dataObject);
                });

                task.Start();

                await task;
            }
            catch (Exception) {
                return(false);
            }

            return(ok);
        }
Пример #8
0
    private void SaveAndLoadObject()
    {
        var testObject = new StorageObject
        {
            Number = 26,
            String = "Hello World"
        };

        UnnyNet.Storage.Save(TEST_COLLECTION, TEST_KEY_OBJECT, testObject, saveResponse =>
        {
            Debug.Log("Save object " + saveResponse.Success);
            UnnyNet.Storage.Load <StorageObject>(TEST_COLLECTION, TEST_KEY_OBJECT, loadResponse =>
            {
                Debug.Log("Load object " + loadResponse.Success);
                if (loadResponse.Success)
                {
                    if (loadResponse.Data != null)
                    {
                        var loadedObject = loadResponse.Data.Value;
                        Debug.LogWarning("Loaded Value: number = " + loadedObject.Number + " ; string = " + loadedObject.String);
                    }
                    else
                    {
                        Debug.LogError("Data is null");
                    }
                }
            });
        });
    }
Пример #9
0
    public void Apply()
    {
        TargetStorage = GetComponent <StorageObject>();

        if (TargetStorage.GetType() == typeof(PlayerInventory))
        {
            VariableName = "PlayerInventory";
        }
        else
        {
            VariableName = "Chest " + TargetStorage.Level + " " + transform.position.x.ToString() + "," + transform.position.y.ToString();
        }

        //        print(VariableName);
        int slotAmount = DialogueLua.GetVariable(VariableName + "SlotAmount").asInt;

        TargetStorage.Init = DialogueLua.GetVariable(VariableName + "Init").asBool;


        for (int i = 0; i < slotAmount; i++)
        {
            int    itemAmount         = DialogueLua.GetVariable(VariableName + "StackAmount" + i).asInt;
            string itemName           = DialogueLua.GetVariable(VariableName + "StackItem" + i).asString;
            string itemType           = DialogueLua.GetVariable(VariableName + "StackItemType" + i).asString;
            ItemSystem.ItemTypes type = (ItemSystem.ItemTypes)System.Enum.Parse(typeof(ItemSystem.ItemTypes), itemType);

            ItemBase item        = ItemSystem.Instance.GetItemClone(itemName);
            int      amountAdded = TargetStorage.Add(item, (uint)itemAmount);
            int      amountLeft  = itemAmount - amountAdded;
            if (amountLeft > 0)
            {
                Debug.LogWarning("Saver could not add all items to storage: " + TargetStorage.Name);
            }
        }
    }
Пример #10
0
        /// <summary>
        /// Given a path, will create all folders in that path, even if some already exist.
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        /// <exception cref="ApiException"></exception>
        public StorageObject CreateAllFoldersInPath(string path)
        {
            if (string.IsNullOrEmpty(path) | path == "/")
            {
                throw new ApiException(157, "Invalid path provided, please supply one or more folders to be created");
            }

            path = path.Trim('/');
            if (path.Length > 1024)
            {
                throw new ApiException(157, "Path length must be less than 1024 characters");
            }

            var folderPaths = path.Split('/', StringSplitOptions.RemoveEmptyEntries);

            StorageObject folderThusFar = null;
            var           pathThusFar   = "/";

            foreach (var folderPath in folderPaths)
            {
                // Try to create the folder
                try
                {
                    var createFolder = new CreateFolder(pathThusFar, folderPath);
                    folderThusFar = _foldersApi.CreateFolder(createFolder);
                }
                // catch any exceptions
                // in the case the folder already exists, we do not want to throw as this is expected
                catch (ApiException e)
                {
                    var errorResponse = e.ProblemDetails();
                    if (!(errorResponse is { Code: 664 }))
Пример #11
0
    private void ShowUI(StorageObject pObj)
    {
        StorageUI = GameObject.FindObjectOfType <StorageTransferUI>();
        StorageUI.Open(pObj);

        PixelCrushers.MessageSystem.SendMessage(gameObject, "OpenStorage", UniqueID);
    }
        private void OnUndo(SampleState state, StorageObject storage)
        {
            var lastValue = state.HelloString;

            state.HelloString = (string)storage.Get("hello");
            storage.Set("hello", lastValue);
        }
Пример #13
0
    public override async Task <object> Get <T>(T controller, string key)
    {
        var e  = new StorageObject(controller.Alias, key);
        var so = await e.GetEntity();

        return(so.Deserialize());
    }
        public static bool GetStorageObject(QueryObject QueryObject, ref StorageObject storageResult)
        {
            bool            ok;
            QueueMainObject itemResultMain = null;

            ok = DataCache.UserDataCache.TryGetValue(QueryObject.Key, out itemResultMain);
            if (ok)
            {
                bool ok2 = itemResultMain.Queue.TryDequeue(out storageResult);
                if (ok2)
                {
                    QueryObject.Status     = QueueStatus.Ongoing;
                    QueryObject.DataObject = storageResult;
                }
                else
                {
                    QueryObject.Status = QueueStatus.CompleteMayBeDisposed;
                }
            }
            else
            {
                QueryObject.Status = QueueStatus.CompleteMayBeDisposed;
            }

            return(ok);
        }
Пример #15
0
        private async Task <bool> WriteStorageObject(StorageObject storageObject)
        {
            var storageObjectJson = Newtonsoft.Json.JsonConvert.SerializeObject(storageObject);

            System.IO.File.WriteAllText(_storageOptions.Value.IdentifyFileName, storageObjectJson);

            return(true);
        }
 public void Open(StorageObject pCurrentStorage)
 {
     StorageUI.CurrentStorage         = pCurrentStorage;
     StorageUI.Title.text             = pCurrentStorage.Name;
     PlayerInventoryUI.CurrentStorage = GameManager.Instance.Player.GetComponent <PlayerInventory>();
     PlayerInventoryUI.Title.text     = PlayerInventoryUI.CurrentStorage.Name;
     IsOpen = true;
     GetComponent <WindowToggle>().Open();
 }
Пример #17
0
 public void Open(StorageObject pStoreInventory, Store pCurrentStore)
 {
     PlayerInventory = GameManager.Instance.Player.GetComponent <PlayerInventory>();
     BasketInventory = GetComponent <StorageObject>();
     StoreInventory  = pStoreInventory;
     CurrentStore    = pCurrentStore;
     TitleText.text  = CurrentStore.Name;
     DrawStore();
     DrawBasket();
     GetComponent <WindowToggle>().Open();
 }
Пример #18
0
 public void StorageObject()
 {
     if (objectToGrab != null)
     {
         truck.DepositABox(objectToGrab.gameObject);
         objectToGrab       = null;
         truck              = null;
         isHoldingSomething = false;
         isGoingToTruck     = false;
     }
 }
Пример #19
0
    public void CloseStorageUI()
    {
        storageCache.clientUpdatedDelegate -= StorageUpdatedEvent;
        storageCache = null;

        for (int i = localSlotCache.Count - 1; i >= 0; i--)
        {
            InventorySlotCache.Remove(localSlotCache[i]);
            Destroy(localSlotCache[i].transform.parent.gameObject);
        }
        localSlotCache.Clear();
    }
 public static MediaItem UriToMediaItem(this string uri, StorageObject item)
 {
     return(new MediaItem
     {
         Id = uri,
         Title = item.Name,
         Icon = UmbracoIcons.MediaFile,
         HasChildren = false,
         PreviewImageUrl = uri,
         Selectable = true,
         MetaData = item.Metadata
     });
 }
Пример #21
0
        public Stream GetObjectContent(string bucketName, string objectName)
        {
            Bucket        bucket = getBucket(bucketName, true);
            StorageObject obj    = _dataContext.FindObject(bucket, objectName);

            if (obj == null)
            {
                throw new ArgumentException($"Object with name {objectName} does not exist");
            }
            string path = Path.Combine(_fsRoot, bucket.Name, obj.Id);

            return(new FileStream(path, FileMode.Open, FileAccess.Read));
        }
Пример #22
0
    public override void Start()
    {
        base.Start();
        TargetStorage = GetComponent <StorageObject>();

        if (TargetStorage.GetType() == typeof(PlayerInventory))
        {
            VariableName = "PlayerInventory";
        }
        else
        {
            VariableName = "Chest " + TargetStorage.Level + " " + transform.position.x.ToString() + "," + transform.position.y.ToString();
        }
    }
Пример #23
0
    public void CloseStorageUI()
    {
        SoundManager.PlayAtPosition("Rustle0" + UnityEngine.Random.Range(1, 6).ToString(), PlayerManager.LocalPlayer.transform.position);

        storageCache.clientUpdatedDelegate -= StorageUpdatedEvent;
        storageCache = null;

        for (int i = localSlotCache.Count - 1; i >= 0; i--)
        {
            InventorySlotCache.Remove(localSlotCache[i]);
            Destroy(localSlotCache[i].transform.parent.gameObject);
        }
        localSlotCache.Clear();
    }
Пример #24
0
    StorageObject GetInventory(string pObjName)
    {
        GameObject obj = GameObject.Find(pObjName);

        if (obj != null)
        {
            StorageObject storage = obj.GetComponent <StorageObject>();
            if (storage != null)
            {
                return(storage);
            }
        }
        return(null);
    }
        public static bool SetDataObject(StorageObject dataObject)
        {
            bool            ok;
            QueueMainObject ItemResultMain;

            ok = DataCache.UserDataCache.TryGetValue(dataObject.Key, out ItemResultMain);

            if (!ok)
            {
                ItemResultMain = CreateKey(dataObject.Key);
                ok             = DataCache.UserDataCache.TryAdd(dataObject.Key, ItemResultMain);
            }

            ItemResultMain.Queue.Enqueue(dataObject);
            return(ok);
        }
        public async Task <IHttpActionResult> Create(StorageObject cloudObject)
        {
            cloudObject.ModifiedOn = cloudObject.CreatedOn = DateTime.UtcNow;

            var entity = await AppDatabase.Storage.FindAsync(cloudObject.ObjectId);

            if (entity != null)
            {
                return(BadRequest("ObjectId is in use"));
            }

            AppDatabase.Storage.Add(cloudObject);
            await AppDatabase.SaveChangesAsync();

            return(Ok(cloudObject.GetData()));
        }
Пример #27
0
        /// <summary>
        /// UpdateStorage method updates Storage table and a note value in Notes table if Note hasn't been changed
        /// </summary>
        /// <param name="storageObject"></param>
        /// <param name="userId"></param>
        /// <returns>bool</returns>
        public bool UpdateStorage(int userId, StorageObject storageObject)
        {
            //define method execution return value to be false by default
            var retMthdExecResult = false;
            int distillerId       = _dl.GetDistillerId(userId);

            if (storageObject != null)
            {
                try
                {
                    var storRes =
                        from storRecord in _db.Storage
                        where storRecord.StorageID == storageObject.StorageId &&
                        storRecord.DistillerID == distillerId
                        select storRecord;

                    var storItem = storRes.FirstOrDefault();

                    if (storItem.Name != storageObject.StorageName || storageObject.Note != null)
                    {
                        storItem.Name = storageObject.StorageName;
                    }

                    if (storItem.SerialNumber != storageObject.SerialNumber || storageObject.Note != null)
                    {
                        storItem.SerialNumber = storageObject.SerialNumber;
                    }

                    if (storItem.Note != storageObject.Note || storageObject.Note != null)
                    {
                        storItem.Note = storageObject.Note;
                    }

                    _db.SaveChanges();
                    retMthdExecResult = true;
                }
                catch (Exception e)
                {
                    Debug.WriteLine("Failed to update Storage Record : " + e);
                    retMthdExecResult = false;
                }
            }

            return(retMthdExecResult);
        }
Пример #28
0
 public void FreeThePlayer()
 {
     if (objectToInteract != null && isWorking)
     {
         objectToInteract = null;
         EndWork();
         influenceArea.transform.localScale     *= 0.5f;
         GetComponent <CapsuleCollider>().radius = influenceArea.transform.localScale.x / 2;
     }
     if (objectToGrab != null && !isGoingToBox && !isHoldingSomething)
     {
         objectToGrab = null;
     }
     if (objectToGrab != null && isHoldingSomething && !isGoingToTruck)
     {
         truck = null;
     }
 }
        public async Task <IHttpActionResult> Sync(StorageObject cloudObject)
        {
            var entity = await AppDatabase.Storage.FindAsync(cloudObject.ObjectId);

            // create ?
            if (entity == null)
            {
                return(await Create(cloudObject));
            }

            // Update if newer
            if (entity.ModifiedOn < cloudObject.ModifiedOn)
            {
                return(await Update(cloudObject));
            }

            // return old
            return(Ok(entity.GetData()));
        }
        public async Task <IHttpActionResult> Update(StorageObject cloudObject)
        {
            var entity = await AppDatabase.Storage.FindAsync(cloudObject.ObjectId);

            if (entity == null)
            {
                return(await Create(cloudObject));
            }

            // ACL
            switch (entity.AclType)
            {
            case StorageACLType.Admin:
                if (!User.Identity.IsAuthenticated)
                {
                    return(Unauthorized());
                }
                break;

            case StorageACLType.User:
                if (UserId != entity.AclParam)
                {
                    return(Unauthorized());
                }
                break;
            }

            if (entity.ObjectType != cloudObject.ObjectType)
            {
                //would cause caching errors
                return(BadRequest("Can not change object type"));
            }

            entity.ModifiedOn  = DateTime.UtcNow;
            entity.ObjectData  = cloudObject.ObjectData;
            entity.ObjectScore = cloudObject.ObjectScore;

            //  Context.Update(entity);
            await AppDatabase.SaveChangesAsync();

            return(Ok(entity.GetData()));
        }
Пример #31
0
 /// <summary>
 /// ストレージ オブジェクトをデータ ソース内のデータで更新します。
 /// </summary>
 /// <param name="refreshMode">更新モードを表す値。</param>
 /// <param name="obj">更新するストレージ オブジェクト。</param>
 public override void RefreshObject(RefreshMode refreshMode, StorageObject obj)
 {
     this.Target.RefreshObject(refreshMode, obj);
 }
Пример #32
0
 /// <summary>
 /// ストレージ オブジェクトをストレージからデタッチします。
 /// </summary>
 /// <param name="obj">デタッチするストレージ オブジェクト。</param>
 public override void DetachObject(StorageObject obj)
 {
     this.Target.DetachObject(obj);
 }