/// <summary>
        /// Método para ingresar un nuevo Tipo de Accesorio en la base de datos.
        /// </summary>
        /// <param name="infoTipoAccesorio"></param>
        /// <returns></returns>
        public MensajesTipoAccesorio RegistroTipoAccesorio(TipoAccesorio infoTipoAccesorio)
        {
            MensajesTipoAccesorio msjTipoAccesorio = new MensajesTipoAccesorio();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("insert into dcicc_tipoaccesorio (nombre_tipoaccesorio,descripcion_tipoaccesorio,habilitado_tipoaccesorio) VALUES (@nta,@dta,@hta)", conn_BD))
                {
                    cmd.Parameters.Add("nta", NpgsqlTypes.NpgsqlDbType.Varchar).Value = infoTipoAccesorio.NombreTipoAccesorio.Trim();
                    cmd.Parameters.Add("dta", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoTipoAccesorio.DescripcionTipoAccesorio) ? (object)infoTipoAccesorio.DescripcionTipoAccesorio.Trim() : DBNull.Value;
                    cmd.Parameters.Add("hta", NpgsqlTypes.NpgsqlDbType.Boolean).Value = infoTipoAccesorio.HabilitadoTipoAccesorio;
                    cmd.ExecuteNonQuery();
                }
                tran.Commit();
                conn_BD.Close();
                msjTipoAccesorio.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjTipoAccesorio.OperacionExitosa = false;
                msjTipoAccesorio.MensajeError     = e.Message;
            }
            return(msjTipoAccesorio);
        }
        public ActionResult ModificarEstadoTipoAccesorio(TipoAccesorio infoTipoAccesorio)
        {
            string mensajesTipoAccesorio           = string.Empty;
            MensajesTipoAccesorio msjTipoAccesorio = new MensajesTipoAccesorio();

            try
            {
                TipoAccesorioAccDatos objTipoAccesorioAccDatos = new TipoAccesorioAccDatos((string)Session["NickUsuario"]);
                msjTipoAccesorio = objTipoAccesorioAccDatos.ActualizarTipoAccesorio(infoTipoAccesorio, true);
                if (msjTipoAccesorio.OperacionExitosa)
                {
                    mensajesTipoAccesorio = string.Format("El tipo de accesorio con ID: {0} ha sido modificado correctamente.", infoTipoAccesorio.IdTipoAccesorio);
                    Logs.Info(mensajesTipoAccesorio);
                }
                else
                {
                    mensajesTipoAccesorio = string.Format("No se ha podido actualizar el tipo de accesorio con ID: {0}: {1}", infoTipoAccesorio.IdTipoAccesorio, msjTipoAccesorio.MensajeError);
                    Logs.Error(mensajesTipoAccesorio);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("{0}: {1}", mensajesTipoAccesorio, e.Message));
            }
            return(Json(msjTipoAccesorio, JsonRequestBehavior.AllowGet));
        }
        public ActionResult NuevoTipoAccesorioPOST(TipoAccesorio infoTipoAccesorio)
        {
            string mensajesTipoAccesorio           = string.Empty;
            MensajesTipoAccesorio msjTipoAccesorio = new MensajesTipoAccesorio();

            try
            {
                TipoAccesorioAccDatos objTipoAccesorioAccDatos = new TipoAccesorioAccDatos((string)Session["NickUsuario"]);
                msjTipoAccesorio = objTipoAccesorioAccDatos.RegistrarTipoAccesorio(infoTipoAccesorio);
                if (msjTipoAccesorio.OperacionExitosa)
                {
                    mensajesTipoAccesorio = string.Format("El tipo de accesorio \"{0}\" ha sido registrado exitosamente.", infoTipoAccesorio.NombreTipoAccesorio);
                    TempData["Mensaje"]   = mensajesTipoAccesorio;
                    Logs.Info(mensajesTipoAccesorio);
                }
                else
                {
                    mensajesTipoAccesorio    = string.Format("No se ha podido registrar el tipo de accesorio \"{0}\": {1}", infoTipoAccesorio.NombreTipoAccesorio, msjTipoAccesorio.MensajeError);
                    TempData["MensajeError"] = mensajesTipoAccesorio;
                    Logs.Error(mensajesTipoAccesorio);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("{0}: {1}", mensajesTipoAccesorio, e.Message));
            }
            return(RedirectToAction("ModificarTipoAccesorio", "TipoAccesorio"));
        }
        /// <summary>
        /// Método para actualizar el estado de un Tipo de Accesorio en la base de datos.
        /// </summary>
        /// <param name="infoTipoAccesorio"></param>
        /// <returns></returns>
        public MensajesTipoAccesorio ActualizacionEstadoTipoAccesorio(TipoAccesorio infoTipoAccesorio)
        {
            MensajesTipoAccesorio msjTipoAccesorio = new MensajesTipoAccesorio();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE dcicc_tipoAccesorio set habilitado_tipoaccesorio = @hta where id_tipoaccesorio = @ita", conn_BD))
                {
                    cmd.Parameters.Add("hta", NpgsqlTypes.NpgsqlDbType.Boolean).Value = infoTipoAccesorio.HabilitadoTipoAccesorio;
                    cmd.Parameters.Add("ita", NpgsqlTypes.NpgsqlDbType.Integer).Value = infoTipoAccesorio.IdTipoAccesorio;
                    cmd.ExecuteNonQuery();
                }
                tran.Commit();
                conn_BD.Close();
                msjTipoAccesorio.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjTipoAccesorio.OperacionExitosa = false;
                msjTipoAccesorio.MensajeError     = e.Message;
            }
            return(msjTipoAccesorio);
        }
        public MensajesTipoAccesorio ActualizarTipoAccesorio([FromBody] TipoAccesorio infoTipoAccesorio)
        {
            MensajesTipoAccesorio        msjTipoAccesorio = new MensajesTipoAccesorio();
            ActualizacionesTipoAccesorio objActualizacionesTipoAccesorioBD = new ActualizacionesTipoAccesorio();

            msjTipoAccesorio = objActualizacionesTipoAccesorioBD.ActualizacionTipoAccesorio(infoTipoAccesorio);
            if (msjTipoAccesorio.OperacionExitosa)
            {
                Logs.Info(string.Format("Actualización de Tipo Accesorio con ID: {0} realizada exitosamente.", infoTipoAccesorio.IdTipoAccesorio));
            }
            else
            {
                Logs.Error(msjTipoAccesorio.MensajeError);
            }
            return(msjTipoAccesorio);
        }
        public MensajesTipoAccesorio RegistrarTipoAccesorio([FromBody] TipoAccesorio infoTipoAccesorio)
        {
            MensajesTipoAccesorio    msjTipoAccesorio = new MensajesTipoAccesorio();
            InsercionesTipoAccesorio objInsercionesTipoAccesorioBD = new InsercionesTipoAccesorio();

            msjTipoAccesorio = objInsercionesTipoAccesorioBD.RegistroTipoAccesorio(infoTipoAccesorio);
            if (msjTipoAccesorio.OperacionExitosa)
            {
                Logs.Info(string.Format("Registro de Tipo Accesorio \"{0}\" realizado exitosamente.", infoTipoAccesorio.NombreTipoAccesorio));
            }
            else
            {
                Logs.Error(msjTipoAccesorio.MensajeError);
            }
            return(msjTipoAccesorio);
        }
        public MensajesTipoAccesorio ObtenerTipoAccesorioComp()
        {
            MensajesTipoAccesorio  msjTipoAccesorio            = new MensajesTipoAccesorio();
            ConsultasTipoAccesorio objConsultasTipoAccesorioBD = new ConsultasTipoAccesorio();

            msjTipoAccesorio = objConsultasTipoAccesorioBD.ObtenerTipoAccesorio("consultatipoaccesorio");
            if (msjTipoAccesorio.OperacionExitosa)
            {
                Logs.Info("Consulta de Tipo Accesorio realizada exitosamente.");
            }
            else
            {
                Logs.Error(msjTipoAccesorio.MensajeError);
            }
            return(msjTipoAccesorio);
        }
        /// <summary>
        /// Método para actualizar un Tipo de Accesorio en la base de datos.
        /// </summary>
        /// <param name="infoTipoAccesorio"></param>
        /// <returns></returns>
        public MensajesTipoAccesorio ActualizarTipoAccesorio(TipoAccesorio infoTipoAccesorio, bool actEstado)
        {
            MensajesTipoAccesorio msjTipoAccesorio = new MensajesTipoAccesorio();

            try
            {
                var response = client_Service.PostAsJsonAsync(actEstado ? "TipoAccesorio/ActualizarEstadoTipoAccesorio" : "TipoAccesorio/ActualizarTipoAccesorio", infoTipoAccesorio).Result;
                if (response.IsSuccessStatusCode)
                {
                    var TipoAccesorioJson = response.Content.ReadAsStringAsync().Result;
                    msjTipoAccesorio = JsonConvert.DeserializeObject <MensajesTipoAccesorio>(TipoAccesorioJson);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Error en la conexión para actualizar un tipo de accesorio: {0}", e.Message));
            }
            return(msjTipoAccesorio);
        }
        /// <summary>
        /// Método para obtener una lista con los Tipos de Accesorios de la base de datos.
        /// </summary>
        /// <param name="nombreFuncion">Tipo de función: Comp(Todos los registros) o Hab (Los registros habilitados)</param>
        /// <returns></returns>
        public MensajesTipoAccesorio ObtenerTipoAccesorio(string nombreFuncion)
        {
            MensajesTipoAccesorio msjTipoAccesorio = new MensajesTipoAccesorio();

            try
            {
                HttpResponseMessage response = client_Service.GetAsync(string.Format("TipoAccesorio/ObtenerTipoAccesorio{0}", nombreFuncion)).Result;
                if (response.IsSuccessStatusCode)
                {
                    var TipoAccesorioJson = response.Content.ReadAsStringAsync().Result;
                    msjTipoAccesorio = JsonConvert.DeserializeObject <MensajesTipoAccesorio>(TipoAccesorioJson);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Error en la conexión para obtener la lista de los tipos de accesorios: {0}", e.Message));
            }
            return(msjTipoAccesorio);
        }
        /// <summary>
        /// Método para obtener los Tipos de Accesorios de la base de datos.
        /// </summary>
        /// <param name="nombreFuncion">Tipo de función a llamar: consultatipoaccesorio o tipoaccesoriohabilitados</param>
        /// <returns></returns>
        public MensajesTipoAccesorio ObtenerTipoAccesorio(string nombreFuncion)
        {
            List <TipoAccesorio>  lstTipoAccesorio = new List <TipoAccesorio>();
            MensajesTipoAccesorio msjTipoAccesorio = new MensajesTipoAccesorio();

            try
            {
                using (NpgsqlCommand cmd = new NpgsqlCommand(nombreFuncion, conn_BD))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            TipoAccesorio objTipoAccesorio = new TipoAccesorio
                            {
                                IdTipoAccesorio          = (int)dr[0],
                                NombreTipoAccesorio      = dr[1].ToString().Trim(),
                                DescripcionTipoAccesorio = dr[2].ToString().Trim(),
                                HabilitadoTipoAccesorio  = (bool)dr[3]
                            };
                            lstTipoAccesorio.Add(objTipoAccesorio);
                        }
                        conn_BD.Close();
                        msjTipoAccesorio.ListaObjetoInventarios = lstTipoAccesorio;
                        msjTipoAccesorio.OperacionExitosa       = true;
                    }
                }
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjTipoAccesorio.OperacionExitosa = false;
                msjTipoAccesorio.MensajeError     = e.Message;
            }
            return(msjTipoAccesorio);
        }