// este método se ejecutará de manera asíncrona. public string LaunchEmpresa(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_VEmpresas]"; SqlCommand cmd = new SqlCommand(sql, con); int totreg = (int)cmd.ExecuteScalar(); int numreg = 0; sql = @"SELECT [IDEMPRESA] ,[NOMBRE] FROM [PortalProTest].[dbo].[Cau_PortalPro_VEmpresas]"; cmd = new SqlCommand(sql, con); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { numreg++; string codax = dr.GetString(0); // Buscamos si esa empresa existe Empresa emp2 = (from e2 in ctx.Empresas where e2.CodAx == codax select e2).FirstOrDefault<Empresa>(); if (emp2 == null) { emp2 = new Empresa(); ctx.Add(emp2); } emp2.CodAx = codax; emp2.Nombre = dr.GetString(1); ctx.SaveChanges(); // Actualizar los registros de proceso Progresos progreso = (from p in ctx.Progresos where p.ProgresoId == 1 select p).FirstOrDefault<Progresos>(); if (progreso != null) { progreso.NumReg = numreg; progreso.TotReg = totreg; ctx.SaveChanges(); } } dr.Close(); ctx.Dispose(); con.Close(); con.Dispose(); return ""; }
/// <summary> /// Crear un nuevo Empresas /// </summary> /// <param name="empresa">Objeto a crear, el atributo EmpresaId 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 Empresa Post(Empresa empresa, 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 (Empresas)")); } // comprobar las precondiciones if (empresa == null) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest)); } // dar de alta el objeto en la base de datos y devolverlo en el mensaje ctx.Add(empresa); ctx.SaveChanges(); return empresa; } }
/// <summary> /// Modificar una empresa. 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 empresa </param> /// <param name="empresa">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 Empresa Put(int id, Empresa empresa, 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 (Empresas)")); } // comprobar los formatos if (empresa == null || id != empresa.EmpresaId) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest)); } // primero buscamos si un grupo con ese id existe Empresa gu = (from g in ctx.Empresas where g.EmpresaId == id select g).FirstOrDefault<Empresa>(); // existe? if (gu == null) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un grupo con el id proporcionado (Empresas)")); } // modificar el objeto ctx.AttachCopy<Empresa>(empresa); ctx.SaveChanges(); return empresa; } }