Example #1
0
        // GET: MonitorTemperatura

        public ActionResult Index()
        {
            // validar permiso a la acción del controlador
            // ==================================================================
            //                     VALIDA EL ACCESO
            // ==================================================================

            clsWebApi objServicio = new clsWebApi("url_api");

            List <clsModelLoginValidaWeb> pdatos = new List <clsModelLoginValidaWeb>();
            clsModelLoginValidaWeb        item   = new clsModelLoginValidaWeb();

            try
            {
                item.Usuario = Session["Usr"].ToString();
                item.Token   = Session["UsrToken"].ToString();
                item.Opcion  = strObjetoActual;
                pdatos.Add(item);

                IRestResponse task = Task.Run(() => objServicio.fnEjecutarPostObject(strRouteValidaOpcion, pdatos)).Result;

                if (task.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    Session["UsrUltMensaje"] = "Acceso denegado";
                    return(RedirectToAction("Failed", "Login"));
                }
            }
            catch (Exception ex)
            {
                string exMsg = ex.Message.ToString();
                return(RedirectToAction("NotFound", "ErrorHandler"));
            }
            // ==================================================================

            // el parametro tiene datos llena el grid
            clsWebApi objServicioDatos = new clsWebApi("url_api");

            List <clsModelUbicacionSensores> datos = new List <clsModelUbicacionSensores>();

            IRestResponse tskGet = Task.Run(() => objServicioDatos.fnEjecutarPostObject("Mov_Sensores/GetUbi", "")).Result;

            switch (tskGet.StatusCode)
            {
            case System.Net.HttpStatusCode.OK:
                Session["strUltMensajeController"] = "";
                datos = JArray.Parse(tskGet.Content).ToObject <List <clsModelUbicacionSensores> >();
                break;

            case System.Net.HttpStatusCode.NotFound:
                Session["UsrUltMensaje"] = "Not Found...";
                break;

            default:
                Session["UsrUltMensaje"] = "Error al recuperar " + tskGet.StatusCode.ToString() + " " + tskGet.Content.ToString();
                break;
            }


            return(View(datos));
        }
Example #2
0
        public JsonResult Datos()
        {
            clsWebApi objServicio = new clsWebApi("url_api");

            List<clsModelGraficas> lst = new List<clsModelGraficas>();

            // para envío de otros valores como parametros y como obetner datos en una variable de sesion
            //string ptoken = String.Format("pStrToken={0}&pIdEquipo={1}", Session["UsuarioToken"].ToString(), 0);
            //IRestResponse task = Task.Run(() => objServicio.fnEjecutarGetObject("Gamming/Obtener/Equipos?" + ptoken, "0")).Result;
            //IRestResponse task = Task.Run(() => objServicio.fnEjecutarPostObject("EF/GetAll", "")).Result;
            IRestResponse task = Task.Run(() => objServicio.fnEjecutarGetObject("Graficas/GetCultivo", "")).Result;

            if (task.StatusCode == System.Net.HttpStatusCode.OK)
            {
                ViewBag.strMensaje = "Datos recuperados...";
                lst = JArray.Parse(task.Content).ToObject<List<clsModelGraficas>>();
            }
            else if (task.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                ViewBag.strMensaje = "Error al consumir API.";
                ModelState.AddModelError("Error", "Error al consumir API.");
            }
            else
            {
                ViewBag.strMensaje = "Error al conectarse a la base de datos";
                ModelState.AddModelError("Error", "Error al conectarse a la base de datos");
            }

            clsGraficasFunciones clsGraficasFunciones = new clsGraficasFunciones();
            List<clsModelGraficaSeriesDona> lista = new List<clsModelGraficaSeriesDona>();
            lista = clsGraficasFunciones.fnGetSeriesDona(lst,"Cultivos");
            return Json(lista.ToList(), JsonRequestBehavior.AllowGet);
        }
