private void GetNewItemsListAndAddCurrent(NewItemsList currentNewItemsList) { FirebaseCommunicator.instance.GetObject(newItemsReferenceName, (task) => { if (task.IsFaulted) { Debug.Log("Error getting new items list: " + task.Exception.InnerException.Message); } else { NewItemsList newItemsListToSend; string json = task.Result.GetRawJsonValue(); if (string.IsNullOrEmpty(json)) { newItemsListToSend = currentNewItemsList; } else { NewItemsList oldNewItemsList = JsonConvert.DeserializeObject <NewItemsList>(json); newItemsListToSend = currentNewItemsList.Merge(oldNewItemsList); } SendNewItemsList(newItemsListToSend); } }); }
private void AddToNewItemsLog(int diseasedGoldLoss) { string itemName = null; if (DiseasedManager.instance.DiseasedItem != null) { itemName = DiseasedManager.instance.DiseasedItem.ItemNameKey; } NewItemsList currentNewItemsList = new NewItemsList(diseasedGoldLoss, itemQuantity, itemName); GetNewItemsListAndAddCurrent(currentNewItemsList); }
internal NewItemsList Merge(NewItemsList oldNewItemsList) { diseasedGoldLoss += oldNewItemsList.diseasedGoldLoss; foreach (var lootedItem in oldNewItemsList.lootedItems) { if (lootedItems.ContainsKey(lootedItem.Key)) { lootedItems[lootedItem.Key] += lootedItem.Value; } else { lootedItems.Add(lootedItem.Key, lootedItem.Value); } } return(this); }
private void SendNewItemsList(NewItemsList newItemsListToSend) { string json = JsonConvert.SerializeObject(newItemsListToSend); FirebaseCommunicator.instance.SendObject(json, newItemsReferenceName, (task) => { if (task.IsFaulted) { Debug.Log("Error sending new items list: " + task.Exception.InnerException.Message); } else if (task.IsCompleted) { Debug.Log("New items list sent!"); } }); }