Example #1
0
        public static ObservableCollection <Grup> selectGrupsDeUnTorneig(Int32 idTorneig)
        {
            ObservableCollection <Grup> grups = new ObservableCollection <Grup>();

            //---------------------------------
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select * from grup where torneig_id = @idTorneig";
                    UtilsDB.AddParameter(consulta, "idTorneig", idTorneig, MySqlDbType.Int32);
                    MySqlDataReader reader = consulta.ExecuteReader();

                    while (reader.Read())
                    {
                        Int32   num                = reader.GetInt32(reader.GetOrdinal("num"));
                        string  description        = reader.GetString(reader.GetOrdinal("description"));
                        Int32   carambolesVictoria = reader.GetInt32(reader.GetOrdinal("caramboles_victoria"));
                        Int32   limitEntrades      = reader.GetInt32(reader.GetOrdinal("limit_entrades"));
                        Torneig t = TorneigBD.selectTorneigPerId(idTorneig);
                        Grup    g = new Grup(num, description, carambolesVictoria, limitEntrades, t);

                        grups.Add(g);
                    }
                }
            }
            return(grups);
        }
Example #2
0
        internal static int tancarTorneig(int id)
        {
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();

                MySqlTransaction trans = connexio.BeginTransaction();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.Transaction = trans;
                    consulta.CommandText = @"update torneig set data_finalitzacio=@data_final where id = @idTorneig";

                    String dateTimeCorrecto = getDataSQLFromDateTime(DateTime.Now);

                    UtilsDB.AddParameter(consulta, "data_final", dateTimeCorrecto, MySqlDbType.String);
                    UtilsDB.AddParameter(consulta, "idTorneig", id, MySqlDbType.Int32);

                    try
                    {
                        consulta.ExecuteNonQuery();
                        trans.Commit();
                        return(1);
                    }
                    catch (Exception e)
                    {
                        return(0);
                    }
                }
            }
        }
Example #3
0
        internal static void insertTorneig(Torneig t, String data)
        {
            String b;

            if (t.PreinscripcioOberta == 0)
            {
                b = "true";
            }
            else
            {
                b = "false";
            }
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"INSERT INTO torneig (nom, data_inici, preinscripcio_oberta, modalitat_id) VALUES (@nomTorneig, @data, @actiu, @modalitat);";
                    UtilsDB.AddParameter(consulta, "nomTorneig", t.Nom, MySqlDbType.String);
                    UtilsDB.AddParameter(consulta, "data", data, MySqlDbType.String);
                    UtilsDB.AddParameter(consulta, "actiu", t.PreinscripcioOberta, MySqlDbType.Int32);
                    Int64 modalitatId = selectModalitatPerId((Int32)(long)t.Modalitat.Id).Id;
                    UtilsDB.AddParameter(consulta, "modalitat", modalitatId, MySqlDbType.Int32);

                    consulta.ExecuteNonQuery();
                }
            }
        }
Example #4
0
        internal static void EsborrarPartidesDeUnTorneig(int idTorneig)
        {
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                MySqlTransaction trans = connexio.BeginTransaction();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.Transaction = trans;

                    consulta.CommandText = "delete from partida where torneig_id =@idTorneig";
                    UtilsDB.AddParameter(consulta, "idTorneig", idTorneig, MySqlDbType.Int32);

                    try
                    {
                        consulta.ExecuteNonQuery();
                        trans.Commit();
                    }
                    catch (Exception e)
                    {
                        trans.Rollback();
                    }
                }
            }
        }
Example #5
0
        internal static bool TorneigActiuONo(int idTorneig)
        {
            DateTime finalitzatONo;

            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select * from torneig where id = @idTorneig";
                    UtilsDB.AddParameter(consulta, "idTorneig", idTorneig, MySqlDbType.Int32);

                    MySqlDataReader reader = consulta.ExecuteReader();
                    while (reader.Read())
                    {
                        try
                        {
                            finalitzatONo = reader.GetDateTime(reader.GetOrdinal("data_finalitzacio"));
                            if (finalitzatONo <= DateTime.Now || (finalitzatONo.Day == DateTime.Now.Day && finalitzatONo.Month == DateTime.Now.Month && finalitzatONo.Year == DateTime.Now.Year))
                            {
                                return(false);
                            }
                        }
                        catch (Exception e)
                        {
                            return(true);
                        }
                    }
                }
            }
            return(true);
        }
Example #6
0
        internal static int tancarPreinscripcioTorneig(int id)
        {
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();

                MySqlTransaction trans = connexio.BeginTransaction();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.Transaction = trans;
                    consulta.CommandText = @"update torneig set preinscripcio_oberta=0 where id = @idTorneig";

                    UtilsDB.AddParameter(consulta, "idTorneig", id, MySqlDbType.Int32);

                    try
                    {
                        consulta.ExecuteNonQuery();
                        trans.Commit();
                        return(1);
                    }
                    catch (Exception e)
                    {
                        return(0);
                    }
                }
            }
        }
