/// <summary> /// funcion para cambiar el estado de un trabajo y de una oferta a activos /// o sea se convierten entrabajo /// </summary> /// <param name="idTrabajo"></param> /// <param name="estado"></param> /// <returns></returns> private bool cambiarEstadoTrabajo(int idTrabajo, string idEstudiante, string estado) { //Cambia el estado en la tabla de trabajo TRABAJO lobj_trabajo = db.TRABAJO.Find(idTrabajo); lobj_trabajo.Estado = estado; //cambia el estado de la oferta de perndiente a aceptada TRABAJO_POR_ESTUDIANTE lobj_trabajo_por_estudiante = db.TRABAJO_POR_ESTUDIANTE.Find(idTrabajo, idEstudiante); lobj_trabajo_por_estudiante.Estado = estado; //modificar estado db.Entry(lobj_trabajo).State = EntityState.Modified; db.Entry(lobj_trabajo_por_estudiante).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!TRABAJOExists(idTrabajo) || !trabajoPorEstudianteExists(idTrabajo, idEstudiante)) { //si hay problema de concurrencia retorna falso return(false); } else { throw; } } return(true); }
public IHttpActionResult PostTRABAJO(TRABAJO tRABAJO) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } tRABAJO = pobj_TrabajosLogic.insertarTrabajo(tRABAJO); return(Ok(tRABAJO)); }
public IHttpActionResult GetTRABAJO(int idTrabajo) { TRABAJO tRABAJO = pobj_TrabajosLogic.getInfoTrabajo(idTrabajo); if (tRABAJO == null) { return(NotFound()); } return(Ok(tRABAJO)); }
/// <summary> /// logica de insertar nuevo trabajo en la base de datos /// </summary> /// <param name="tRABAJO"></param> /// <returns></returns> public TRABAJO insertarTrabajo(TRABAJO tRABAJO) { //se crea como pendiente (o sea esta en estado de subasta) tRABAJO.Estado = "P"; //aun no es exitoso tRABAJO.Exitoso = false; tRABAJO.EstrellasObtenidas = 0; tRABAJO.FechaInicio = DateTime.Now; db.TRABAJO.Add(tRABAJO); db.SaveChanges(); //se publica en twitter clsRepoLogic pobj_repoLogic = new clsRepoLogic(); pobj_repoLogic.twittSubasta(tRABAJO.Nombre); return(tRABAJO); }
/// <summary> /// Termina un trabajo y le asiga estrellas /// </summary> /// <param name="idTrabajo"></param> /// <param name="idEstudiante"></param> /// <param name="estrellas"> las estrellas deben estar de cero a 5 (inclusive)</param> /// <returns>true si se completa o false si hay error</returns> public bool terminarTrabajo(int idTrabajo, string idEstudiante, byte estrellas, bool exitoso) { TRABAJO lobj_trabajo = db.TRABAJO.Find(idTrabajo); if (lobj_trabajo == null) { return(false); } if (estrellas <= 5 && estrellas >= 0) { lobj_trabajo.EstrellasObtenidas = estrellas; } else { return(false); } lobj_trabajo.Exitoso = exitoso; db.Entry(lobj_trabajo).State = EntityState.Modified; //cambio el estado en trabajo y trabajo por estudiante a terminado if (cambiarEstadoTrabajo(idTrabajo, idEstudiante, "T") == false) { return(false); } try { db.SaveChanges(); } catch (DbUpdateException) { if (!TRABAJOExists(idTrabajo) || !trabajoPorEstudianteExists(idTrabajo, idEstudiante)) { return(false); } else { throw; } } return(true); }