Example #3
0
        public ActionResult PivotGridPartial()
        {
            clsWebApi objServicio = new clsWebApi("url_api");

            List <clsModelInvernadero> lst = new List <clsModelInvernadero>();

            // para envío de otros valores como parametros y como obetner datos en una variable de sesion
            //string ptoken = String.Format("pStrToken={0}&pIdEquipo={1}", Session["UsuarioToken"].ToString(), 0);

            //IRestResponse task = Task.Run(() => objServicio.fnEjecutarGetObject("Gamming/Obtener/Equipos?" + ptoken, "0")).Result;
            //IRestResponse task = Task.Run(() => objServicio.fnEjecutarPostObject("EF/GetAll", "")).Result;
            IRestResponse task = Task.Run(() => objServicio.fnEjecutarGetObject("CAT/GetAllInvernadero", "")).Result;

            if (task.StatusCode == System.Net.HttpStatusCode.OK)
            {
                ViewBag.strMensaje = "Datos recuperados...";
                lst = JArray.Parse(task.Content).ToObject <List <clsModelInvernadero> >();
            }
            else if (task.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                ViewBag.strMensaje = "Error al consumir API.";
                ModelState.AddModelError("Error", "Error al consumir API.");
            }
            else
            {
                ViewBag.strMensaje = "Error al conectarse a la base de datos";
                ModelState.AddModelError("Error", "Error al conectarse a la base de datos");
            }



            // var model = new object[0];
            return(PartialView("_PivotGridPartial", lst));
        }
Example #4
0
        public ActionResult GraficaPartial(Int32 ParametroCodigo)
        {
            //recupera las series
            clsWebApi objServicioDatos = new clsWebApi("url_api");

            List <clsModelGraficaSeriesName> modelo    = new List <clsModelGraficaSeriesName>();
            List <clsModelUbicacionSensores> param     = new List <clsModelUbicacionSensores>();
            clsModelUbicacionSensores        itemparam = new clsModelUbicacionSensores();

            itemparam.Codigo = ParametroCodigo;
            param.Add(itemparam);

            IRestResponse tskGet = Task.Run(() => objServicioDatos.fnEjecutarPostObject("Mov_Sensores/GetAllGraficaSeries", param)).Result;

            switch (tskGet.StatusCode)
            {
            case System.Net.HttpStatusCode.OK:
                Session["strUltMensajeController"] = "";
                modelo = JArray.Parse(tskGet.Content).ToObject <List <clsModelGraficaSeriesName> >();
                break;

            case System.Net.HttpStatusCode.NotFound:
                Session["UsrUltMensaje"] = "Not Found...";
                break;

            default:
                Session["UsrUltMensaje"] = "Error al recuperar " + tskGet.StatusCode.ToString() + " " + tskGet.Content.ToString();
                break;
            }

            Session["CodigoUbicacion"] = ParametroCodigo;
            return(PartialView("_GraficaPartial", modelo));
        }
Example #5
0
        //
        // GET: /Navbar/
        public ActionResult Index()
        {
            clsWebApi objServicio = new clsWebApi("url_api");

            List <clsModelOpcionesMenu> lst = new List <clsModelOpcionesMenu>();

            try
            {
                // para envío de otros valores como parametros y como obetner datos en una variable de sesion
                //string ptoken = String.Format("pStrToken={0}&pIdEquipo={1}", Session["UsuarioToken"].ToString(), 0);
                string pusuario = String.Format("Usuario={0}", Session["Usr"].ToString(), 0);

                IRestResponse task = Task.Run(() => objServicio.fnEjecutarGetObject("Menu/GetAll", pusuario)).Result;

                switch (task.StatusCode)
                {
                case System.Net.HttpStatusCode.OK:
                    ViewBag.strMensaje = "Datos recuperados...";
                    lst = JArray.Parse(task.Content).ToObject <List <clsModelOpcionesMenu> >();
                    break;

                case System.Net.HttpStatusCode.NotFound:
                    ViewBag.strMensaje = "Error al consumir API.";
                    ModelState.AddModelError("Error", "Error al consumir API.");
                    break;

                default:
                    ViewBag.strMensaje = "Error al conectarse a la base de datos";
                    ModelState.AddModelError("Error", "Error al conectarse a la base de datos");
                    break;
                }

                // var data = new  clsMenuData();
                //return PartialView("_Navbar", data.navbarItems().ToList());
                return(PartialView("_Navbar", lst));
            }
            catch (Exception ex)
            {
                string exMsg = ex.Message.ToString();
                return(RedirectToAction("NotFound", "ErrorHandler"));
            }
        }
