/// <summary> /// Permite obtener el promedio de estrellas de una referencia(Hotel | Restaurante). /// </summary> /// <param name="referencia">Se espera una instancia de Hotel o Restaurante.</param> /// <returns>Valoracion de la referencia indicada.</returns> public ReferenciaValorada ObtenerValoracionPorReferencia(Entidad referencia) { ReferenciaValorada valoracion = null; List <Parametro> parametros = null; int tipo = 0; try { if (referencia is Hotel) { tipo = 2; } else if (referencia is Restaurante) { tipo = 1; } else { throw new DAOM20Exception("La entidad revision debe ser de tipo Revision."); } parametros = FabricaDAO.asignarListaDeParametro(); parametros.Add(FabricaDAO.asignarParametro(RecursoDAOM20.parametroRevisionTipo, SqlDbType.Int, ((int)tipo).ToString(), false)); parametros.Add(FabricaDAO.asignarParametro(RecursoDAOM20.parametroRevisionReferencia, SqlDbType.Int, referencia._id.ToString(), false)); DataTable respuesta = EjecutarStoredProcedureTuplas(RecursoDAOM20.procedimientoObtenerValoracionPorReferencia, parametros); valoracion = new ReferenciaValorada { Id = (int)respuesta.Rows[0][RecursoDAOM20.parametroRevisionReferencia], Estrellas = (decimal)respuesta.Rows[0][RecursoDAOM20.parametroReferenciaEstrellas], Tipo = (EnumTipoRevision)tipo }; } catch (Exception ex) { Models.Utilidad.RegistrarLog(new DAOM20Exception("Ocurrio un problema al intentar ejecutar DAORevision.ObtenerRevisionesPorReferencia.", ex)); } return(valoracion); }
public ActionResult obtener_valoracion(int id, EnumTipoRevision tipo) { var revisiones = new ReferenciaValorada(); Entidad referencia = null; if (tipo == EnumTipoRevision.Hotel) { referencia = new Hotel() { _id = id }; } else if (tipo == EnumTipoRevision.Restaurante) { referencia = new Restaurante() { _id = id }; } revisiones = DAORevision.Singleton().ObtenerValoracionPorReferencia(referencia); return(PartialView(revisiones)); }