public static void GetServicesFromAllResponsibles(Delegates.GetAllServicesProvided success) { success += (mresponsibles) => responsibles = mresponsibles; FireBaseManager.GetFireBaseInstance().UpdateServicesFromAllResponsibles(responsibles, success, delegate(string error) { Debug.LogError("Erro ao pegar os servicos: " + error); }); }
void GetAllServices() { Delegates.GetAllServicesProvided getAllResponsiblesWithServices = CallbackGetAllServices; DataManager.GetServicesFromAllResponsibles(getAllResponsiblesWithServices); }
public void UpdateServicesFromAllResponsibles(List <ResponsibleModel> responsibles, Delegates.GetAllServicesProvided success, Delegates.GeneralListenerFail fail) { int count = 0; List <ResponsibleModel> responsiblesWithServices = responsibles; foreach (var responsible in responsibles) { FirebaseDatabase.DefaultInstance.GetReference(DBTable.Responsible.ToString()).Child(responsible.userID).Child(Parameters.servicesProvided.ToString()) .GetValueAsync().ContinueWith(task => { if (task.IsFaulted) { fail(task.Exception.ToString()); } else if (task.IsCompleted) { DataSnapshot snapshot = task.Result; List <ServicesProvidedModel> services = new List <ServicesProvidedModel> (); foreach (var service in snapshot.Children) { string json = service.GetRawJsonValue(); ServicesProvidedModel mservice = JsonUtility.FromJson <ServicesProvidedModel> (json); services.Add(mservice); } responsiblesWithServices [count].servicesProvided = services.ToDictionary(x => x.serviceID, x => (object)x); count++; if (count >= responsibles.Count) { success(responsiblesWithServices); } } }); } }