Example #1
0
 public dynamic Creacion(ProyectoEdit 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 Pro = DB.Proyecto.Where(x => x.Nombre.ToUpper().Equals(model.Nombre.ToUpper()) && x.Descripcion.ToUpper().Equals(model.Descripcion.ToUpper())).FirstOrDefault();
             if (Pro == null)
             {
                 Pro = new Proyecto()
                 {
                     Nombre       = model.Nombre,
                     Descripcion  = model.Descripcion,
                     Fecha_Inicio = model.FechaInicio,
                     Fecha_Fin    = model.FechaFin,
                     Id_Operario  = model.Id_Operario,
                     Estado       = model.Estado == 0 ? false : true
                 };
                 DB.Proyecto.Add(Pro);
                 DB.SaveChanges();
                 response.Successfully = true;
                 response.Code         = 201;
                 response.Message      = "Proyecto Insertado con éxito.";
                 response.Result       = "Successfully";
                 transaction.Commit();
             }
             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);
 }
Example #2
0
        public IHttpActionResult COUProyect(ProyectoEdit 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();
                Usuario Us = DB.Usuario.Where(x => x.Id == Id_Usuario).FirstOrDefault();
                if (R != null && Us != null)
                {
                    if (model.Id == 0)
                    {
                        model.Id_Operario = Id_Usuario;
                        return(Ok(PT.Creacion(model)));
                    }
                    else
                    {
                        model.Id_Operario = Id_Usuario;
                        return(Ok(PT.Actualizacion(model)));
                    }
                }
                else
                {
                    return(BadRequest("El usuario logueado no tiene permisos para realizar la acción."));
                }
            }
            else
            {
                return(BadRequest("No se tiene vericidad en la autenticación del usuario."));
            }
        }
 public ActionResult Post([FromBody] ProyectoEdit 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
     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();
                     Usuario us = Context.Usuario.Where(x => x.Id == Id_Usuario).FirstOrDefault();
                     if (R != null && us != null)
                     {
                         if (model.Id == 0)
                         {
                             Proyecto Pro = Context.Proyecto.Where(x => x.Nombre.ToUpper() == model.Nombre.ToUpper() && x.Descripcion.ToUpper() == model.Descripcion.ToUpper()).FirstOrDefault();
                             if (Pro == null && LstEL.Where(x => x.Id == model.Estado).FirstOrDefault() != null)
                             {
                                 Pro = new Proyecto()
                                 {
                                     Nombre       = model.Nombre,
                                     Descripcion  = model.Descripcion,
                                     Fecha_Inicio = model.FechaInicio,
                                     Fecha_Fin    = model.FechaFin,
                                     Id_Operario  = Id_Usuario,
                                     Estado       = model.Estado == 0 ? false : true
                                 };
                                 Context.Proyecto.Add(Pro);
                                 Context.SaveChanges();
                                 transaction.Commit();
                                 return(Ok());
                             }
                             else
                             {
                                 //Existe el proyecto
                                 return(BadRequest("El proyecto con nombre: " + model.Nombre + " y con descripcion: " + model.Descripcion + " ya existen."));
                             }
                         }
                         else
                         {
                             bool         OkFechas = true;
                             Proyecto     PR       = Context.Proyecto.Where(x => x.Id == model.Id).FirstOrDefault();
                             List <Tarea> T        = Context.Tarea.Where(x => x.Id_Proyecto == model.Id).ToList();
                             if (PR != null)
                             {
                                 foreach (Tarea tarea in T)
                                 {
                                     if (tarea.Fecha_Ejecucion > PR.Fecha_Fin)
                                     {
                                         OkFechas = false;
                                     }
                                 }
                                 if (OkFechas)
                                 {
                                     PR.Nombre               = model.Nombre;
                                     PR.Descripcion          = model.Descripcion;
                                     PR.Fecha_Fin            = model.FechaFin;
                                     Context.Entry(PR).State = EntityState.Modified;
                                     Context.SaveChanges();
                                     transaction.Commit();
                                     return(Ok());
                                 }
                                 else
                                 {
                                     //Hay tareas pendientes
                                     return(BadRequest("Hay tareas que se ejecutan despues de la fecha fin del proyecto, revise la informacion."));
                                 }
                             }
                             else
                             {
                                 //Proyecto no existe
                                 return(BadRequest("No se logro validar el proyecto a actualizar."));
                             }
                         }
                     }
                     else
                     {
                         //Solo operarios pueden crear proyectos
                         return(BadRequest("Recuerde que solo usuarios con rol Operario pueden realizar esta accion."));
                     }
                 }
                 else
                 {
                     //no se pudo verificar el token
                     return(BadRequest("No se logro validar la autenticidad del token enviado."));
                 }
             }
             else
             {
                 //No se verifico el token
                 return(BadRequest("No se logro validar la autenticidad del token enviado."));
             }
         }
         catch (Exception Exc)
         {
             transaction.Rollback();
             return(BadRequest("Error al Crear/Actualizar el proyecto. Error: " + Exc.Message.ToString()));
         }
     }
 }
Example #4
0
        public dynamic Actualizacion(ProyectoEdit model)
        {
            bool OkFechas = true;

            DB = new SlabEntities();
            DB.Configuration.LazyLoadingEnabled = true;
            response = new Response();
            using (var transaction = DB.Database.BeginTransaction())
            {
                try
                {
                    Proyecto     PR = DB.Proyecto.Where(x => x.Id == model.Id).FirstOrDefault();
                    List <Tarea> T  = DB.Tarea.Where(x => x.Id_Proyecto == model.Id).ToList();
                    if (PR != null)
                    {
                        foreach (Tarea tarea in T)
                        {
                            if (tarea.Fecha_Ejecucion > PR.Fecha_Fin)
                            {
                                OkFechas = false;
                            }
                        }
                        if (OkFechas)
                        {
                            PR.Nombre          = model.Nombre;
                            PR.Descripcion     = model.Descripcion;
                            PR.Fecha_Fin       = model.FechaFin;
                            DB.Entry(PR).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      = "La fecha final del proyecto no puede ser anterior a las tareas asignadas a este.";
                            response.Result       = null;
                        }
                    }
                    else
                    {
                        response.Successfully = false;
                        response.Code         = 200;
                        response.Message      = "No se logró validar el Proyecto.";
                        response.Result       = null;
                    }
                }
                catch (Exception Ex)
                {
                    response.Successfully = false;
                    response.Code         = 500;
                    response.Message      = Ex.Message.ToString();
                    response.Result       = null;
                }
            }
            return(response);
        }