Example #6
0
        public JsonResult DatosGrafica()
        {
            //se recupera el detalle para llenar el grid

            clsWebApi objServicioDatos = new clsWebApi("url_api");

            List <clsModelGraficasSTR>       datos     = new List <clsModelGraficasSTR>();
            List <clsModelUbicacionSensores> param     = new List <clsModelUbicacionSensores>();
            clsModelUbicacionSensores        itemparam = new clsModelUbicacionSensores();

            itemparam.Codigo = Convert.ToInt32(Session["CodigoUbicacion"].ToString());   //ParametroCodigo;
            param.Add(itemparam);

            IRestResponse tskGet = Task.Run(() => objServicioDatos.fnEjecutarPostObject("Mov_Sensores/GetAllGraficaData", param)).Result;

            switch (tskGet.StatusCode)
            {
            case System.Net.HttpStatusCode.OK:
                Session["strUltMensajeController"] = "";
                datos = JArray.Parse(tskGet.Content).ToObject <List <clsModelGraficasSTR> >();
                break;

            case System.Net.HttpStatusCode.NotFound:
                Session["UsrUltMensaje"] = "Not Found...";
                break;

            default:
                Session["UsrUltMensaje"] = "Error al recuperar " + tskGet.StatusCode.ToString() + " " + tskGet.Content.ToString();
                break;
            }

            //Session["PuntoInicio"] = datos[0].Periodo;

            clsGraficasFunciones         clsGraficasFunciones = new clsGraficasFunciones();
            List <clsModelGraficaSeries> lista = new List <clsModelGraficaSeries>();

            lista = clsGraficasFunciones.fnGetSeriesString(datos);
            return(Json(lista.ToList(), JsonRequestBehavior.AllowGet));
        }
Example #7
0
        // GET: /GraficasCultivos/
        public ActionResult Index()
        {
            // ==================================================================
            //                     VALIDA EL ACCESO
            // ==================================================================

            clsWebApi objServicio = new clsWebApi("url_api");

            List<clsModelLoginValidaWeb> pdatos = new List<clsModelLoginValidaWeb>();
            clsModelLoginValidaWeb item = new clsModelLoginValidaWeb();

            try
            {
                item.Usuario = Session["Usr"].ToString();
                item.Token = Session["UsrToken"].ToString();
                item.Opcion = strObjetoActual;
                pdatos.Add(item);

                IRestResponse task = Task.Run(() => objServicio.fnEjecutarPostObject(strRouteValidaOpcion, pdatos)).Result;

                if (task.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    return View();
                }
                else
                {
                    Session["UsrUltMensaje"] = "Acceso denegado";
                    return RedirectToAction("Failed", "Login");
                }
            }
            catch (Exception ex)
            {
                string exMsg = ex.Message.ToString();
                return RedirectToAction("NotFound", "ErrorHandler");
            }
            // ==================================================================
        }
Example #8
0
        public ActionResult PivotGridPartial()
        {
            clsWebApi objServicio = new clsWebApi("url_api");

            List <clsModelInventarioSemillas> lst = new List <clsModelInventarioSemillas>();

            // se envia opcion 0 para que muestre los campos del pivot grid
            List <clsModelInventarioSemillasOpciones> datos = new List <clsModelInventarioSemillasOpciones>();
            clsModelInventarioSemillasOpciones        item  = new clsModelInventarioSemillasOpciones();

            item.Opcion = 0;
            datos.Add(item);

            IRestResponse task = Task.Run(() => objServicio.fnEjecutarPostObject("IS/GetAll", datos)).Result;

            switch (task.StatusCode)
            {
            case System.Net.HttpStatusCode.OK:
                ViewBag.strMensaje = "Datos recuperados...";
                lst = JArray.Parse(task.Content).ToObject <List <clsModelInventarioSemillas> >();
                break;

            case  System.Net.HttpStatusCode.NotFound:
                ViewBag.strMensaje = "Error al consumir API.";
                ModelState.AddModelError("Error", "Error al consumir API.");
                break;

            default:
                ViewBag.strMensaje = "Error al conectarse a la base de datos";
                ModelState.AddModelError("Error", "Error al conectarse a la base de datos");
                break;
            }


            //var model = new object[0];
            return(PartialView("_PivotGridPartial", lst));
        }
