//Método para cambiar la fase definitiva de la tabla de muestreo(Sampling) public async Task terminarFaseDef() { var client = new HttpClient { BaseAddress = new Uri("https://app-produ.herokuapp.com") }; var newFase = new Sampling { id = (int)Application.Current.Properties["id-sampling"], fase = 3, token = Application.Current.Properties["currentToken"].ToString() }; string jsonData = JsonConvert.SerializeObject(newFase); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); try { HttpResponseMessage response = await client.PostAsync("/samplings/changefase.json", content); if (response.StatusCode == HttpStatusCode.OK) { var result = await response.Content.ReadAsStringAsync(); var jobject = JObject.Parse(result); var data = JsonConvert.DeserializeObject <Sampling>(jobject["muestreo"].ToString()); Application.Current.Properties["fase"] = 3; } } catch (Exception) { //Error al realizar consulta al backend } }
//Método para obtener el muestreo actual public async Task obtenerSamplingAsync() { var client = new HttpClient { BaseAddress = new Uri("https://app-produ.herokuapp.com") }; var newSampling = new Sampling { id = (int)Application.Current.Properties["id-sampling"], token = Application.Current.Properties["currentToken"].ToString() }; string jsonData = JsonConvert.SerializeObject(newSampling); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); try { HttpResponseMessage response = await client.PostAsync("/samplings/getsampling.json", content); if (response.StatusCode == HttpStatusCode.OK) { var result = await response.Content.ReadAsStringAsync(); var jobject = JObject.Parse(result); var data = JsonConvert.DeserializeObject <Sampling>(jobject["muestreo"].ToString()); muestrasRestantesLabel.Text = "Muestras restantes: " + (data.cantMuestrasTotal - data.muestrasActual); muestrasActualesLabel.Text = "Muestras actuales: " + data.muestrasActual; } } catch (Exception) { //Error al realizar consulta al backend } }
//Método para aceptar los cálculos realizados. Guarda los valores y pasa a la siguiente fase private async Task aceptar_Clicked(object sender, EventArgs e) { //Caso en el que el nuevo N calculado sea menor al n ya realizado. Es decir, ya se hicieron las muestras necesarias if (n >= N) { Application.Current.Properties["definitive-done"] = 3; //Guarda este valor como 3 para saber que ocurrió este caso await guardarErrorZ(); //Guarda los datos de la etapa preliminar. La etapa definitiva la guarda en la página Recorridos this.Navigation.RemovePage(this.Navigation.NavigationStack[this.Navigation.NavigationStack.Count - 2]); //Hace pop a la página anterior await Navigation.PopAsync(); //Hace pop a esta página } else { var client = new HttpClient { BaseAddress = new Uri("https://app-produ.herokuapp.com") }; var newSampling = new Sampling { id = (int)Application.Current.Properties["id-sampling"], cantMuestras = 0, cantMuestrasTotal = N - n, token = Application.Current.Properties["currentToken"].ToString() }; string jsonData = JsonConvert.SerializeObject(newSampling); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); try { //Acá añade las nuevas muestras al registro en la base de datos HttpResponseMessage response = await client.PostAsync("/samplings/addmoresamplings.json", content); if (response.StatusCode == HttpStatusCode.OK) { var result = await response.Content.ReadAsStringAsync(); var jobject = JObject.Parse(result); var data = JsonConvert.DeserializeObject <Sampling>(jobject["muestreo"].ToString()); try { await guardarErrorZ(); this.Navigation.RemovePage(this.Navigation.NavigationStack[this.Navigation.NavigationStack.Count - 2]); //Hace pop de la página anterior await Navigation.PopAsync(); //Hace pop a esta página } catch (Exception) { //Error al realizar consulta al backend } } } catch (Exception) { //Error al realizar consulta al backend } } }
public async Task <bool> getSamplings(string nombreMuestreo) { try { var client = new HttpClient { BaseAddress = new Uri("https://app-produ.herokuapp.com") }; var userLogged = new User { id = (int)Application.Current.Properties["id-project"], token = Application.Current.Properties["currentToken"].ToString() }; string jsonData = JsonConvert.SerializeObject(userLogged); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync("/samplings/projectsamplings.json", content); response.EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); var jobject = JObject.Parse(responseBody); muestreos = JsonConvert.DeserializeObject <List <Sampling> >(jobject["samplings"].ToString()); Items = new ObservableCollection <Sampling> { }; for (int i = 0; i < muestreos.Count; i++) { Sampling pro = muestreos[i]; Items.Add(pro); Console.WriteLine(pro.nombre); if (pro.nombre == nombreMuestreo) { return(true); } } return(false); } catch (HttpRequestException e) { } return(false); }
private async Task agregarMuestras_Clicked(object sender, EventArgs e) { if (etapa == 1) { if (!String.IsNullOrEmpty(masMuestrasEntry.Text)) { var client = new HttpClient { BaseAddress = new Uri("https://app-produ.herokuapp.com") }; var newSampling = new Sampling { id = (int)Application.Current.Properties["id-sampling"], cantMuestras = System.Convert.ToInt32(masMuestrasEntry.Text), cantMuestrasTotal = System.Convert.ToInt32(masMuestrasEntry.Text), token = Application.Current.Properties["currentToken"].ToString() }; string jsonData = JsonConvert.SerializeObject(newSampling); Console.WriteLine("AQUI" + jsonData); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync("/samplings/addmoresamplings.json", content); Console.WriteLine(response.StatusCode.ToString()); if (response.StatusCode == HttpStatusCode.OK) { Console.WriteLine("AQUI2"); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result.ToString()); var jobject = JObject.Parse(result); Console.WriteLine("AQUI3" + jobject["muestreo"].ToString()); var data = JsonConvert.DeserializeObject <Sampling>(jobject["muestreo"].ToString()); try { Console.WriteLine("AQUI5"); Console.WriteLine(data.id + " & " + data.nombre); Application.Current.Properties["muestras-mas"] = System.Convert.ToInt32(masMuestrasEntry.Text); var recorridosPage = new Recorridos(true); await Navigation.PushAsync(recorridosPage); await PopupNavigation.Instance.PopAsync(true); } catch (Exception) { Console.WriteLine("AQUI6\nNo se pudo crear el muestreo"); //errorLabel.Text = "Error\nUsuario o contraseña inválido"; } } else { Console.WriteLine("AQUI6\nNo se pudo crear el muestreo"); //errorLabel.Text = "Error\nUsuario o contraseña inválido"; } } else { Console.WriteLine("AQUI6\nEspacios vacíos"); } } else { if (!String.IsNullOrEmpty(masMuestrasEntry.Text)) { var client = new HttpClient { BaseAddress = new Uri("https://app-produ.herokuapp.com") }; var newSampling = new Sampling { id = (int)Application.Current.Properties["id-sampling"], cantMuestras = 0, cantMuestrasTotal = System.Convert.ToInt32(masMuestrasEntry.Text), token = Application.Current.Properties["currentToken"].ToString() }; string jsonData = JsonConvert.SerializeObject(newSampling); Console.WriteLine("AQUI" + jsonData); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync("/samplings/addmoresamplings.json", content); Console.WriteLine(response.StatusCode.ToString()); if (response.StatusCode == HttpStatusCode.OK) { Console.WriteLine("AQUI2"); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result.ToString()); var jobject = JObject.Parse(result); Console.WriteLine("AQUI3" + jobject["muestreo"].ToString()); var data = JsonConvert.DeserializeObject <Sampling>(jobject["muestreo"].ToString()); try { Console.WriteLine("AQUI5"); Console.WriteLine(data.id + " & " + data.nombre); Application.Current.Properties["muestras-mas"] = System.Convert.ToInt32(masMuestrasEntry.Text); await PopupNavigation.Instance.PopAsync(true); } catch (Exception) { Console.WriteLine("AQUI6\nNo se pudo crear el muestreo"); //errorLabel.Text = "Error\nUsuario o contraseña inválido"; } } else { Console.WriteLine("AQUI6\nNo se pudo crear el muestreo"); //errorLabel.Text = "Error\nUsuario o contraseña inválido"; } } else { Console.WriteLine("AQUI6\nEspacios vacíos"); } } }
private async Task crearMue_Clicked(object sender, EventArgs e) { if (!String.IsNullOrEmpty(nombreMuestreoEntry.Text) && !String.IsNullOrEmpty(cantMuestrasEntry.Text)) { if (await getSamplings(nombreMuestreoEntry.Text) == false) { var client = new HttpClient { BaseAddress = new Uri("https://app-produ.herokuapp.com") }; var idType = samplingTypes.FirstOrDefault(x => x.Value == tipo.SelectedItem.ToString()).Key; var newSampling = new Sampling { nombre = nombreMuestreoEntry.Text, cantMuestras = System.Convert.ToInt32(cantMuestrasEntry.Text), cantMuestrasTotal = System.Convert.ToInt32(cantMuestrasEntry.Text), descripcion = descripcionMuestreoEditor.Text, fase = 1, sampling_type_id = idType, project_id = (int)Application.Current.Properties["id-project"], muestrasActual = 0, token = Application.Current.Properties["currentToken"].ToString() }; string jsonData = JsonConvert.SerializeObject(newSampling); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync("/samplings/newsampling.json", content); if (response.StatusCode == HttpStatusCode.Created) { var result = await response.Content.ReadAsStringAsync(); var jobject = JObject.Parse(result); var data = JsonConvert.DeserializeObject <Sampling>(jobject["muestreo"].ToString()); try { Application.Current.Properties["id-sampling"] = data.id; Application.Current.Properties["fase"] = data.fase; Application.Current.Properties["sampling-type-id"] = data.sampling_type_id; await crearFaseAsync(); var etapasPage = new Etapas(); await Navigation.PushAsync(etapasPage); this.Navigation.RemovePage(this.Navigation.NavigationStack[this.Navigation.NavigationStack.Count - 2]); } catch (Exception) { } } } else { await DisplayAlert("Error!", "El nombre del muestreo ya existe.", "OK"); } } else { await DisplayAlert("Error!", "Espacios vacíos!\nPor favor inserte el Nombre de Muestreo y la Cantidad de Muestras!", "OK"); } }
//Método que guarda la cantidad de muestras hechas public async Task guardarMuestras() { var client = new HttpClient { BaseAddress = new Uri("https://app-produ.herokuapp.com") }; var newSampling = new Sampling { id = (int)Application.Current.Properties["id-sampling"], muestrasActual = pG + qG, token = Application.Current.Properties["currentToken"].ToString() }; string jsonData = JsonConvert.SerializeObject(newSampling); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync("/samplings/addsamplings.json", content); if (response.StatusCode == HttpStatusCode.OK) { var result = await response.Content.ReadAsStringAsync(); var samplingResult = JsonConvert.DeserializeObject <Sampling>(result); //if para saber en cuál fase está if (samplingResult.fase == 1) { //if para saber si se llegó a la cantidad o si se sobrepasó. Si se sobrepasa se debe actualizar la cantidad en la base de datos if (samplingResult.muestrasActual == samplingResult.cantMuestras) { Application.Current.Properties["preliminar-done"] = 1; //Valor para saber si se finalizó la etapa preliminar } else if (samplingResult.muestrasActual > samplingResult.cantMuestras) { newSampling = new Sampling { id = samplingResult.id, cantMuestras = samplingResult.muestrasActual - samplingResult.cantMuestras, cantMuestrasTotal = samplingResult.muestrasActual - samplingResult.cantMuestras, token = Application.Current.Properties["currentToken"].ToString() }; jsonData = JsonConvert.SerializeObject(newSampling); content = new StringContent(jsonData, Encoding.UTF8, "application/json"); response = await client.PostAsync("/samplings/addmoresamplings.json", content); if (response.StatusCode == HttpStatusCode.OK) { result = await response.Content.ReadAsStringAsync(); try { var jobject = JObject.Parse(result); var data = JsonConvert.DeserializeObject <Sampling>(jobject["muestreo"].ToString()); Application.Current.Properties["preliminar-done"] = 1; } catch (Exception) { } } } } else { //if para saber si se llegó a la cantidad o si se sobrepasó. Si se sobrepasa se debe actualizar la cantidad en la base de datos if (samplingResult.muestrasActual == samplingResult.cantMuestrasTotal) { Application.Current.Properties["definitive-done"] = 1; //Valor para saber si se finalizó la etapa preliminar } else if (samplingResult.muestrasActual > samplingResult.cantMuestrasTotal) { newSampling = new Sampling { id = samplingResult.id, cantMuestras = 0, cantMuestrasTotal = samplingResult.muestrasActual - samplingResult.cantMuestrasTotal, token = Application.Current.Properties["currentToken"].ToString() }; jsonData = JsonConvert.SerializeObject(newSampling); content = new StringContent(jsonData, Encoding.UTF8, "application/json"); response = await client.PostAsync("/samplings/addmoresamplings.json", content); if (response.StatusCode == HttpStatusCode.OK) { result = await response.Content.ReadAsStringAsync(); try { var jobject = JObject.Parse(result); var data = JsonConvert.DeserializeObject <Sampling>(jobject["muestreo"].ToString()); Application.Current.Properties["definitive-done"] = 1; } catch (Exception) { } } } } } }