Example #7
0
        private static Grup selectGrupDeUnTorneigIUnGrup(int idT, int numG)
        {
            Grup g = null;

            //---------------------------------
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select * from grup where torneig_id = @idTorneig and num = @numGrup";
                    UtilsDB.AddParameter(consulta, "idTorneig", idT, MySqlDbType.Int32);
                    UtilsDB.AddParameter(consulta, "numGrup", numG, MySqlDbType.Int32);
                    MySqlDataReader reader = consulta.ExecuteReader();

                    while (reader.Read())
                    {
                        Int32   num                = reader.GetInt32(reader.GetOrdinal("num"));
                        string  description        = reader.GetString(reader.GetOrdinal("description"));
                        Int32   carambolesVictoria = reader.GetInt32(reader.GetOrdinal("caramboles_victoria"));
                        Int32   limitEntrades      = reader.GetInt32(reader.GetOrdinal("limit_entrades"));
                        Torneig t = TorneigBD.selectTorneigPerId(idT);
                        g = new Grup(num, description, carambolesVictoria, limitEntrades, t);
                    }
                }
            }
            return(g);
        }
Example #8
0
        private static Soci selectSociPerId(int idS)
        {
            Soci s = null;

            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select * from soci s where s.Id = @sId";
                    UtilsDB.AddParameter(consulta, "sId", idS, MySqlDbType.Int32);

                    MySqlDataReader reader = consulta.ExecuteReader();
                    while (reader.Read())
                    {
                        Int32    id           = reader.GetInt32(reader.GetOrdinal("id"));
                        string   nif          = reader.GetString(reader.GetOrdinal("nif"));
                        string   nom          = reader.GetString(reader.GetOrdinal("nom"));
                        string   cognom1      = reader.GetString(reader.GetOrdinal("cognom1"));
                        string   cognom2      = reader.GetString(reader.GetOrdinal("cognom2"));
                        DateTime dataAlta     = reader.GetDateTime(reader.GetOrdinal("data_alta"));
                        string   passwordHash = reader.GetString(reader.GetOrdinal("password_hash"));
                        Int32    actiu        = reader.GetInt32(reader.GetOrdinal("actiu"));
                        s = new Soci(id, nif, nom, cognom1, cognom2, dataAlta, passwordHash, actiu);
                    }
                }
            }
            return(s);
        }
Example #9
0
        public static Torneig selectTorneigPerId(int idTorneig)
        {
            Torneig t = null;

            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select * from torneig where id = @idTorneig";
                    UtilsDB.AddParameter(consulta, "idTorneig", idTorneig, MySqlDbType.Int32);
                    MySqlDataReader reader = consulta.ExecuteReader();

                    while (reader.Read())
                    {
                        Int32    id               = reader.GetInt32(reader.GetOrdinal("id"));
                        string   nom              = reader.GetString(reader.GetOrdinal("nom"));
                        DateTime dataAlta         = reader.GetDateTime(reader.GetOrdinal("data_inici"));
                        DateTime dataFinalitzacio = new DateTime();
                        try
                        {
                            dataFinalitzacio = reader.GetDateTime(reader.GetOrdinal("data_finalitzacio"));
                        }
                        catch (Exception e)
                        {
                        }

                        Int32     preinscripcioOberta = reader.GetInt32(reader.GetOrdinal("preinscripcio_oberta"));
                        Modalitat mod = TorneigBD.selectModalitatPerId(reader.GetInt32(reader.GetOrdinal("modalitat_id")));
                        t = new Torneig(id, nom, dataAlta, dataFinalitzacio, preinscripcioOberta, mod);
                    }
                }
            }
            return(t);
        }
Example #10
0
        internal static void updateInscritEnUnGrup(Inscrit i, Grup g)
        {
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();

                MySqlTransaction trans = connexio.BeginTransaction();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.Transaction = trans;
                    consulta.CommandText = @"update inscrit set grup_num = @grupNum where soci_id = @idSoci and torneig_id = @idTorneig";

                    UtilsDB.AddParameter(consulta, "grupNum", g.Num, MySqlDbType.Int32);
                    UtilsDB.AddParameter(consulta, "idTorneig", i.Torneig.Id, MySqlDbType.Int32);
                    UtilsDB.AddParameter(consulta, "idSoci", i.Soci.Id, MySqlDbType.Int32);
                    try
                    {
                        consulta.ExecuteNonQuery();
                        trans.Commit();
                    }
                    catch (Exception e)
                    {
                    }
                }
            }
        }
