当前位置: 首页>>代码示例>>C#>>正文


C# PortalProContext.SaveChanges方法代码示例

本文整理汇总了C#中PortalProModelo.PortalProContext.SaveChanges方法的典型用法代码示例。如果您正苦于以下问题:C# PortalProContext.SaveChanges方法的具体用法?C# PortalProContext.SaveChanges怎么用?C# PortalProContext.SaveChanges使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PortalProModelo.PortalProContext的用法示例。


在下文中一共展示了PortalProContext.SaveChanges方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: LaunchResponsable

 // 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 "";
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:54,代码来源:ImportSqlResponsable.cs

示例2: LaunchPedido

        // este método se ejecutará de manera asíncrona.
        public string LaunchPedido(out int threadId)
        {
            threadId = Thread.CurrentThread.ManagedThreadId;
            int numreg = 0;
            int totreg = 0;
            PortalProContext ctx = new PortalProContext();
            EntitiesModel con = new EntitiesModel();
            var rs = (from cp in con.Cau_PortalPro_VCabPedidos
                      select cp);
            totreg = rs.Count();
            foreach (Cau_PortalPro_VCabPedido cp1 in rs)
            {
                numreg++;
                // Buscamos si ese pedido ya existe
                Pedido p2 = (from p in ctx.Pedidos
                             where p.NumPedido == cp1.PURCHID
                             select p).FirstOrDefault<Pedido>();
                if (p2 == null)
                {
                    p2 = new Pedido();
                    p2.NumPedido = cp1.PURCHID;
                    p2.FechaAlta = cp1.CREATEDDATE;
                    // buscamos al proveedor
                    p2.Proveedor = (from pr in ctx.Proveedors
                                    where pr.CodAx == cp1.INVOICEACCOUNT
                                    select pr).FirstOrDefault<Proveedor>();
                    p2.TotalPedido = 0;
                    p2.TotalFacturado = 0;
                    p2.Estado = cp1.ESTADO;
                    p2.DocumentoPdf = null;
                    p2.DocumentoXml = null;
                    p2.TipoPedido = cp1.TIPO;
                    // buscar la empresa
                    p2.Empresa = (from e in ctx.Empresas
                                  where e.CodAx == cp1.DATAAREAID
                                  select e).FirstOrDefault<Empresa>();
                    p2.FechaLimite = cp1.FECHALIMITE;
                    p2.FechaRecepcion = cp1.FECHARECEPCION;
                }
                else
                {

                }
                // Actualizar los registros de proceso
                Progresos progreso = (from p in ctx.Progresos
                                      where p.ProgresoId == 3
                                      select p).FirstOrDefault<Progresos>();
                if (progreso != null)
                {
                    progreso.NumReg = numreg;
                    progreso.TotReg = totreg;
                    ctx.SaveChanges();
                }
            }
            return "";
        }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:57,代码来源:ImportPedido.cs

示例3: GetLogin

 /// <summary>
 /// Tras comprobar que un usuario con el login y password dados 
 /// existe, crea un tique que devuelve en el cuerpo del mensaje
 /// </summary>
 /// <param name="login">Login del usuario</param>
 /// <param name="password">Contraseña del usuario</param>
 /// <returns>Un objeto que representa un tique</returns>
 /// <remarks>Este es un comentario adicional</remarks>
 public virtual WebApiTicket GetLogin(string login, string password)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         WebApiTicket tk = CntWebApiSeguridad.Login(login, password, 30, ctx);
         if (tk == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Nombre de usuario o contraseña incorrecto"));
         }
         else
         {
             // agregamos el tique recién creado
             ctx.Add(tk);
             ctx.SaveChanges();
             tk = ctx.CreateDetachedCopy<WebApiTicket>(tk, x => x.Usuario);
             return tk;
         }
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:27,代码来源:LoginController.cs

