//public string NombreProducto(string IdProductoDetalle)
        //{
        //    try
        //    {
        //        using (var cnx = ConnectionHelper.GetConnection)
        //        {
        //            if (cnx.State != ConnectionState.Open) cnx.Open();

        //            var query = " select IdProductoDetalle " +
        //                        " from productodetalle pd " +
        //                        " inner join producto p on pd.v_IdProducto = p.v_IdProducto " +
        //                        " where pd.v_IdProductoDetalle = '" + IdProductoDetalle + "'";

        //            var listado = cnx.Query<MedicamentoDto>(query).ToList();

        //            return listado[0].Nombre;
        //        }
        //    }
        //    catch (Exception ex)
        //    {

        //        throw;
        //    }
        //}

        public void AddUpdateMedicamento(ref OperationResult pobjOperationResult, MedicamentoDto pobjDto)
        {
            try
            {
                using (var dbContext = ConnectionHelper.ContasolContext)
                {
                    var entidad = dbContext.productodetalle.FirstOrDefault(p => p.v_IdProductoDetalle == pobjDto.IdProductoDetalle);

                    var nombre        = pobjDto.Nombre.Trim();
                    var presentacion  = pobjDto.Presentacion.Trim();
                    var concentracion = pobjDto.Concentracion.Trim();
                    if (entidad == null)
                    {
                        var yaExiste =
                            dbContext.producto.Any(p => p.v_Descripcion.Trim().Equals(nombre) &&
                                                   p.v_Presentacion.Trim().Equals(presentacion) && p
                                                   .v_Concentracion.Trim()
                                                   .Equals(concentracion));

                        if (yaExiste)
                        {
                            throw new Exception("El medicamento ya fue registrado anteriormente!");
                        }
                        var productoToInsert = new productoDto
                        {
                            v_Descripcion             = nombre,
                            v_Presentacion            = presentacion,
                            v_Concentracion           = concentracion,
                            v_AccionFarmaco           = pobjDto.AccionFarmaco,
                            v_Ubicacion               = pobjDto.Ubicacion,
                            i_IdProveedor             = -1,
                            i_IdTipoProducto          = 1,
                            i_IdUsuario               = -1,
                            i_EsAfectoDetraccion      = 0,
                            i_IdUnidadMedida          = pobjDto.IdUnidadMedida,
                            d_Empaque                 = 1,
                            v_CodInterno              = pobjDto.CodInterno,
                            i_EsActivo                = 1,
                            i_EsActivoFijo            = 0,
                            i_EsLote                  = 0,
                            i_EsServicio              = 0,
                            i_SolicitarNroLoteIngreso = 1,
                            i_SolicitarNroLoteSalida  = 1,
                            i_NombreEditable          = 0,
                            i_ValidarStock            = 1,
                            v_IdLinea                 = pobjDto.IdLinea
                        };
                        var op         = new SAMBHS.Common.Resource.OperationResult();
                        var productoBl = new ProductoBL();
                        productoBl.InsertarProducto(ref op, productoToInsert, null, dbContext);
                    }
                    else
                    {
                        var prodOriginal = entidad.producto;
                        prodOriginal.v_Descripcion             = nombre;
                        prodOriginal.v_Presentacion            = presentacion;
                        prodOriginal.v_Concentracion           = concentracion;
                        prodOriginal.v_AccionFarmaco           = pobjDto.AccionFarmaco;
                        prodOriginal.v_Ubicacion               = pobjDto.Ubicacion;
                        prodOriginal.i_IdUnidadMedida          = pobjDto.IdUnidadMedida;
                        prodOriginal.d_Empaque                 = 1;
                        prodOriginal.v_CodInterno              = pobjDto.CodInterno;
                        prodOriginal.i_EsActivo                = 1;
                        prodOriginal.i_EsActivoFijo            = 0;
                        prodOriginal.i_EsLote                  = 0;
                        prodOriginal.i_EsServicio              = 0;
                        prodOriginal.i_SolicitarNroLoteIngreso = 1;
                        prodOriginal.i_SolicitarNroLoteSalida  = 1;
                        dbContext.producto.ApplyCurrentValues(prodOriginal);
                    }
                    dbContext.SaveChanges();
                    pobjOperationResult.Success = 1;
                }
            }
            catch (Exception ex)
            {
                pobjOperationResult.Success          = 0;
                pobjOperationResult.ErrorMessage     = ex.Message;
                pobjOperationResult.ExceptionMessage = ex.InnerException != null
                    ? ex.InnerException.Message
                    : string.Empty;
                pobjOperationResult.AdditionalInformation = "MedicamentoBl.AddUpdateMedicamento()";
            }
        }