Example #11
0
        public void Guardar(Pedido p)
        {
            using (var tx = _BD.IniciarTransaccion())
            {
                try
                {
                    string sqltxt = $"INSERT [dbo].[Pedido] ([fechaPedido])" +
                                    $" VALUES ('{UtilsDB.GetFecha(p.fechaPedido)}')";
                    p.id = _BD.EjecutarTransaccion(sqltxt);
                    if (p.id == 0)
                    {
                        throw new ApplicationException();
                    }

                    foreach (var d in p.detallePedidos)
                    {
                        sqltxt = $"INSERT [dbo].[Detalle_Pedido]" +
                                 $"([id_Pedido], [Cantidad], [id_Disco]) " +
                                 $"VALUES ('{p.id}', '{d.cantidad}', '{d.idDisco}')";
                        _BD.EjecutarTransaccion(sqltxt);

                        sqltxt = $"SELECT cantidad FROM Disco WHERE id={d.idDisco}";

                        var stock =
                            int.Parse(_BD.ConsultaDuranteTransaccion(sqltxt).Rows[0]["cantidad"].ToString());

                        int number;
                        if (!int.TryParse(d.cantidad, out number))
                        {
                            throw new ApplicationException("La cantidad ingresada no corresponde.");
                        }
                        if (number <= 0)
                        {
                            throw new ApplicationException("La cantidad ingresada no corresponde.");
                        }
                        int nuevoStock = stock + number;


                        sqltxt = $"UPDATE [dbo].[Disco] SET cantidad = '{nuevoStock}' WHERE id={d.idDisco}";
                        _BD.EjecutarTransaccion(sqltxt);
                    }

                    tx.Commit();
                }
                catch (ApplicationException aex)
                {
                    throw aex;
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    throw new Exception("No se pudo realizar la operaciĆ³n.");
                }
                finally
                {
                    _BD.cerrar();
                }
            }
        }
Example #12
0
        public static ObservableCollection <Inscrit> selectInscritsDeUnTorneigIGrup(Int32 idTorneig, Grup g)
        {
            DateTime data;
            ObservableCollection <Inscrit> inscrits = new ObservableCollection <Inscrit>();

            //---------------------------------
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select inscrit.* from inscrit where inscrit.torneig_id = @idTorneig and inscrit.grup_num = @numGrup";
                    UtilsDB.AddParameter(consulta, "idTorneig", idTorneig, MySqlDbType.Int32);
                    UtilsDB.AddParameter(consulta, "numGrup", g.Num, MySqlDbType.Int32);

                    MySqlDataReader reader = consulta.ExecuteReader();
                    while (reader.Read())
                    {
                        Inscrit i;

                        Int32 idS  = reader.GetInt32(reader.GetOrdinal("soci_id"));
                        Int32 idT  = reader.GetInt32(reader.GetOrdinal("torneig_id"));
                        Int32 numG = -1;
                        try
                        {
                            numG = reader.GetInt32(reader.GetOrdinal("grup_num"));
                        }
                        catch (Exception e)
                        {
                        }
                        data = reader.GetDateTime(reader.GetOrdinal("data"));

                        Soci    s = TorneigBD.selectSociPerId(idS);
                        Torneig t = TorneigBD.selectTorneigPerId(idT);
                        if (numG != -1)
                        {
                            Grup gr = TorneigBD.selectGrupDeUnTorneigIUnGrup(idT, numG);
                            i = new Inscrit(s, t, gr, data);
                            inscrits.Add(i);
                        }
                        else
                        {
                            i = new Inscrit(s, t, null, data);
                            inscrits.Add(i);
                        }
                    }
                }
            }
            return(inscrits);
        }
Example #13
0
        internal static int selectCountPartidesTotalesDeTorneig(int idTorneig)
        {
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select count(*) from partida where torneig_id = @idTorneig";
                    UtilsDB.AddParameter(consulta, "idTorneig", idTorneig, MySqlDbType.Int32);

                    return((Int32)(long)consulta.ExecuteScalar());
                }
            }
        }