示例4: PutLogin

 /// <summary>
 /// Renueva el tique por 30 minutos adicionales
 /// </summary>
 /// <param name="tk">Tique que se desea renovar</param>
 /// <returns></returns>
 public virtual WebApiTicket PutLogin(string tk)
 {
     using (PortalProContext ctx = new PortalProContext())
     {
         // comprueba el tique
         if (!CntWebApiSeguridad.CheckTicket(tk, ctx))
         {
              throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Login)"));
         }
         // renueva el tique por 30 minutos más
         // en el futuro todo esto debería ser parametrizable
         WebApiTicket wtck = (from t in ctx.WebApiTickets
                              where t.Codigo == tk
                              select t).FirstOrDefault<WebApiTicket>();
         // dado que ha habido una comprobación previa del tique éste 
         // debería existir.
         wtck.Fin = DateTime.Now.AddMinutes(30);
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<WebApiTicket>(wtck, x => x.Usuario);
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:26,代码来源:LoginController.cs

示例5: Post

 /// <summary>
 /// Crear un nuevo proveedor
 /// </summary>
 /// <param name="Proveedor">Objeto a crear, el atributo ProveedorId 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 Proveedor Post(Proveedor proveedor, 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 (Proveedores)"));
         }
         // comprobar las precondiciones
         if (proveedor == null)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         int grupoProveedorId = 0;
         // Controlamos las propiedades que son en realidad objetos.
         if (proveedor.GrupoProveedor != null)
         {
             grupoProveedorId = proveedor.GrupoProveedor.GrupoProveedorId;
             proveedor.GrupoProveedor = null;
         }
         // dar de alta el objeto en la base de datos y devolverlo en el mensaje
         ctx.Add(proveedor);
         if (grupoProveedorId != 0)
         {
             proveedor.GrupoProveedor = (from gp in ctx.GrupoProveedors
                                     where gp.GrupoProveedorId == grupoProveedorId
                                     select gp).FirstOrDefault<GrupoProveedor>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<Proveedor>(proveedor, x => x.GrupoProveedor);
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:39,代码来源:ProveedoresController.cs

示例6: Delete

 /// <summary>
 /// Elimina el usuario que coincide con el id pasado
 /// </summary>
 /// <param name="id">Identificador del usuario a eliminar</param>
 /// <param name="tk">Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual bool Delete(int id, 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 (UsuarioProveedor)"));
         }
         // primero buscamos si un grupo con ese id existe
         UsuarioProveedor usu = (from u in ctx.UsuarioProveedors
                        where u.UsuarioProveedorId == id
                        select u).FirstOrDefault<UsuarioProveedor>();
         // existe?
         if (usu == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un usuario con el id proporcionado (UsuarioProveedor)"));
         }
         ctx.Delete(usu);
         ctx.SaveChanges();
         return true;
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:29,代码来源:UsuarioProveedorController.cs