Example #9
0
        public ActionResult Ingreso(clsModelLoginIngreso pDatos)
        {
            string accion      = "";
            string controlador = "";

            //Valida usuario y clave
            clsWebApi            objServicio = new clsWebApi("url_api");
            List <clsModelLogin> lst         = new List <clsModelLogin>();

            //using System.Configuration;
            string EncKeyBase = "";

            EncKeyBase = ConfigurationManager.AppSettings["enc_key_base"].ToString();
            clsEncryption Encryption = new clsEncryption(EncKeyBase);

            clsModelLogin item = new clsModelLogin();

            item.Usuario = pDatos.Usuario;
            item.EncPass = Encryption.fnGetEncrypt(pDatos.Clave);

            lst.Add(item);

            List <clsModelLogin> lsusuario = new List <clsModelLogin>();
            IRestResponse        task      = Task.Run(() => objServicio.fnEjecutarPostObject("Login/Ingreso", lst)).Result;

            if (task.StatusCode == System.Net.HttpStatusCode.OK)
            {
                lsusuario = JArray.Parse(task.Content).ToObject <List <clsModelLogin> >();

                Session["Usr"]       = lsusuario[0].Usuario;
                Session["UsrNombre"] = lsusuario[0].Nombre;
                Session["UsrToken"]  = lsusuario[0].Token;

                Session["UsrUltMensaje"] = "Acceso otorgado";

                accion      = "Index";
                controlador = "Home";
            }
            else if (task.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                Session["UsrUltMensaje"] = "No existe API de respuesta";

                accion      = "Failed";
                controlador = "Login";
            }
            else if (task.StatusCode == System.Net.HttpStatusCode.Unauthorized)
            {
                Session["UsrUltMensaje"] = task.Content.ToString();

                accion      = "Failed";
                controlador = "Login";
            }
            else
            {
                Session["UsrUltMensaje"] = "Error al consultar el API " + task.StatusDescription.ToString() + " " + task.StatusCode.ToString();
                accion      = "Failed";
                controlador = "Login";
            }

            //return RedirectToAction("Index", "Home");
            return(RedirectToAction(accion, controlador));
        }
Example #10
0
        public ActionResult Monitor(Int32 ParametroCodigo)
        {
            // ==================================================================
            //                     VALIDA EL ACCESO
            // ==================================================================

            clsWebApi objServicio = new clsWebApi("url_api");

            List <clsModelLoginValidaWeb> pdatos = new List <clsModelLoginValidaWeb>();
            clsModelLoginValidaWeb        item   = new clsModelLoginValidaWeb();

            try
            {
                item.Usuario = Session["Usr"].ToString();
                item.Token   = Session["UsrToken"].ToString();
                item.Opcion  = strAccionInterna1;
                pdatos.Add(item);

                IRestResponse task = Task.Run(() => objServicio.fnEjecutarPostObject(strRouteValidaOpcion, pdatos)).Result;

                if (task.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    //se recupera el detalle para llenar el grid

                    clsWebApi objServicioDatos = new clsWebApi("url_api");

                    List <clsModelMovSensores>       datos     = new List <clsModelMovSensores>();
                    List <clsModelUbicacionSensores> param     = new List <clsModelUbicacionSensores>();
                    clsModelUbicacionSensores        itemparam = new  clsModelUbicacionSensores();
                    itemparam.Codigo = ParametroCodigo;
                    param.Add(itemparam);

                    IRestResponse tskGet = Task.Run(() => objServicioDatos.fnEjecutarPostObject("Mov_Sensores/GetAll", param)).Result;

                    switch (tskGet.StatusCode)
                    {
                    case System.Net.HttpStatusCode.OK:
                        Session["strUltMensajeController"] = "";
                        datos = JArray.Parse(tskGet.Content).ToObject <List <clsModelMovSensores> >();
                        break;

                    case System.Net.HttpStatusCode.NotFound:
                        Session["UsrUltMensaje"] = "Not Found...";
                        break;

                    default:
                        Session["UsrUltMensaje"] = "Error al recuperar " + tskGet.StatusCode.ToString() + " " + tskGet.Content.ToString();
                        break;
                    }


                    return(View(datos));
                }
                else
                {
                    Session["UsrUltMensaje"] = "Acceso denegado";
                    return(RedirectToAction("Failed", "Login"));
                }
            }
            catch (Exception ex)
            {
                string exMsg = ex.Message.ToString();
                return(RedirectToAction("NotFound", "ErrorHandler"));
            }
        }