Example #14
0
        public static ObservableCollection <Inscrit> selectInscritsDeUnTorneig(Int32 idTorneig)
        {
            DateTime data;
            ObservableCollection <Inscrit> inscrits = new ObservableCollection <Inscrit>();

            //---------------------------------
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select inscrit.* from inscrit inner join soci on inscrit.soci_id = soci.id left join estadistica_modalitat on estadistica_modalitat.soci_id = soci.id where inscrit.torneig_id = @idTorneig and inscrit.grup_num is NULL and estadistica_modalitat.modalitat_id = 1 order by estadistica_modalitat.coeficient_base desc";
                    UtilsDB.AddParameter(consulta, "idTorneig", idTorneig, MySqlDbType.Int32);

                    MySqlDataReader reader = consulta.ExecuteReader();
                    while (reader.Read())
                    {
                        Inscrit i;

                        Int32 idS  = reader.GetInt32(reader.GetOrdinal("soci_id"));
                        Int32 idT  = reader.GetInt32(reader.GetOrdinal("torneig_id"));
                        Int32 numG = -1;
                        try
                        {
                            numG = reader.GetInt32(reader.GetOrdinal("grup_num"));
                        }
                        catch (Exception e)
                        {
                        }
                        data = reader.GetDateTime(reader.GetOrdinal("data"));

                        Soci    s = TorneigBD.selectSociPerId(idS);
                        Torneig t = TorneigBD.selectTorneigPerId(idT);
                        if (numG != -1)
                        {
                            Grup g = TorneigBD.selectGrupDeUnTorneigIUnGrup(idT, numG);
                            i = new Inscrit(s, t, g, data);
                            inscrits.Add(i);
                        }
                        else
                        {
                            i = new Inscrit(s, t, null, data);
                            inscrits.Add(i);
                        }
                    }
                }
            }
            return(inscrits);
        }
Example #15
0
        internal static int selectCountPartidesJugadasPerIdTorneigNumGrup(int idTorneig, int numGrup)
        {
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select count(*) from partida where torneig_id = @idTorneig and grup_num = @numGrup and estat_partida = 'jugada'";
                    UtilsDB.AddParameter(consulta, "idTorneig", idTorneig, MySqlDbType.Int32);
                    UtilsDB.AddParameter(consulta, "numGrup", numGrup, MySqlDbType.Int32);

                    return((Int32)(long)consulta.ExecuteScalar());
                }
            }
        }
Example #16
0
 internal static void insertGrupAUnTorneig(int id, Grup g)
 {
     using (MySqlConnection connexio = MySQL.GetConnexio())
     {
         connexio.Open();
         using (MySqlCommand consulta = connexio.CreateCommand())
         {
             consulta.CommandText = @"INSERT INTO grup (num, description, caramboles_victoria, limit_entrades, torneig_id) VALUES (@GrupNum, @desc, @caramboles, @entrades, @idTorneig);";
             UtilsDB.AddParameter(consulta, "GrupNum", g.Num, MySqlDbType.Int32);
             UtilsDB.AddParameter(consulta, "desc", g.Description, MySqlDbType.String);
             UtilsDB.AddParameter(consulta, "caramboles", g.Caramboles_victoria, MySqlDbType.Int32);
             UtilsDB.AddParameter(consulta, "entrades", g.Limit_entrades, MySqlDbType.Int32);
             UtilsDB.AddParameter(consulta, "idTorneig", id, MySqlDbType.Int32);
             consulta.ExecuteNonQuery();
         }
     }
 }
Example #17
0
        internal static Int32 selectPartidesPerdudesDeUnInscrit(int idTorneig, int num, Inscrit inscrit)
        {
            Int32 contador = 0;

            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select count(*) from partida where torneig_id = @idTorneig and grup_num = @numGrup and (inscrit_a = @idSoci and guanyador = 'B') or (inscrit_b = @idSoci and guanyador = 'A') and estat_partida = 'jugada'";
                    UtilsDB.AddParameter(consulta, "idTorneig", idTorneig, MySqlDbType.Int32);
                    UtilsDB.AddParameter(consulta, "numGrup", num, MySqlDbType.Int32);
                    UtilsDB.AddParameter(consulta, "idSoci", inscrit.Soci.Id, MySqlDbType.Int32);

                    return((Int32)(long)consulta.ExecuteScalar());
                }
            }
        }
Example #18
0
        public static float selectCoeficientDeUnInscrit(Inscrit i)
        {
            float coeficient = 0;

            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select coeficient_base from estadistica_modalitat inner join soci on estadistica_modalitat.soci_id = soci.id left join inscrit on inscrit.soci_id = soci.id where estadistica_modalitat.modalitat_id = 1 and soci.id = @sociId";
                    UtilsDB.AddParameter(consulta, "sociId", i.Soci.Id, MySqlDbType.Int32);

                    MySqlDataReader reader = consulta.ExecuteReader();
                    while (reader.Read())
                    {
                        coeficient = reader.GetFloat(reader.GetOrdinal("coeficient_base"));
                    }
                }
            }
            return(coeficient);
        }