示例7: Post

 /// <summary>
 /// Crear un nuevo usuario de proveedor
 /// </summary>
 /// <param name="Usuario">Objeto a crear, el atributo UsuarioPorveedorId lo genera la aplicación y es devuelto en el objeto incluido en la respuesta.</param>
 /// <param name="tk"> Tique de autorización (se debe obtener con la accion Login)</param>
 /// <returns></returns>
 public virtual UsuarioProveedor Post(UsuarioProveedor usuarioProveedor, 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 (UsuarioProveedor)"));
         }
         // comprobar las precondiciones
         if (usuarioProveedor == null)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // controlar la contraseña.
         if (usuarioProveedor.Password != null && usuarioProveedor.Password != "")
         {
             // se guarda la contraseña encriptada
             usuarioProveedor.Password = CntWebApiSeguridad.GetHashCode(usuarioProveedor.Password);
         }
         int proveedorId = 0;
         // Controlamos las propiedades que son en realidad objetos.
         if (usuarioProveedor.Proveedor != null)
         {
             proveedorId = usuarioProveedor.Proveedor.ProveedorId;
             usuarioProveedor.Proveedor = null;
         }
         // dar de alta el objeto en la base de datos y devolverlo en el mensaje
         ctx.Add(usuarioProveedor);
         if (proveedorId != 0)
         {
             usuarioProveedor.Proveedor = (from p in ctx.Proveedors
                                     where p.ProveedorId == proveedorId
                                     select p).FirstOrDefault<Proveedor>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<UsuarioProveedor>(usuarioProveedor, x => x.Proveedor);
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:45,代码来源:UsuarioProveedorController.cs

示例8: Post

 /// <summary>
 /// Crear un nueva cabecera de factura
 /// </summary>
 /// <param name="CabFactura">Objeto a crear, el atributo CabFacturaId 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 CabFactura Post(CabFactura factura, 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 (CabFactura)"));
         }
         // comprobar las precondiciones
         if (factura == null)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // comprobamos que no hay una factura para el mismo proveedor en ese año y con
         // el mismo número de factura
         CabFactura f = PortalProWebUtility.YaExisteUnaFacturaComoEsta(factura, ctx);
         if (f != null)
         {
             string m = String.Format("Ya hay una factura del proveedor para este año {0:yyyy} con el mismo número {1}", f.FechaEmision, f.NumFactura);
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, m));
         }
         // Controlamos las propiedades que son en realidad objetos.
         int proveedorId = 0;
         if (factura.Proveedor != null)
         {
             proveedorId = factura.Proveedor.ProveedorId;
             factura.Proveedor = null;
         }
         int documentoPdfId = 0;
         if (factura.DocumentoPdf != null)
         {
             documentoPdfId = factura.DocumentoPdf.DocumentoId;
             factura.DocumentoPdf = null;
         }
         int documentoXmlId = 0;
         if (factura.DocumentoXml != null)
         {
             documentoXmlId = factura.DocumentoXml.DocumentoId;
             factura.DocumentoXml = null;
         }
         int empresaId = 0;
         if (factura.Empresa != null) 
         {
             empresaId = factura.Empresa.EmpresaId;
             factura.Empresa = null;
         }
         int responsableId = 0;
         if (factura.Responsable != null)
         {
             responsableId = factura.Responsable.ResponsableId;
             factura.Responsable = null;
         }
         // las facturas por defecto tienen el estado recibida
         factura.Estado = "ACEPTADA";
         // dar de alta el objeto en la base de datos y devolverlo en el mensaje
         ctx.Add(factura);
         if (proveedorId != 0)
         {
             factura.Proveedor = (from p in ctx.Proveedors
                                  where p.ProveedorId == proveedorId
                                  select p).FirstOrDefault<Proveedor>();
         }
         if (documentoPdfId != 0)
         {
             factura.DocumentoPdf = (from d in ctx.Documentos
                                     where d.DocumentoId == documentoPdfId
                                     select d).FirstOrDefault<Documento>();
         }
         if (documentoXmlId != 0)
         {
             factura.DocumentoXml = (from d in ctx.Documentos
                                     where d.DocumentoId == documentoXmlId
                                     select d).FirstOrDefault<Documento>();
         }
         if (empresaId != 0)
         {
             factura.Empresa = (from e in ctx.Empresas
                                where e.EmpresaId == empresaId
                                select e).FirstOrDefault<Empresa>();
         }
         if (responsableId != 0)
         {
             factura.Responsable = (from r in ctx.Responsables
                                    where r.ResponsableId == responsableId
                                    select r).FirstOrDefault<Responsable>();
         }
         factura.FechaAlta = DateTime.Now;
         factura.Historial += String.Format("{0:dd/MM/yyyy hh:mm:ss} La factura {1} con Total {2:0.0} € has sido creada con estado {3} <br/>",
             DateTime.Now, factura.NumFactura, factura.TotalFactura, factura.Estado);
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<CabFactura>(factura, x => x.Proveedor, x => x.DocumentoPdf, x => x.DocumentoXml);
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:100,代码来源:CabFacturaController.cs