Example #11
0
        //[HttpPost]
        public ActionResult DetalleNivel0(Int16 id)
        {
            // validar permiso a la acción del controlador
            // ==================================================================
            //                     VALIDA EL ACCESO
            // ==================================================================

            clsWebApi objServicio = new clsWebApi("url_api");

            List <clsModelLoginValidaWeb> pdatos = new List <clsModelLoginValidaWeb>();
            clsModelLoginValidaWeb        item   = new clsModelLoginValidaWeb();

            try
            {
                item.Usuario = Session["Usr"].ToString();
                item.Token   = Session["UsrToken"].ToString();
                item.Opcion  = strAccionInterna0;
                pdatos.Add(item);

                IRestResponse task = Task.Run(() => objServicio.fnEjecutarPostObject(strRouteValidaOpcion, pdatos)).Result;

                if (task.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    Session["UsrUltMensaje"] = "Acceso denegado";
                    return(RedirectToAction("Failed", "Login"));
                }
            }
            catch (Exception ex)
            {
                string exMsg = ex.Message.ToString();
                return(RedirectToAction("NotFound", "ErrorHandler"));
            }
            // ==================================================================



            if (id == 0)
            {
                // no trae datos
                return(RedirectToAction("Index"));
            }
            else
            {
                // el parametro tiene datos llena el grid
                clsWebApi objServicioDatos = new clsWebApi("url_api");

                List <clsModelInventarioDsb>    datos     = new List <clsModelInventarioDsb>();
                List <clsModelInventarioDsbCns> param     = new List <clsModelInventarioDsbCns>();
                clsModelInventarioDsbCns        itemparam = new clsModelInventarioDsbCns();
                itemparam.Opccion = 0;
                itemparam.IdPadre = id;
                param.Add(itemparam);

                IRestResponse tskGet = Task.Run(() => objServicioDatos.fnEjecutarPostObject("InventarioDsb/GetAll", param)).Result;

                switch (tskGet.StatusCode)
                {
                case System.Net.HttpStatusCode.OK:
                    Session["strUltMensajeController"] = "";
                    datos = JArray.Parse(tskGet.Content).ToObject <List <clsModelInventarioDsb> >();
                    break;

                case System.Net.HttpStatusCode.NotFound:
                    Session["UsrUltMensaje"] = "Not Found...";
                    break;

                default:
                    Session["UsrUltMensaje"] = "Error al recuperar " + tskGet.StatusCode.ToString() + " " + tskGet.Content.ToString();
                    break;
                }


                return(View(datos));
            }
        }
Example #12
0
        public ActionResult Nuevo(clsModelUsuario pmov)
        {
            Boolean Continuar,ConDatos;
            Continuar = true;
            ConDatos = false;

            // ==================================================================
            //                     VALIDA EL ACCESO 
            // ==================================================================

            clsWebApi objServicio = new clsWebApi("url_api");

            List<clsModelLoginValidaWeb> pdatos = new List<clsModelLoginValidaWeb>();
            clsModelLoginValidaWeb item = new clsModelLoginValidaWeb();

            try
            {
                item.Usuario = Session["Usr"].ToString();
                item.Token = Session["UsrToken"].ToString();
                item.Opcion = strAccionInterna1;
                pdatos.Add(item);

                IRestResponse task = Task.Run(() => objServicio.fnEjecutarPostObject(strRouteValidaOpcion, pdatos)).Result;

                if (task.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    Session["UsrUltMensaje"] = "Acceso denegado";
                    return RedirectToAction("Failed", "Login");
                }
            }
            catch (Exception ex)
            {
                string exMsg = ex.Message.ToString();
                return RedirectToAction("NotFound", "ErrorHandler");
            }
            // ==================================================================


            //Valida si la clase tiene datos es decir si el modelo viene con valores
            PropertyInfo[] properties = typeof(clsModelUsuario).GetProperties();
            foreach (PropertyInfo property in properties)
            {
                //así obtenemos el nombre del atributo
                string NombreAtributo = property.Name;

                //así obtenemos el valor del atributo
                var Valor = property.GetValue(pmov);
                if (NombreAtributo.ToUpper() != "ESTADO")
                {
                    //EL CAMPO ESTADO SIEMPRE TIENE UN VALOR DEFAULT NO SE EVALUA
                    if (Valor != null)
                    {
                        //al menos un valor no esta nulo el modelo tiene datos
                        ConDatos = true;
                    }
                }

            }

            if (ConDatos)
            {
                // cuando tiene datos el modelo es porque usó la opción de grabar...

                //graba los valores
                List<clsModelUsuario> datos = new List<clsModelUsuario>();
                datos.Add(pmov);

                IRestResponse taskSet = Task.Run(() => objServicio.fnEjecutarPostObject("Usuario/Grabar", datos)).Result;

                switch (taskSet.StatusCode)
                {
                    case System.Net.HttpStatusCode.OK:
                        Session["strUltMensajeController"] = "Datos Grabados";
                        break;
                    case System.Net.HttpStatusCode.NotFound:
                        Session["strUltMensajeController"] = "Error al consumir servicio web.";
                        ModelState.AddModelError("Error", "Error al consumir servicio web.");
                        break;
                    default:
                        Session["strUltMensajeController"] = taskSet.Content.ToString();
                        ModelState.AddModelError("Error", "Error al conectarse a la base de datos");
                        break;
                }

                if (ModelState.IsValid)
                {
                    //despues de grabar llama el index
                    return RedirectToAction("Index");
                }
                else
                {
                    return View(pmov);
                }

            }
            else
            {
                 // algun valor esta nulo llena los datos 

            }

            var model = new clsModelUsuario();
            //Llenar valores predeterminados
            if (Continuar)
            {
                model.Estado = "AC";
            }
            
            return View(model);
        }