Example #19
0
        internal static object selectTornejosFiltrados(bool data, bool estat)
        {
            String dataString = data == true ? "asc" : "desc";
            Int32  estatInt   = estat == true ? 1 : 0;

            ObservableCollection <Torneig> tornejos = new ObservableCollection <Torneig>();

            //---------------------------------
            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = data == true ? @"select * from torneig where preinscripcio_oberta = @estat order by data_inici asc" : @"select * from torneig where preinscripcio_oberta = @estat order by data_inici desc";
                    UtilsDB.AddParameter(consulta, "estat", estatInt, MySqlDbType.Int32);

                    MySqlDataReader reader = consulta.ExecuteReader();
                    while (reader.Read())
                    {
                        Int32    id               = reader.GetInt32(reader.GetOrdinal("id"));
                        string   nom              = reader.GetString(reader.GetOrdinal("nom"));
                        DateTime dataAlta         = reader.GetDateTime(reader.GetOrdinal("data_inici"));
                        DateTime dataFinalitzacio = new DateTime();
                        try
                        {
                            dataFinalitzacio = reader.GetDateTime(reader.GetOrdinal("data_finalitzacio"));
                        }
                        catch (Exception e)
                        {
                        }
                        Int32     preinscripcioOberta = reader.GetInt32(reader.GetOrdinal("preinscripcio_oberta"));
                        Modalitat mod = TorneigBD.selectModalitatPerId(reader.GetInt32(reader.GetOrdinal("modalitat_id")));
                        Torneig   t   = new Torneig(id, nom, dataAlta, dataFinalitzacio, preinscripcioOberta, mod);

                        tornejos.Add(t);
                    }
                }
            }
            return(tornejos);
        }
Example #20
0
        internal static Modalitat selectModalitatPerNom(string mSeleccionada)
        {
            Modalitat m = null;

            using (MySqlConnection connexio = MySQL.GetConnexio())
            {
                connexio.Open();
                using (MySqlCommand consulta = connexio.CreateCommand())
                {
                    consulta.CommandText = @"select * from modalitat m where m.description = @mNom";
                    UtilsDB.AddParameter(consulta, "mNom", mSeleccionada, MySqlDbType.String);

                    MySqlDataReader reader = consulta.ExecuteReader();
                    while (reader.Read())
                    {
                        string descripcio = reader.GetString(reader.GetOrdinal("description"));
                        Int32  id         = reader.GetInt32(reader.GetOrdinal("id"));
                        m = new Modalitat(id, descripcio);
                    }
                }
            }
            return(m);
        }
Example #21
0
        public Result A(in_isAlive req)
        {
            base.Init_Request_Data(enumAction.IsAlive, req, req.IP, req.UA, req.T);

            string   exc     = null;
            IPHolder cacheIP = null;

            #region MyRegion VALIDATION

            if (!ModelState.IsValid || !base.ValidRequestFromServerIP)
            {
                cacheIP = Cache_IP.IP_Get(req.IP, 1, out exc, ref base.APICreateDate_ISR, ref base.ProjectType);

                #region MyRegion LOG

                UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType._1_PayloadError,
                                       base.SerializedRequest,
                                       "base.ValidRequestFromServerIP IP:" + base.ServerIP + " IsValid:" + base.ValidRequestFromServerIP.ToString(),
                                       Newtonsoft.Json.JsonConvert.SerializeObject(ModelState.Keys) + " -> cacheip:" + Newtonsoft.Json.JsonConvert.SerializeObject(cacheIP),
                                       true,
                                       base.Refferer,
                                       base.IP,
                                       base.UA,
                                       ref base.APICreateDate,
                                       ref base.APICreateDate_ISR,
                                       ref base.APITransaction, true, req.IP, base.ProjectType);

                #endregion

                return(AppResponse.Any(enumReturnStatus.PayloadError, null));
            }

            #endregion

            Guid ProjectToken = base.APITransaction;
            if (!AppManager.CampaignAlive(base.APICreateDate_ISR, base.ProjectType, ref base.APITransaction, out ProjectToken))
            {
                cacheIP = Cache_IP.IP_Get(req.IP, 1, out exc, ref base.APICreateDate_ISR, ref base.ProjectType);

                #region MyRegion LOG

                UtilsDB.API_Log_Insert(this.Action, enumLogType.End, enumLogType.Response,
                                       base.SerializedRequest,
                                       Newtonsoft.Json.JsonConvert.SerializeObject(cacheIP),
                                       null,
                                       true,
                                       base.Refferer,
                                       base.IP,
                                       base.UA,
                                       ref base.APICreateDate,
                                       ref base.APICreateDate_ISR,
                                       ref base.APITransaction, false, null, base.ProjectType);

                #endregion

                return(AppResponse.Any(enumReturnStatus.Ends, null));
            }

            Dictionary <string, dynamic> result = new Dictionary <string, dynamic>()
            {
                { "P", ProjectToken },
                { "UI", null },
                { "Pets", null }
            };

            List <UIOut> uimsg = new List <Models.UIOut>();

            if (req.ND.GetValueOrDefault(false))
            {
                uimsg        = AppManager.UIResponse_Get(ref base.APICreateDate_ISR, base.ProjectType);
                result["UI"] = uimsg;

                #region MyRegion PET REMOVED - PREDEFINED NOW
                //if (uimsg.Count > 0)
                //{
                //    result["Pets"] = AppManager.PetProjectGet(ref base.APICreateDate_ISR, base.ProjectType);
                //}
                #endregion
            }

            //CHECK IF IP NEED CAPTCHA BUT DO NOT ADD, WE WILL ADD LATER IF NEEDED

            cacheIP = Cache_IP.IP_Get(req.IP, 0, out exc, ref base.APICreateDate_ISR, ref base.ProjectType);
            bool needCaptcha = cacheIP.need_Captcha();
            if (needCaptcha)
            {
                #region MyRegion LOG

                UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType.Response,
                                       base.SerializedRequest,
                                       "NEED CAPTCHA",
                                       null,
                                       true,
                                       base.Refferer,
                                       base.IP,
                                       base.UA,
                                       ref base.APICreateDate,
                                       ref base.APICreateDate_ISR,
                                       ref base.APITransaction, false, null, base.ProjectType);

                #endregion

                return(AppResponse.Any(enumReturnStatus.Captcha, result));
            }

            #region MyRegion LOG

            UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType.Response,
                                   base.SerializedRequest,
                                   "OK",
                                   null,
                                   true,
                                   base.Refferer,
                                   base.IP,
                                   base.UA,
                                   ref base.APICreateDate,
                                   ref base.APICreateDate_ISR,
                                   ref base.APITransaction, false, null, base.ProjectType);

            #endregion

            return(AppResponse.OK(result));
        }