示例9: Put

 /// <summary>
 /// Modificar un usuario ligado a un proveedor. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único del usuario </param>
 /// <param name="usuarioProveedor">Datos del usario ligado a proveedor</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual UsuarioProveedor Put(int id, UsuarioProveedor usuarioProveedor, 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 (UsuarioProveedor)"));
         }
         // comprobar los formatos
         if (usuarioProveedor == null || id != usuarioProveedor.UsuarioProveedorId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un usuario con ese id existe
         UsuarioProveedor usup = (from up in ctx.UsuarioProveedors
                        where up.UsuarioProveedorId == id
                        select up).FirstOrDefault<UsuarioProveedor>();
         // existe?
         if (usup == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un usuario con el id proporcionado (UsuarioProveedor)"));
         }
         // controlar la contraseña.
         if (usuarioProveedor.Password != null && usuarioProveedor.Password != "" && usuarioProveedor.Password != usup.Password)
         {
             // se guarda la contraseña encriptada
             usuarioProveedor.Password = CntWebApiSeguridad.GetHashCode(usuarioProveedor.Password);
         }
         int proveedorId = 0;
         // Controlamos las propiedades que son en realidad objetos.
         if (usuarioProveedor.Proveedor != null)
         {
             proveedorId = usuarioProveedor.Proveedor.ProveedorId;
             usuarioProveedor.Proveedor = null;
         }
         // modificar el objeto
         ctx.AttachCopy<UsuarioProveedor>(usuarioProveedor);
         // volvemos a leer el objecto para que lo maneje este contexto.
         usuarioProveedor = (from up in ctx.UsuarioProveedors
                    where up.UsuarioProveedorId == id
                    select up).FirstOrDefault<UsuarioProveedor>();
         if (proveedorId != 0)
         {
             usuarioProveedor.Proveedor = (from p in ctx.Proveedors
                                     where p.ProveedorId == proveedorId
                                     select p).FirstOrDefault<Proveedor>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<UsuarioProveedor>(usuarioProveedor, x => x.Proveedor );
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:59,代码来源:UsuarioProveedorController.cs

示例10: LaunchPedido

 // este método se ejecutará de manera asíncrona.
 public string LaunchPedido(out int threadId)
 {
     threadId = Thread.CurrentThread.ManagedThreadId;
     // abrir conexiones 
     PortalProContext ctx = new PortalProContext();
     // Actualizar los registros de proceso
     Progresos progreso = (from p in ctx.Progresos
                           where p.ProgresoId == 3
                           select p).FirstOrDefault<Progresos>();
     if (progreso != null)
     {
         progreso.NumReg = 0;
         progreso.TotReg = 1;
         ctx.SaveChanges();
     }
     string strConnect = ConfigurationManager.ConnectionStrings["PortalProTestConnection"].ConnectionString;
     SqlConnection con = new SqlConnection(strConnect);
     con.Open();
     string sql = "SELECT COUNT(*) FROM [dbo].[Cau_PortalPro_VCabPedido]";
     SqlCommand cmd = new SqlCommand(sql, con);
     int totreg = (int)cmd.ExecuteScalar();
     int numreg = 0;
     sql = @"SELECT  
                 [PURCHID]
                 ,[INVOICEACCOUNT]
                 ,[DATAAREAID]
                 ,[ESTADO]
                 ,[TIPO]
                 ,[CODCONTACTO]
                 ,[CONTACTO]
                 ,[CREATEDDATE]
                 ,[FECHARECEPCION]
                 ,[FECHALIMITE]
             FROM [dbo].[Cau_PortalPro_VCabPedido]";
     cmd = new SqlCommand(sql, con);
     SqlDataReader dr = cmd.ExecuteReader();
     while (dr.Read())
     {
         numreg++;
         string numpedido = dr.GetString(0);
         // Buscamos si esa empresa existe
         Pedido ped2 = (from p2 in ctx.Pedidos
                         where p2.NumPedido == numpedido
                         select p2).FirstOrDefault<Pedido>();
         if (ped2 == null)
         {
             ped2 = new Pedido();
             ctx.Add(ped2);
         }
         ped2.NumPedido = numpedido;
         ped2.Proveedor = (from pr in ctx.Proveedors
                           where pr.CodAx == dr.GetString(1)
                           select pr).FirstOrDefault<Proveedor>();
         ped2.Empresa = (from e in ctx.Empresas
                             where e.CodAx == dr.GetString(2)
                             select e).FirstOrDefault<Empresa>();
         ped2.Actualizado = DateTime.Now;
         if (!dr.IsDBNull(3))
         {
             switch (dr.GetString(3))
             {
                 case "Facturado":
                     ped2.Estado = "FACTURADO";
                     break;
                 case "Pedido Abierto":
                     ped2.Estado = "ABIERTO";
                     break;
                 case "Recibido":
                     ped2.Estado = "RECIBIDO";
                     break;
                 case "Cancelado":
                     ped2.Estado = "CANCELADO";
                     break;
             }
         }
         if (!dr.IsDBNull(4))
         {
             switch (dr.GetString(4))
             {
                 case "Pedido de Compra":
                     ped2.TipoPedido = "COMPRA";
                     break;
                 case "Suscripción":
                     ped2.TipoPedido = "SUSCRIPCION";
                     break;
                 case "Solicitud de Compra":
                     ped2.TipoPedido = "SOLICITUD";
                     break;
             }
         }
         ped2.Responsable = (from r in ctx.Responsables
                             where r.CodAx == dr.GetString(5)
                             select r).FirstOrDefault<Responsable>();
         ped2.FechaAlta = dr.GetDateTime(7);
         if (!dr.IsDBNull(8)) ped2.FechaRecepcion = dr.GetDateTime(8);
         if (!dr.IsDBNull(9)) 
         { 
             ped2.FechaLimite = dr.GetDateTime(9);
             // hay que controlar le fecha nula AX (01/01/1900)
//.........这里部分代码省略.........
开发者ID:rafaelgr,项目名称:portalpro,代码行数:101,代码来源:ImportSqlPedido.cs

示例11: Delete

 /// <summary>
 /// Elimina el log que coincide con el id pasado. La solicitud a la que pertenece
 /// pasa al estado de pendiente.
 /// </summary>
 /// <param name="id">Identificador del log a eliminar</param>
 /// <param name="tk">Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual bool Delete(int id, 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 (SolicitudLogs)"));
         }
         // primero buscamos si un grupo con ese id existe
         SolicitudLog slg = (from s in ctx.SolicitudLogs
                             where s.SolicitudLogId == id
                             select s).FirstOrDefault<SolicitudLog>();
         // existe?
         if (slg == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un log con el id proporcionado (SolicitudLogs)"));
         }
         // salvamos la solicitud que habrá que actualizar
         SolicitudProveedor sp = slg.SolicitudProveedor;
         if (sp != null)
         {
             // Estado 1 = Pendiente
             sp.SolicitudStatus = (from s in ctx.SolicitudStatus
                                   where s.SolicitudStatusId == 1
                                   select s).FirstOrDefault<SolicitudStatus>();
         }
         ctx.Delete(slg);
         
         ctx.SaveChanges();
         return true;
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:40,代码来源:SolicitudesLogController.cs

示例12: Delete

 /// <summary>
 /// Elimina el proveedor que coincide con el id pasado
 /// </summary>
 /// <param name="id">Identificador del proveedor a eliminar</param>
 /// <param name="tk">Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual bool Delete(int id, 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 (Proveedores)"));
         }
         // primero buscamos si un grupo con ese id existe
         Proveedor pro = (from u in ctx.Proveedors
                        where u.ProveedorId == id
                        select u).FirstOrDefault<Proveedor>();
         // existe?
         if (pro == null)
         {
              throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un grupo con el id proporcionado (Proveedores)"));
         }
         // hay que eliminar los ficheros asociados.
         foreach (Documento d in pro.Documentos)
         {
             PortalProWebUtility.EliminarDocumento(d, ctx);
         }
         ctx.Delete(pro);
         ctx.SaveChanges();
         return true;
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:34,代码来源:ProveedoresController.cs

示例13: LaunchFactura

 // este método se ejecutará de manera asíncrona.
 public string LaunchFactura(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_VCabFactura]";
     SqlCommand cmd = new SqlCommand(sql, con);
     int totreg = (int)cmd.ExecuteScalar();
     int numreg = 0;
     sql = @"SELECT  
                 [ACCOUNTNUM]
                 ,[IDEMPRESA]
                 ,[INVOICEID]
                 ,[INVOICEDATE]
                 ,[INVOICEAMOUNT]
                 ,[FECHAPAGO]
                 ,[ESTADI]
                 ,[FECHAVENCIMIENTO]
             FROM [PortalProTest].[dbo].[Cau_PortalPro_VCabFactura]";
     cmd = new SqlCommand(sql, con);
     SqlDataReader dr = cmd.ExecuteReader();
     while (dr.Read())
     {
         numreg++;
         string codAxProveedor = dr.GetString(0);
         string numFactura = dr.GetString(2);
         DateTime fechaFactura = dr.GetDateTime(3);
         Proveedor proveedor = (from pr in ctx.Proveedors
                                where pr.CodAx == codAxProveedor
                                select pr).FirstOrDefault<Proveedor>();
         // Buscamos si la fcatura ya existe
         CabFactura fac = (from f in ctx.CabFacturas
                           where f.NumFactura == numFactura &&
                                 f.FechaEmision == fechaFactura
                           select f).FirstOrDefault<CabFactura>();
         if (fac == null)
         {
             fac = new CabFactura();
             fac.FechaAlta = DateTime.Now;
             ctx.Add(fac);
         }
         fac.Proveedor = proveedor;
         fac.NumFactura = numFactura;
         fac.FechaEmision = fechaFactura;
         fac.Empresa = (from e in ctx.Empresas
                        where e.CodAx == dr.GetString(1)
                        select e).FirstOrDefault<Empresa>();
         string estado = dr.GetString(6);
         switch (estado)
         {
             case "Pagado":
                 fac.Estado = "PAGADA";
                 break;
             case "Recibido":
                 fac.Estado = "PROCESADA";
                 break;
         }
         fac.TotalFactura = dr.GetDecimal(4);
         if (!dr.IsDBNull(5))
             fac.FechaCobro = dr.GetDateTime(5);
         if (!dr.IsDBNull(7))
             fac.FechaPrevistaCobro = dr.GetDateTime(7);
         try
         {
             ctx.SaveChanges();
         }
         catch (Exception ex)
         {
         }
         // cargar las lineas
         try
         {
             LoadAssociateLines(numFactura, fechaFactura);
         }
         catch (Exception ex)
         {
         }
         // Actualizar los registros de proceso
         Progresos progreso = (from p in ctx.Progresos
                               where p.ProgresoId == 4
                               select p).FirstOrDefault<Progresos>();
         if (progreso != null)
         {
             progreso.NumReg = numreg;
             progreso.TotReg = totreg;
             ctx.SaveChanges();
         }
     }
     dr.Close();
     ctx.Dispose();
     con.Close();
     con.Dispose();
     return "";
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:98,代码来源:ImportSqlFactura.cs

示例14: Put

 /// <summary>
 /// Modificar un proveedor. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados
 /// </summary>
 /// <param name="id"> Identificador único del grupo </param>
 /// <param name="proveedor">Grupo de proveedor con los valores que se desean en sus atributos</param>
 /// <param name="tk"> Tique de autorización (Ver 'Login')</param>
 /// <returns></returns>
 public virtual Proveedor Put(int id, Proveedor proveedor, 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 (Proveedores)"));
         }
         // comprobar los formatos
         if (proveedor == null || id != proveedor.ProveedorId)
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un proveedor con ese id existe
         Proveedor pro = (from p in ctx.Proveedors
                        where p.ProveedorId == id
                        select p).FirstOrDefault<Proveedor>();
         // existe?
         if (pro == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un proveedor con el id proporcionado (Proveedores)"));
         }
         int grupoProveedorId = 0;
         // Controlamos las propiedades que son en realidad objetos.
         if (proveedor.GrupoProveedor != null)
         {
             grupoProveedorId = proveedor.GrupoProveedor.GrupoProveedorId;
             proveedor.GrupoProveedor = null;
         }
         // modificar el objeto
         ctx.AttachCopy<Proveedor>(proveedor);
         // volvemos a leer el objecto para que lo maneje este contexto.
         proveedor = (from u in ctx.Proveedors
                    where u.ProveedorId == id
                    select u).FirstOrDefault<Proveedor>();
         if (grupoProveedorId != 0)
         {
             proveedor.GrupoProveedor = (from gp in ctx.GrupoProveedors
                                     where gp.GrupoProveedorId == grupoProveedorId
                                     select gp).FirstOrDefault<GrupoProveedor>();
         }
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<Proveedor>(proveedor, x => x.GrupoProveedor);
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:53,代码来源:ProveedoresController.cs

示例15: Put


//.........这里部分代码省略.........
         {
             throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
         }
         // primero buscamos si un factura con ese id existe
         CabFactura cfac = (from f in ctx.CabFacturas
                            where f.CabFacturaId == id
                            select f).FirstOrDefault<CabFactura>();
         // existe?
         if (cfac == null)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay una factura con el id proporcionado (CabFactura)"));
         }
         if (factura.Estado == "PROCESADA")
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Las facturas procesadas no pueden ser modificadas (CabFactura)"));
         }
         // comprobamos que no hay una factura para el mismo proveedor en ese año y con
         // el mismo número de factura
         CabFactura fc = PortalProWebUtility.YaExisteUnaFacturaComoEsta(factura, ctx);
         if (fc != null)
         {
             string m = String.Format("Ya hay una factura del proveedor para este año {0:yyyy} con el mismo número {1}", fc.FechaEmision, fc.NumFactura);
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, m));
         }
         // Controlamos las propiedades que son en realidad objetos.
         int proveedorId = 0;
         if (factura.Proveedor != null)
         {
             proveedorId = factura.Proveedor.ProveedorId;
             factura.Proveedor = null;
         }
         int documentoPdfId = 0;
         if (factura.DocumentoPdf != null)
         {
             documentoPdfId = factura.DocumentoPdf.DocumentoId;
             factura.DocumentoPdf = null;
         }
         int documentoXmlId = 0;
         if (factura.DocumentoXml != null)
         {
             documentoXmlId = factura.DocumentoXml.DocumentoId;
             factura.DocumentoXml = null;
         }
         int empresaId = 0;
         if (factura.Empresa != null)
         {
             empresaId = factura.Empresa.EmpresaId;
             factura.Empresa = null;
         }
         int responsableId = 0;
         if (factura.Responsable != null)
         {
             responsableId = factura.Responsable.ResponsableId;
             factura.Responsable = null;
         }
         // modificar el objeto
         if (factura.Estado == null)
             factura.Estado = "ACEPTADA";
         ctx.AttachCopy<CabFactura>(factura);
         // volvemos a leer el objecto para que lo maneje este contexto.
         factura = (from f in ctx.CabFacturas
                    where f.CabFacturaId == id
                    select f).FirstOrDefault<CabFactura>();
         if (proveedorId != 0)
         {
             factura.Proveedor = (from p in ctx.Proveedors
                                  where p.ProveedorId == proveedorId
                                  select p).FirstOrDefault<Proveedor>();
         }
         if (documentoPdfId != 0)
         {
             factura.DocumentoPdf = (from d in ctx.Documentos
                                     where d.DocumentoId == documentoPdfId
                                     select d).FirstOrDefault<Documento>();
         }
         if (documentoXmlId != 0)
         {
             factura.DocumentoXml = (from d in ctx.Documentos
                                     where d.DocumentoId == documentoXmlId
                                     select d).FirstOrDefault<Documento>();
         }
         if (empresaId != 0)
         {
             factura.Empresa = (from e in ctx.Empresas
                                where e.EmpresaId == empresaId
                                select e).FirstOrDefault<Empresa>();
         }
         if (responsableId != 0)
         {
             factura.Responsable = (from r in ctx.Responsables
                                    where r.ResponsableId == responsableId
                                    select r).FirstOrDefault<Responsable>();
         }
         factura.Historial += String.Format("{0:dd/MM/yyyy hh:mm:ss} La factura {1} con Total {2:0.0} € has sido modificada con estado {3} <br/>",
             DateTime.Now, factura.NumFactura, factura.TotalFactura, factura.Estado);
         factura.Generada = false;
         ctx.SaveChanges();
         return ctx.CreateDetachedCopy<CabFactura>(factura, x => x.Proveedor, x => x.DocumentoPdf, x => x.DocumentoXml);
     }
 }
开发者ID:rafaelgr,项目名称:portalpro,代码行数:101,代码来源:CabFacturaController.cs


注:本文中的PortalProModelo.PortalProContext.SaveChanges方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。