public async Task <List <Request_NEW> > populateReqsAsync() { var reqData = await firebaseClient .Child("requests") .OnceAsync <IDictionary <string, Object> >(); List <items> itemListN = new List <items>(); var fbItemList = await firebaseClient .Child("items") .OnceAsync <items>(); foreach (var item in fbItemList) { items itemActual = item.Object; itemActual.ID = item.Key; itemListN.Add(itemActual); } List <Request_NEW> reqListN = new List <Request_NEW>(); foreach (var area in reqData) { Request_NEW req = new Request_NEW(); req.ZoneID = area.Key; foreach (var requestID in area.Object) { Request currReq = JsonConvert.DeserializeObject <Request>(requestID.Value.ToString()); currReq.ID = requestID.Key; foreach (var item in currReq.Contents) { items itemF = itemListN.Find(x => x.ID == item.Key); items itemN = new items(itemF.BgCol, itemF.Icon, itemF.Name, itemF.Name_CL, itemF.Requested, item.Value, itemF.Limit); items itemR = new items(itemF.BgCol, itemF.Icon, itemF.Name, itemF.Name_CL, itemF.Requested, item.Value, itemF.Limit); itemN.ID = item.Key; itemR.ID = item.Key; currReq.addItem(itemN); req.addItem(itemR); } req.ReqList.Add(currReq); } reqListN.Add(req); } reqList = reqListN; itemList = itemListN; return(reqListN); }
public ArraySegment <byte> toReqAsync(FirebaseObject <IDictionary <string, object> > d) { //check if request in list Request_NEW req = new Request_NEW(); bool success = false; req.ZoneID = d.Key; req.ReqList.Clear(); req.ItemList.Clear(); foreach (var singularRequest in d.Object) { Request currReq; if (singularRequest.Value.ToString() == "System.Object") { currReq = firebaseClient .Child("requests") .Child(req.ZoneID) .Child(singularRequest.Key) .OnceSingleAsync <Request>() .Result; } else { currReq = JsonConvert.DeserializeObject <Request>(singularRequest.Value.ToString()); } currReq.ID = singularRequest.Key; foreach (var item in currReq.Contents) { items itemF = itemList.Find(x => x.ID == item.Key); items itemN = new items(itemF.BgCol, itemF.Icon, itemF.Name, itemF.Name_CL, item.Value, itemF.Requested, itemF.Limit); items itemR = new items(itemF.BgCol, itemF.Icon, itemF.Name, itemF.Name_CL, item.Value, itemF.Requested, itemF.Limit); itemN.ID = item.Key; itemR.ID = item.Key; req.addItem(itemR); } req.ReqList.Add(currReq); } reqList.RemoveAll(x => x.ZoneID == req.ZoneID); reqList.Add(req); ArraySegment <byte> bruh = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(req)); return(bruh); }