Example #13
0
        public ActionResult Eliminar(string id, clsModelUsuario itemgrabar)
        {

            // validar permiso a la acción del controlador
            // ==================================================================
            //                     VALIDA EL ACCESO 
            // ==================================================================

            clsWebApi objServicio = new clsWebApi("url_api");

            List<clsModelLoginValidaWeb> pdatos = new List<clsModelLoginValidaWeb>();
            clsModelLoginValidaWeb item = new clsModelLoginValidaWeb();

            try
            {
                item.Usuario = Session["Usr"].ToString();
                item.Token = Session["UsrToken"].ToString();
                item.Opcion = strAccionInterna3;
                pdatos.Add(item);

                IRestResponse task = Task.Run(() => objServicio.fnEjecutarPostObject(strRouteValidaOpcion, pdatos)).Result;

                if (task.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    Session["UsrUltMensaje"] = "Acceso denegado";
                    return RedirectToAction("Failed", "Login");
                }
            }
            catch (Exception ex)
            {
                string exMsg = ex.Message.ToString();
                return RedirectToAction("NotFound", "ErrorHandler");
            }
            // ==================================================================

            if (id == null || id == "")
            {
                // no trae datos
                return RedirectToAction("Index");
            }
            else
            {
                //se valida si fue seleccionado grabar en la vista para actualizar los datos
                if (itemgrabar.Usuario != null)
                {
                    // la eliminación fue confirmada
                    clsWebApi objServicioDatos = new clsWebApi("url_api");


                    //graba los valores
                    List<clsModelUsuario> datos = new List<clsModelUsuario>();
                    datos.Add(itemgrabar);

                    IRestResponse taskSet = Task.Run(() => objServicioDatos.fnEjecutarPostObject("Usuario/Eliminar", datos)).Result;

                    switch (taskSet.StatusCode)
                    {
                        case System.Net.HttpStatusCode.OK:
                            Session["strUltMensajeController"] = "Datos Grabados";
                            break;
                        case System.Net.HttpStatusCode.NotFound:
                            Session["strUltMensajeController"] = "Error al consumir servicio web.";
                            ModelState.AddModelError("Error", "Error al consumir servicio web.");
                            break;
                        default:
                            Session["strUltMensajeController"] = taskSet.Content.ToString();
                            ModelState.AddModelError("Error", "Error al conectarse a la base de datos");
                            break;
                    }

                    if (ModelState.IsValid)
                    {
                        //despues de grabar llama el index
                        return RedirectToAction("Index");
                    }
                    else
                    {
                        //graba con error
                        return View(itemgrabar);
                    }

                }
                else
                {
                    // se esta llamando la accion por primera vez desde el grid del index...
                    clsWebApi objServicioDatos = new clsWebApi("url_api");

                    List<clsModelUsuario> datos = new List<clsModelUsuario>();
                    List<clsModelUsuario> param = new List<clsModelUsuario>();
                    clsModelUsuario itemget = new clsModelUsuario();
                    itemget.Usuario = id;
                    param.Add(itemget);

                    IRestResponse tskGet = Task.Run(() => objServicioDatos.fnEjecutarPostObject("Usuario/Get", param)).Result;

                    switch (tskGet.StatusCode)
                    {
                        case System.Net.HttpStatusCode.OK:
                            Session["strUltMensajeController"] = "";
                            datos = JArray.Parse(tskGet.Content).ToObject<List<clsModelUsuario>>();
                            break;
                        case System.Net.HttpStatusCode.NotFound:
                            Session["UsrUltMensaje"] = "Not Found...";
                            break;
                        default:
                            Session["UsrUltMensaje"] = "Error al recuperar " + tskGet.StatusCode.ToString() + " " + tskGet.Content.ToString();
                            break;
                    }

                    return View(datos.First());
                }

            }

        }