public IHttpActionResult COUProyect(TareaEdit model) { DB = new SlabEntities(); int Id_Usuario; int Id_Rol; TokenGenerator TG = new TokenGenerator(); string result = TG.DecodeTokenAwt(Request.Headers.Authorization.ToString().Replace("Bearer ", "")).Result; if (!string.IsNullOrEmpty(result)) { Id_Usuario = int.Parse(result.Split('|')[0]); Id_Rol = int.Parse(result.Split('|')[2]); Rol R = DB.Rol.Where(x => x.Id == Id_Rol && x.Rol1.ToUpper().Equals("OPERARIO")).FirstOrDefault(); Proyecto P = DB.Proyecto.Where(x => x.Id == model.Id_Proyecto).FirstOrDefault(); if (R != null && P != null) { if (model.Id == 0) { return(Ok(TT.Creacion(model))); } else { return(Ok(TT.Actualizacion(model))); } } else { return(BadRequest("El usuario logueado no tiene permisos para realizar la acción o la informacion no esta completa.")); } } else { return(BadRequest("No se puede validar la autenticacion del usuario.")); } }
public dynamic Actualizacion(TareaEdit model) { DB = new SlabEntities(); DB.Configuration.LazyLoadingEnabled = true; response = new Response(); #region Estados List <EstadoList> LstEL = new List <EstadoList>(); EstadoList EL = new EstadoList(); LstEL.Add(EL = new EstadoList() { Id = 0, Estado = "En Proceso" }); LstEL.Add(EL = new EstadoList() { Id = 1, Estado = "Finalizado" }); #endregion using (var transaction = DB.Database.BeginTransaction()) { try { Proyecto PR = DB.Proyecto.Where(x => x.Id == model.Id_Proyecto).FirstOrDefault(); Tarea T = DB.Tarea.Where(x => x.Id == model.Id).FirstOrDefault(); if (T != null) { if (PR.Fecha_Fin >= model.Fecha_Ejecucion) { T.Nombre = model.Nombre; T.Descripcion = model.Descripcion; T.Fecha_Ejecucion = model.Fecha_Ejecucion; } DB.Entry(T).State = EntityState.Modified; DB.SaveChanges(); response.Successfully = true; response.Code = 200; response.Message = "Actualización de datos realizada con éxito."; response.Result = "Successfully"; transaction.Commit(); } else { response.Successfully = false; response.Code = 200; response.Message = "No se logró validar la Tarea."; response.Result = null; } } catch (Exception Ex) { response.Successfully = false; response.Code = 500; response.Message = Ex.Message.ToString(); response.Result = null; } } return(response); }
public ActionResult Post([FromBody] TareaEdit model) { #region Estados List <EstadoList> LstEL = new List <EstadoList>(); EstadoList EL = new EstadoList(); LstEL.Add(EL = new EstadoList() { Id = 0, Estado = "Pendiente" }); LstEL.Add(EL = new EstadoList() { Id = 1, Estado = "Realizada" }); #endregion int Id_Usuario; int Id_Rol; string result; using (var transaction = Context.Database.BeginTransaction()) { try { if (HttpContext.Request.Headers.TryGetValue("Authorization", out var token)) { result = DecodeTokenAwt(token.ToString().Replace("Bearer ", "")); if (!string.IsNullOrEmpty(result)) { Id_Usuario = int.Parse(result.Split('|')[0]); Id_Rol = int.Parse(result.Split('|')[2]); Rol R = Context.Rol.Where(x => x.Id == Id_Rol && x.RolName.ToUpper().Equals("OPERARIO")).FirstOrDefault(); Proyecto P = Context.Proyecto.Where(x => x.Id == model.Id_Proyecto).FirstOrDefault(); if (R != null && P != null) { if (model.Id == 0) { Tarea T = Context.Tarea.Where(x => x.Nombre.ToUpper().Equals(model.Nombre.ToUpper()) && x.Descripcion.ToUpper().Equals(model.Descripcion.ToUpper()) && x.Id_Proyecto == model.Id_Proyecto).FirstOrDefault(); if (T == null && LstEL.Where(x => x.Id == model.Estado).FirstOrDefault() != null && (P.Fecha_Fin >= model.Fecha_Ejecucion && P.Fecha_Inicio <= model.Fecha_Ejecucion)) { T = new Tarea() { Nombre = model.Nombre, Descripcion = model.Descripcion, Fecha_Ejecucion = model.Fecha_Ejecucion, Id_Proyecto = model.Id_Proyecto, Estado = model.Estado == 0 ? false : true }; Context.Tarea.Add(T); Context.SaveChanges(); transaction.Commit(); return(Ok()); } else { return(BadRequest("Hay problemas con la informacion dada, revise que la tarea no exista con el mismo nombre y la misma descripcion y que la fecha de ejecucion no sea mayor que el fin del proyecto.")); } } else { Tarea TR = Context.Tarea.Where(x => x.Id == model.Id).FirstOrDefault(); Proyecto PR = Context.Proyecto.Where(x => x.Id == TR.Id_Proyecto).FirstOrDefault(); if (TR != null && (PR.Fecha_Fin >= model.Fecha_Ejecucion)) { TR.Nombre = model.Nombre; TR.Descripcion = model.Descripcion; TR.Fecha_Ejecucion = model.Fecha_Ejecucion; Context.Entry(TR).State = EntityState.Modified; Context.SaveChanges(); transaction.Commit(); return(Ok()); } else { //Tarea no existe o la fecha es mayor a la finalizacion del proyecto return(BadRequest("No se logro validar la tarea a actualizar o la fecha de ejecucion de la tarea es mayor que la de finalizacion del proyecto.")); } } } else { //Solo operarios pueden crear Tareas return(BadRequest("Recuerde que solo usuarios con rol Operario pueden realizar esta acción.")); } } else { //no se pudo verificar el token return(BadRequest("No se pudo verificar la autenticidad del token enviado.")); } } else { //No se verifico el token return(BadRequest("No se pudo verificar la autenticidad del token enviado.")); } } catch (Exception Exc) { transaction.Rollback(); return(BadRequest("Error al Crear/Actualizar la tarea, error: " + Exc.Message.ToString())); } } }
public dynamic Creacion(TareaEdit model) { #region Estados List <EstadoList> LstEL = new List <EstadoList>(); EstadoList EL = new EstadoList(); LstEL.Add(EL = new EstadoList() { Id = 0, Estado = "En Proceso" }); LstEL.Add(EL = new EstadoList() { Id = 1, Estado = "Finalizado" }); #endregion DB = new SlabEntities(); DB.Configuration.LazyLoadingEnabled = true; response = new Response(); using (var transaction = DB.Database.BeginTransaction()) { try { Tarea T = DB.Tarea.Where(x => x.Nombre.ToUpper().Equals(model.Nombre.ToUpper()) && x.Descripcion.ToUpper().Equals(model.Descripcion.ToUpper()) && x.Id_Proyecto == model.Id_Proyecto).FirstOrDefault(); Proyecto Pro = DB.Proyecto.Where(x => x.Id == model.Id_Proyecto).FirstOrDefault(); if (T == null) { if (Pro.Fecha_Fin >= model.Fecha_Ejecucion && Pro.Fecha_Inicio <= model.Fecha_Ejecucion) { var ValEstado = LstEL.Where(x => x.Id == model.Estado).FirstOrDefault(); if (ValEstado != null) { T = new Tarea() { Nombre = model.Nombre, Descripcion = model.Descripcion, Fecha_Ejecucion = model.Fecha_Ejecucion, Id_Proyecto = model.Id_Proyecto, Estado = model.Estado == 1 ? true : false }; DB.Tarea.Add(T); DB.SaveChanges(); response.Successfully = true; response.Code = 201; response.Message = "Tarea Insertada con éxito."; response.Result = "Successfully"; transaction.Commit(); } else { response.Successfully = false; response.Code = 403; response.Message = "El estado enviado no existe."; response.Result = ""; } } else { response.Successfully = false; response.Code = 403; response.Message = "La fecha de ejecucion de la tarea excede la fecha de inicio/finalizacion del proyecto o es menor a la fecha actual."; response.Result = ""; } } else { response.Successfully = false; response.Code = 200; response.Message = string.Format("Ya existe un Proyecto con ese nombre {0} y con esa descripcion {1}", model.Nombre, model.Descripcion); response.Result = null; } } catch (Exception Exc) { transaction.Rollback(); response.Successfully = false; response.Code = 400; response.Message = "Error In the Method, Error: " + Exc.Message.ToString(); response.Result = "Error in the Method"; } } return(response); }