コード例 #1
0
ファイル: TareaController.cs プロジェクト: hnsm99/PruebaSlab
        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."));
            }
        }
コード例 #2
0
ファイル: TareaTransaction.cs プロジェクト: hnsm99/PruebaSlab
 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);
 }
コード例 #3
0
 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()));
         }
     }
 }
コード例 #4
0
ファイル: TareaTransaction.cs プロジェクト: hnsm99/PruebaSlab
 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);
 }