Example #22
0
        public Result RL(Registered_SubmitLead req)
        {
            base.Init_Request_Data(enumAction.Lead, req, req.IP, req.UA, req.T);

            string   exception  = string.Empty;
            IPHolder cacheIP    = null;
            bool     TokenError = false;

            if (!AppManager.CampaignAlive(base.APICreateDate_ISR, base.ProjectType, ref base.APITransaction, req.P, out TokenError))
            {
                cacheIP = Cache_IP.IP_Get(req.IP, 1, out exception, ref base.APICreateDate_ISR, ref base.ProjectType);

                #region  LOG  if(TokenError)
                if (TokenError)
                {
                    UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType._1_PayloadError,
                                           base.SerializedRequest,
                                           "enumReturnStatus.Ends -> is TokenError: " + TokenError.ToString(),
                                           "_cacheIP: " + Newtonsoft.Json.JsonConvert.SerializeObject(cacheIP),
                                           true,
                                           base.Refferer,
                                           base.IP,
                                           base.UA,
                                           ref base.APICreateDate,
                                           ref base.APICreateDate_ISR,
                                           ref base.APITransaction, true, req.Email, base.ProjectType);

                    return(AppResponse.Any(enumReturnStatus.PayloadError, null));
                }
                #endregion

                return(AppResponse.Any(enumReturnStatus.Ends, null));
            }

            #region MyRegion VALIDATION

            if (!ModelState.IsValid || !base.ValidRequestFromServerIP || TokenError)
            {
                cacheIP = Cache_IP.IP_Get(req.IP, 1, out exception, ref base.APICreateDate_ISR, ref base.ProjectType);

                #region MyRegion LOG

                UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType._1_PayloadError,
                                       base.SerializedRequest,
                                       "base.ValidRequestFromServerIP IP:" + base.ServerIP + " IsValid:" + base.ValidRequestFromServerIP.ToString() + " -> TokenError(P): " + TokenError.ToString(),
                                       Newtonsoft.Json.JsonConvert.SerializeObject(ModelState.Keys) + " -> cacheIP: " + Newtonsoft.Json.JsonConvert.SerializeObject(cacheIP),
                                       true,
                                       base.Refferer,
                                       base.IP,
                                       base.UA,
                                       ref base.APICreateDate,
                                       ref base.APICreateDate_ISR,
                                       ref base.APITransaction, true, req.Email, base.ProjectType);

                #endregion

                return(AppResponse.Any(enumReturnStatus.PayloadError, null));
            }

            #endregion

            #region UNIQUE_Exist

            if (Cache_Unique.MAC_UNIQUE_IS_EXIST(ref base.APICreateDate, req.Email, ref base.ProjectType))
            {
                #region MyRegion LOG

                UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType._1_Unique_Not_Allowed,
                                       base.SerializedRequest,
                                       "_1_MAC_OR_Unique_Address_Not_Allowed",
                                       null,
                                       true,
                                       base.Refferer,
                                       base.IP,
                                       base.UA,
                                       ref base.APICreateDate,
                                       ref base.APICreateDate_ISR,
                                       ref base.APITransaction, true, req.Email, base.ProjectType);

                #endregion

                return(AppResponse.Any(enumReturnStatus.Forbidden, null));
            }

            #endregion


            bool NeedCaptcha = false;

            #region REGINO CACHE IP AND IF CAPTCH IS NEEDED
            //ADD TO IP CALL
            cacheIP = Cache_IP.IP_Get(req.IP, 0, out exception, ref base.APICreateDate_ISR, ref base.ProjectType);

            if (cacheIP != null && cacheIP.need_Captcha() && string.IsNullOrEmpty(req.CAP))
            {
                NeedCaptcha = true;
                UtilsDB.API_Log_Insert(base.Action, enumLogType.Request, enumLogType._1_Need_Captcha, base.SerializedRequest, "NEED CAPTCHA -> Captch: " + Newtonsoft.Json.JsonConvert.SerializeObject(cacheIP), null, false,
                                       base.Refferer, base.IP, base.UA, ref base.APICreateDate, ref base.APICreateDate_ISR,
                                       ref base.APITransaction, true, req.Email, base.ProjectType);



                return(AppResponse.Any(enumReturnStatus.Captcha, null));
            }
            #endregion

            #region REGION GOOGLE VERIFICATION
            string googleRequest = string.Empty, googleResponse = string.Empty;
            bool   GoogleApproved = false;
            if (cacheIP != null && cacheIP.need_Captcha() && !string.IsNullOrEmpty(req.CAP))
            {
                googleResponse = UtilsWeb.MakeRequest_Google_Captch(req.CAP, req.IP, ref base.APITransaction, ref base.APICreateDate, ref base.APICreateDate_ISR,
                                                                    out googleRequest, ref base.ProjectType);


                GoogleApproved = googleResponse.ToLower().Contains("true");

                if (!GoogleApproved)
                {
                    NeedCaptcha = true;
                    UtilsDB.API_Log_Insert(base.Action, enumLogType.Request, enumLogType._1_Need_ReCaptcha,
                                           "FAIL ON GOOGLE CAPTCHA: " + base.SerializedRequest,
                                           googleRequest,
                                           googleResponse,
                                           false,
                                           base.Refferer,
                                           base.IP,
                                           base.UA,
                                           ref base.APICreateDate,
                                           ref base.APICreateDate_ISR,
                                           ref base.APITransaction,
                                           true, req.Email, base.ProjectType);



                    return(AppResponse.Any(enumReturnStatus.ReCaptcha, null));
                }
            }
            #endregion

            API_Project_GetResult project = AppManager.GetProject(base.ProjectType);

            API_Validate_Registered_UserResult user =
                UtilsDB.API_Validate_Registered_User(base.APITransaction, base.APICreateDate_ISR, req.Email, base.ProjectType);

            if (user == null)
            {
                Dictionary <string, dynamic> result = new Dictionary <string, dynamic>()
                {
                    { "P", project.Token }
                };

                UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType._1_NeedRegistration,
                                       base.SerializedRequest,
                                       "Register REQUIRED UForbidden RESPONSE",
                                       null,
                                       true,
                                       base.Refferer,
                                       base.IP,
                                       base.UA,
                                       ref base.APICreateDate,
                                       ref base.APICreateDate_ISR,
                                       ref base.APITransaction, true, req.Email, base.ProjectType);

                return(AppResponse.Any(enumReturnStatus.UForbidden, result));
            }

            SubmitLead demi = new SubmitLead()
            {
                Email         = req.Email,
                IP            = req.IP,
                CAP           = req.CAP,
                P             = req.P,
                T             = req.T,
                UA            = req.UA,
                FName         = "NA",
                LName         = "NA",
                City          = req.City,   // "NA",
                Street        = req.Street, // "NA",
                Phone         = "NA",
                FlatNumber    = "NA",
                STNumber      = req.STNumber, // "NA"
                AcceptContent = true,         //req.AcceptContent,
                POBox         = req.POBox,
                Regulation    = true          // req.Regulation
            };

            API_Lead_InsertResult lead =
                UtilsDB.API_Lead_Insert(ref demi, -1, ref base.APITransaction, req.CAP, 1,
                                        ref base.APICreateDate,
                                        ref base.APICreateDate_ISR, ref base.Platform, ref base.ProjectType);

            if (lead == null)
            {
                #region  LOG

                UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType._1_InternalError,
                                       base.SerializedRequest,
                                       "API_Lead_Insert ERROR",
                                       null,
                                       true,
                                       base.Refferer,
                                       base.IP,
                                       base.UA,
                                       ref base.APICreateDate,
                                       ref base.APICreateDate_ISR,
                                       ref base.APITransaction, true, req.Email, base.ProjectType);

                #endregion

                return(AppResponse.Any(enumReturnStatus.InternalError, null));
            }

            switch (lead.DBResult.GetValueOrDefault(-1000))
            {
            case -1000:    //LOGIC ERROR OR INTERNAL DVB ERROR
                #region  LOG

                UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType._1_InternalError,
                                       base.SerializedRequest,
                                       "API_Lead_Insert ERROR",
                                       "lead.DBResult is null",
                                       true,
                                       base.Refferer,
                                       base.IP,
                                       base.UA,
                                       ref base.APICreateDate,
                                       ref base.APICreateDate_ISR,
                                       ref base.APITransaction, true, req.Email, base.ProjectType);

                #endregion

                return(AppResponse.Any(enumReturnStatus.InternalError, null));

                break;

            case 200:    //OK

                string ex = null;
                Cache_IP.AddUpdate_IP(req.IP, new IPHolder(null, req.IP, lead.Count_IP.GetValueOrDefault(), lead.MaxAllowed_IP.GetValueOrDefault(), lead.ExpiredIPAt.GetValueOrDefault()), out ex, ref base.ProjectType);


                //DataProResult result = UtilsDataPro.SendCouponEmail(req.Email, ref project);
                //API_Lead_Update_CouponMSGResult coupon =
                //UtilsDB.API_Lead_Update_CouponMSG(ref base.APITransaction, ref base.APICreateDate, ref base.APICreateDate_ISR, lead.LeadID.GetValueOrDefault(),
                //                                  Newtonsoft.Json.JsonConvert.SerializeObject(result), result.isSuccess());

                #region  LOG

                UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType.Response,
                                       base.SerializedRequest,
                                       null /*Newtonsoft.Json.JsonConvert.SerializeObject(result)*/,
                                       "lead: " + Newtonsoft.Json.JsonConvert.SerializeObject(lead) /*+ " -> coupon update: " + Newtonsoft.Json.JsonConvert.SerializeObject(coupon)*/,
                                       true,
                                       base.Refferer,
                                       base.IP,
                                       base.UA,
                                       ref base.APICreateDate,
                                       ref base.APICreateDate_ISR,
                                       ref base.APITransaction, true, req.Email, base.ProjectType);

                #endregion

                return(AppResponse.OK(null));



                break;
            }

            #region  LOG

            UtilsDB.API_Log_Insert(this.Action, enumLogType.Response, enumLogType._1_BadRequest,
                                   base.SerializedRequest,
                                   "BadRequest -> lead: " + Newtonsoft.Json.JsonConvert.SerializeObject(lead),
                                   "SHOULD NOT BE HERE",
                                   true,
                                   base.Refferer,
                                   base.IP,
                                   base.UA,
                                   ref base.APICreateDate,
                                   ref base.APICreateDate_ISR,
                                   ref base.APITransaction, true, req.Email, base.ProjectType);

            #endregion

            return(AppResponse.BadRequest(null));
        }
