Example #1
0
 /// <summary>
 /// Crear un nuevo Responsables
 /// </summary>
 /// <param name="responsable">Objeto a crear, el atributo ResponsableId lo genera la aplicación y es devuelto en el objeto incluido en la respuesta.</param>
 /// <param name="tk"> Tique de autorzación (se debe obtener con la accion Login)</param>
 /// <returns></returns>
 public virtual Responsable Post(Responsable responsable, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk,ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Responsables)"));
         }
         // comprobar las precondiciones
         if (responsable == null)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         int usuarioId = 0;
         if (responsable.Usuario != null)
         {
             usuarioId = responsable.Usuario.UsuarioId;
             responsable.Usuario = null;
         }
         // dar de alta el objeto en la base de datos y devolverlo en el mensaje
         ctx.Add(responsable);
         if (usuarioId != 0)
         {
             responsable.Usuario = (from u in ctx.Usuarios
                                    where u.UsuarioId == usuarioId
                                    select u).FirstOrDefault<Usuario>();
         }
         ctx.SaveChanges();
         return responsable;
     }
 }
 // este método se ejecutará de manera asíncrona.
 public string LaunchResponsable(out int threadId)
 {
     threadId = Thread.CurrentThread.ManagedThreadId;
     // abrir conexiones 
     PortalProContext ctx = new PortalProContext();
     string strConnect = ConfigurationManager.ConnectionStrings["PortalProTestConnection"].ConnectionString;
     SqlConnection con = new SqlConnection(strConnect);
     con.Open();
     string sql = "SELECT COUNT(*) FROM [PortalProTest].[dbo].[Cau_PortalPro_VResponsable]";
     SqlCommand cmd = new SqlCommand(sql, con);
     int totreg = (int)cmd.ExecuteScalar();
     int numreg = 0;
     sql = @"SELECT  
                 [ID]
                 ,[NAME]
                 ,[EMAIL]
             FROM [PortalProTest].[dbo].[Cau_PortalPro_VResponsable]";
     cmd = new SqlCommand(sql, con);
     SqlDataReader dr = cmd.ExecuteReader();
     while (dr.Read())
     {
         numreg++;
         string codax = dr.GetString(0);
         // Buscamos si esa empresa existe
         Responsable res2 = (from e2 in ctx.Responsables
                         where e2.CodAx == codax
                         select e2).FirstOrDefault<Responsable>();
         if (res2 == null)
         {
             res2 = new Responsable();
             ctx.Add(res2);
         }
         res2.CodAx = codax;
         res2.Nombre = dr.GetString(1);
         res2.Email = dr.GetString(2);
         ctx.SaveChanges();
         // Actualizar los registros de proceso
         Progresos progreso = (from p in ctx.Progresos
                               where p.ProgresoId == 5
                               select p).FirstOrDefault<Progresos>();
         if (progreso != null)
         {
             progreso.NumReg = numreg;
             progreso.TotReg = totreg;
             ctx.SaveChanges();
         }
     }
     dr.Close();
     ctx.Dispose();
     con.Close();
     con.Dispose();
     return "";
 }
Example #3
0
 /// <summary>
 /// Modificar una Responsable. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único de la Responsable </param>
 /// <param name="responsable">Grupo de usuario con los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual Responsable Put(int id, Responsable responsable, string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprobar el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Responsables)"));
         }
         // comprobar los formatos
         if (responsable == null || id != responsable.ResponsableId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un grupo con ese id existe
         Responsable re = (from g in ctx.Responsables
                            where g.ResponsableId == id
                            select g).FirstOrDefault<Responsable>();
         // existe?
         if (re == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un grupo con el id proporcionado (Responsables)"));
         }
         int usuarioId = 0;
         if (responsable.Usuario != null)
         {
             usuarioId = responsable.Usuario.UsuarioId;
             responsable.Usuario = null;
         }
         // hay que volver a leer el objeto para que lo maneje este contexto.
         responsable = (from r in ctx.Responsables
                        where r.ResponsableId == id
                        select r).FirstOrDefault<Responsable>();
         // modificar el objeto
         ctx.AttachCopy<Responsable>(responsable);
         if (usuarioId != 0)
         {
             responsable.Usuario = (from u in ctx.Usuarios
                                    where u.UsuarioId == usuarioId
                                    select u).FirstOrDefault<Usuario>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<Responsable>(responsable, x => x.Usuario);
     }
 }