public void Terminar_puja(int p_Puja_OID, Nullable <DateTime> p_fecha, float p_puja_inicial, float p_puja_max, int p_id_usuario, bool p_cerrada, bool p_pagada)
        {
            /*PROTECTED REGION ID(DSM1GenNHibernate.CP.DSM1_Puja_terminar_puja) ENABLED START*/

            IPujaCAD pujaCAD = null;
            PujaCEN  pujaCEN = null;



            try
            {
                SessionInitializeTransaction();
                pujaCAD = new PujaCAD(session);
                pujaCEN = new PujaCEN(pujaCAD);

                IList <OfertaPujaEN> pujas         = pujaCEN.get_IPujaCAD().ReadOIDDefault(p_Puja_OID).OfertaPuja; //Lista de pujas hechas en esta subasta
                OfertaPujaEN         puja_ganadora = null;

                if (pujaCEN.get_IPujaCAD().ReadOIDDefault(p_Puja_OID).Cerrada)
                {
                    Exception ex = new Exception("YA ESTABA CERRADA");
                    throw ex;
                }

                foreach (OfertaPujaEN p in pujas)
                {
                    if (p.Cantidad_puja == p_puja_max)
                    {
                        puja_ganadora = p;
                        break;
                    }
                }
                if (puja_ganadora != null)
                {
                    pujaCEN.Declarar_ganador(p_Puja_OID, puja_ganadora.Registrado.Id);
                    RegistradoCEN registradoCEN = new RegistradoCEN();
                    Console.ForegroundColor = ConsoleColor.Red;
                    System.Console.WriteLine("    PUJA FINALIZADA -- GANADOR: " + registradoCEN.get_IRegistradoCAD().ReadOIDDefault(puja_ganadora.Registrado.Id).N_usuario + "\n");
                }

                PujaEN pujaEN = null;
                //Initialized PujaEN
                pujaEN              = new PujaEN();
                pujaEN.Id           = p_Puja_OID;
                pujaEN.Fecha        = p_fecha;
                pujaEN.Puja_inicial = p_puja_inicial;
                pujaEN.Puja_max     = p_puja_max;
                pujaEN.Id_usuario   = p_id_usuario;
                pujaEN.Cerrada      = p_cerrada;
                //Call to PujaCAD

                pujaCAD.Terminar_puja(pujaEN);


                SessionCommit();
            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }


            /*PROTECTED REGION END*/
        }
 public PujaCEN()
 {
     this._IPujaCAD = new PujaCAD();
 }
 public PujaCEN(IPujaCAD _IPujaCAD)
 {
     this._IPujaCAD = _IPujaCAD;
 }
Exemple #4
0
        public DSM1GenNHibernate.EN.DSM1.OfertaPujaEN Nueva_oferta(Nullable <DateTime> p_fecha, Nullable <DateTime> p_tiempo, int p_registrado, int p_puja, float p_cantidad_puja)
        {
            /*PROTECTED REGION ID(DSM1GenNHibernate.CP.DSM1_OfertaPuja_nueva_oferta) ENABLED START*/

            IOfertaPujaCAD ofertaPujaCAD = null;
            OfertaPujaCEN  ofertaPujaCEN = null;

            IPujaCAD pujaCAD = null;
            PujaCEN  pujaCEN = null;

            DSM1GenNHibernate.EN.DSM1.OfertaPujaEN result = null;


            try
            {
                SessionInitializeTransaction();
                ofertaPujaCAD = new OfertaPujaCAD(session);
                ofertaPujaCEN = new  OfertaPujaCEN(ofertaPujaCAD);

                pujaCAD = new PujaCAD(session);
                pujaCEN = new PujaCEN(pujaCAD);

                PujaEN pujaEN = pujaCEN.get_IPujaCAD().ReadOIDDefault(p_puja);    //Consigo la puja a la cual va dirigida esta oferta

                if (pujaEN.Cerrada == true)
                {
                    Exception cerrada = new Exception("Está cerrada, largo de aquí!");
                    throw cerrada;
                }

                if (pujaEN.Id_usuario == p_registrado)
                {
                    Exception PP = new Exception("Ya eres el máximo pujador, vuelve más tarde");
                    throw PP;
                }

                if (pujaEN.Puja_max < p_cantidad_puja && pujaEN.Puja_inicial < p_cantidad_puja)
                {
                    //System.Console.WriteLine("NUEVA PUJA! "+p_registrado + " "+p_puja+ " "+p_cantidad_puja+"�");
                    PujaEN nueva = new PujaEN();
                    nueva.Id           = pujaEN.Id;
                    nueva.Fecha        = pujaEN.Fecha;
                    nueva.Puja_inicial = pujaEN.Puja_inicial;

                    nueva.Puja_max   = p_cantidad_puja;  //Cambiamos la puja max
                    nueva.Id_usuario = p_registrado;     //Y el usuario

                    nueva.Cerrada = pujaEN.Cerrada;

                    pujaCEN.get_IPujaCAD().Actualizar(nueva);       //Actualizamos
                }
                else
                {
                    Exception pasta = new Exception("Debes introducir un importe mayor!");
                    throw pasta;
                }
                int oid;
                //Initialized OfertaPujaEN
                OfertaPujaEN ofertaPujaEN;
                ofertaPujaEN       = new OfertaPujaEN();
                ofertaPujaEN.Fecha = p_fecha;

                ofertaPujaEN.Tiempo = p_tiempo;


                if (p_registrado != -1)
                {
                    ofertaPujaEN.Registrado    = new DSM1GenNHibernate.EN.DSM1.RegistradoEN();
                    ofertaPujaEN.Registrado.Id = p_registrado;
                }


                if (p_puja != -1)
                {
                    ofertaPujaEN.Puja    = new DSM1GenNHibernate.EN.DSM1.PujaEN();
                    ofertaPujaEN.Puja.Id = p_puja;
                }

                ofertaPujaEN.Cantidad_puja = p_cantidad_puja;

                //Call to OfertaPujaCAD

                oid    = ofertaPujaCAD.Nueva_oferta(ofertaPujaEN);
                result = ofertaPujaCAD.ReadOIDDefault(oid);



                SessionCommit();
            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }
            return(result);


            /*PROTECTED REGION END*/
        }