public void OnDataChange(DataSnapshot snapshot) { DetailModel model = new DetailModel(); model.time = time; model.status = "Available"; model.location = snapshot.Child("distance")?.GetValue(true)?.ToString(); model.money = snapshot.Child("net_price")?.GetValue(true)?.ToString(); for (int i = 0; i < list.Count(); i++) { if (list[i].time.Equals(time)) { list[i] = model; break; } } adapter.NotifyDataSetChanged(); }
public void OnDataChange(DataSnapshot snapshot) { if (snapshot.Exists()) { arrayList.Clear(); string date = currentDate; for (int i = 9; i < 15; i++) { DetailModel model = new DetailModel(); model.time = i.ToString(); model.showtime = "Not Available"; model.location = ""; model.money = ""; model.date = date; arrayList.Add(model); } var obj = snapshot.Children; List <DetailModel> arrayListTemp = new List <DetailModel>(); for (int i = 0; i < arrayList.Count; i++) { arrayListTemp.Add(arrayList[i]); } foreach (DataSnapshot snapshotChild in obj.ToEnumerable()) { if (snapshotChild.GetValue(true) == null) { continue; } DetailModel model = new DetailModel(); model.showtime = "Available"; model.location = snapshotChild.Child("distance")?.GetValue(true)?.ToString(); model.money = snapshotChild.Child("net_price")?.GetValue(true)?.ToString(); model.emp_id = snapshotChild.Child("emp_id")?.GetValue(true)?.ToString(); var data = snapshotChild.Child("avaibility").Value; string output = JsonConvert.SerializeObject(data); var arraycombination = Newtonsoft.Json.JsonConvert.DeserializeObject <List <AvailablityModelClass> >(output); model.availableslotList = arraycombination; for (int i = 0; i < model.availableslotList.Count; i++) { for (int j = 0; j < arrayList.Count(); j++) { if (arrayList[j].time.Equals(model.availableslotList[i].availabletime) && date.Equals(model.availableslotList[i].availabledate) && model.availableslotList[i].status.Equals("true")) { model.time = model.availableslotList[i].availabletime; model.availabledate = model.availableslotList[i].availabledate; model.availabletime = model.availableslotList[i].availabletime; model.status = model.availableslotList[i].status; arrayListTemp[j] = model; break; } } } } arrayList.Clear(); arrayList = arrayListTemp; try { recyclerAdapter = new RecyclerViewAdapter(Activity, arrayList, recyclerView, (FirebaseAppDemo.DashboardActivity)Activity); recyclerView.SetAdapter(recyclerAdapter); } catch (Exception e) { } recyclerAdapter.NotifyDataSetChanged(); } else { arrayList.Clear(); for (int i = 9; i < 15; i++) { DetailModel model = new DetailModel(); model.time = i.ToString(); model.status = "Not Available"; model.location = ""; model.money = ""; arrayList.Add(model); } recyclerAdapter.NotifyDataSetChanged(); } if (progressBar != null) { progressBar.Visibility = ViewStates.Gone; } }