// PRE: p != null. // POS: devuelve un objeto de tipo MD.Presupuesto si p es encontrado en la BD, null en caso contrario. public static MD.Presupuesto Buscar(MD.Presupuesto p) { if (BD.Presupuestos != null) { PresupuestoDato pd = presupuestoAPresupuestoDato(p); PresupuestoDato res = BD.SELECTPresupuesto(pd); if (res != null) { Dictionary <MD.Vehiculo, double> valoraciones = new Dictionary <MD.Vehiculo, double>(); foreach (KeyValuePair <VehiculoDato, double> kvp in res.Valoraciones) { valoraciones.Add(PersistenciaVehiculo.VehiculoDatoAVehiculo(kvp.Key), kvp.Value); } return(new MD.Presupuesto(res.FechaRealizacion, Persistencia.PersistenciaCliente.CambioACliente(res.Cliente), valoraciones)); } else { return(null); } } else { return(null); } }
// PRE: p != null. // POS: devuelve un objeto de tipo MD.Presupuesto, creado a partir de un objeto de tipo PresupuestoDato. private static MD.Presupuesto presupuestoDatoAPresupuesto(PresupuestoDato pDato) { Dictionary <MD.Vehiculo, double> valoraciones = new Dictionary <MD.Vehiculo, double>(); foreach (KeyValuePair <VehiculoDato, double> kvp in pDato.Valoraciones) { valoraciones.Add(PersistenciaVehiculo.VehiculoDatoAVehiculo(kvp.Key), kvp.Value); } MD.Estado estado = MD.Estado.Pendiente; switch (pDato.Estado) { case EstadoDato.Aceptado: estado = MD.Estado.Aceptado; break; case EstadoDato.Desestimado: estado = MD.Estado.Desestimado; break; } MD.Presupuesto presupuesto = new MD.Presupuesto(pDato.FechaRealizacion, Persistencia.PersistenciaCliente.CambioACliente(pDato.Cliente), valoraciones); presupuesto.Vehiculo = Persistencia.PersistenciaVehiculo.VehiculoDatoAVehiculo(pDato.Vehiculo); presupuesto.Estado = estado; return(presupuesto); }