//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
            }
        }
示例#3
0
        //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
                }
            }
        }
示例#4
0
        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");
                }
            }
        }
示例#6
0
        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)
                            {
                            }
                        }
                    }
                }
            }
        }