Example #23
0
        public void Guardar(Venta v)
        {
            using (var tx = _BD.IniciarTransaccion())
            {
                try
                {
                    string sqltxt = $"INSERT [dbo].[Venta] ([fecha],[id_Cliente],[importe_Total])" +
                                    $" VALUES ('{UtilsDB.GetFecha(v.fecha)}','{v.id_Cliente}','{v.importe_Total}')";
                    v.id = _BD.EjecutarTransaccion(sqltxt);
                    if (v.id == 0)
                    {
                        throw new ApplicationException();
                    }

                    foreach (var d in v.detalleVentas)
                    {
                        sqltxt = $"INSERT [dbo].[Detalle_Venta] " +
                                 $"([id_Venta], [id_disco], [cantidad], [precio])" +
                                 $" VALUES ('{v.id}','{d.id_disco}','{d.cantidad}','{d.precio}')";
                        _BD.EjecutarTransaccion(sqltxt);


                        sqltxt = $"SELECT cantidad FROM Disco WHERE id={d.id_disco}";

                        var stock =
                            int.Parse(_BD.ConsultaDuranteTransaccion(sqltxt).Rows[0]["cantidad"].ToString());

                        int number;
                        if (!int.TryParse(d.cantidad, out number))
                        {
                            throw new ApplicationException();
                        }
                        if (number <= 0)
                        {
                            throw new ApplicationException("La cantidad ingresada no corresponde.");
                        }
                        int nuevoStock = stock - number;
                        if (nuevoStock < 0)
                        {
                            throw new ApplicationException("No hay stock suficiente.");
                        }

                        sqltxt = $"UPDATE [dbo].[Disco] SET cantidad = '{nuevoStock}' WHERE id={d.id_disco}";
                        _BD.EjecutarTransaccion(sqltxt);
                    }

                    tx.Commit();
                }
                catch (ApplicationException aex)
                {
                    throw aex;
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    throw new Exception("No se pudo realizar la operaciĆ³n.");
                }

                finally
                {
                    _BD.cerrar();
                }
            }
        }