public static void eliminarOfertaComprador(int idSubasta, int idComprador, int idLote)
 {
     try
     {
         var EPuja = new Repository <Entidades.Puja>();
         var puja  = EPuja.Retrieve(x => x.Id_Comprador == idComprador && x.Id_Lote == idLote && x.Activo == true);
         //desactivamos la puja
         puja.Activo = false;
         EPuja.Update(puja);
         var ESeguimientoPuja = new Repository <Entidades.Seguimiento_Puja>();
         //desactivamos los seguimientos
         var listaSegumientos = ESeguimientoPuja.Filter(x => x.Id_Puja == puja.Id);
         foreach (var seguimiento in listaSegumientos)
         {
             seguimiento.Activo = false;
             ESeguimientoPuja.Update(seguimiento);
         }
         //creamos el seguimiento "eliminado"
         Entidades.Seguimiento_Puja pujaEliminada = new Entidades.Seguimiento_Puja();
         pujaEliminada.Activo        = false;
         pujaEliminada.Valor         = 0;
         pujaEliminada.Id_Subasta    = idSubasta;
         pujaEliminada.Id_Puja       = puja.Id;
         pujaEliminada.FechaCreacion = DateTime.Now;
         ESeguimientoPuja.Create(pujaEliminada);
     }
     catch (Exception)
     {
         throw;
     }
 }
 public static void actualizarOferta(int idSubasta, int idComprador, string valor, int idLote)
 {
     try
     {
         var ESeguimientoPuja            = new Repository <Entidades.Seguimiento_Puja>();
         Entidades.Seguimiento_Puja puja = new Entidades.Seguimiento_Puja();
         var EPuja      = new Repository <Entidades.Puja>();
         var pujaactiva = EPuja.Retrieve(x => x.Id_Comprador == idComprador && x.Id_Lote == idLote && x.Activo == true);
         // desactivamos los seguimientos anteriores
         var listaDesactivar = ESeguimientoPuja.Filter(x => x.Id_Puja == pujaactiva.Id);
         foreach (var seguimiento in listaDesactivar)
         {
             seguimiento.Activo = false;
             ESeguimientoPuja.Update(seguimiento);
         }
         //creamos el nuevo seguimiento
         puja.Id_Puja       = pujaactiva.Id;
         puja.Id_Subasta    = idSubasta;
         puja.Valor         = Convert.ToDecimal(valor);
         puja.FechaCreacion = DateTime.Now;
         puja.Activo        = true;
         ESeguimientoPuja.Create(puja);
     }
     catch (Exception)
     {
         throw;
     }
 }
        public void guardarOferta(int idLote, int idSubasta, int idComprador, string numeroLote, decimal valorOferta)
        {
            var EPuja            = new Repository <Entidades.Puja>();
            var ESeguimientoPuja = new Repository <Entidades.Seguimiento_Puja>();
            var EPrcentajeP      = new Repository <Entidades.Porcentaje_Puja>();



            var  existePuja = EPuja.GetAll().Exists(x => x.Id_Comprador == idComprador && x.Id_Lote == idLote);
            bool existe;

            if (existePuja == false)
            {
                Entidades.Puja puja = new Entidades.Puja();
                puja.Id_Comprador = idComprador;
                puja.Id_Lote      = idLote;
                puja.NumeroLote   = numeroLote;
                puja.Activo       = true;
                EPuja.Create(puja);

                Entidades.Seguimiento_Puja seguimientoP = new Entidades.Seguimiento_Puja();
                seguimientoP.Id_Puja       = puja.Id;
                seguimientoP.Valor         = Convert.ToDecimal(valorOferta);
                seguimientoP.Id_Subasta    = idSubasta;
                seguimientoP.FechaCreacion = DateTime.Now;
                seguimientoP.Activo        = true;
                ESeguimientoPuja.Create(seguimientoP);
                existe = false;
            }
            else
            {
                Entidades.Seguimiento_Puja puja = new Entidades.Seguimiento_Puja();

                var pujaactiva = EPuja.Retrieve(x => x.Id_Comprador == idComprador && x.Id_Lote == idLote && x.Activo == true);
                // desactivamos los seguimientos anteriores
                var listaDesactivar = ESeguimientoPuja.Filter(x => x.Id_Puja == pujaactiva.Id);
                foreach (var seguimiento in listaDesactivar)
                {
                    seguimiento.Activo = false;
                    ESeguimientoPuja.Update(seguimiento);
                }
                //creamos el nuevo seguimiento
                puja.Id_Puja       = pujaactiva.Id;
                puja.Id_Subasta    = idSubasta;
                puja.Valor         = Convert.ToDecimal(valorOferta);
                puja.FechaCreacion = DateTime.Now;
                puja.Activo        = true;
                ESeguimientoPuja.Create(puja);
            }
        }
        public static bool guardarOfertaC(int idLote, int idSubasta, int idComprador, string valorOferta, string numLote)
        {
            try
            {
                var EPuja            = new Repository <Entidades.Puja>();
                var ESeguimientoPuja = new Repository <Entidades.Seguimiento_Puja>();
                var EPrcentajeP      = new Repository <Entidades.Porcentaje_Puja>();



                var  existePuja = EPuja.GetAll().Exists(x => x.Id_Comprador == idComprador && x.Id_Lote == idLote);
                bool existe;
                if (existePuja == false)
                {
                    Entidades.Puja puja = new Entidades.Puja();
                    puja.Id_Comprador = idComprador;
                    puja.Id_Lote      = idLote;
                    puja.NumeroLote   = numLote;
                    puja.Activo       = true;
                    EPuja.Create(puja);

                    Entidades.Seguimiento_Puja seguimientoP = new Entidades.Seguimiento_Puja();
                    seguimientoP.Id_Puja       = puja.Id;
                    seguimientoP.Valor         = Convert.ToDecimal(valorOferta);
                    seguimientoP.Id_Subasta    = idSubasta;
                    seguimientoP.FechaCreacion = DateTime.Now;
                    seguimientoP.Activo        = true;
                    ESeguimientoPuja.Create(seguimientoP);
                    existe = false;
                }
                else
                {
                    existe = true;
                }

                return(existe);
            }
            catch (Exception)
            {
                throw;
            }
        }