Exemplo n.º 1
0
        public bool Guardar(ClienteBE obe, out bool rptaF, out bool rptaL)
        {
            bool rpta = false;

            rptaF = false;
            rptaL = false;
            int            idCliente = 0;
            SqlTransaction sqltrans;
            SqlTransaction sqltransArch;
            SqlTransaction sqltransLogo;

            using (SqlConnection con = new SqlConnection(strCnxRule))
            {
                con.Open();
                sqltrans = con.BeginTransaction();
                rpta     = oClienteDA.Guardar(con, sqltrans, obe, out idCliente);
                if (rpta)
                {
                    sqltrans.Commit();
                    //----- GUARDAR CERTIFICADO
                    #region certificado
                    if (idCliente != 0 && obe.loarchivos.Count > 0)
                    {
                        for (var j = 0; j < obe.loarchivos.Count; j += 1)
                        {
                            obe.loarchivos[j].NombreCarpeta = idCliente.ToString();//.PadLeft(12, '0');
                        }
                        string msj = "";
                        rptaF = oArchivosAdjuntosBL.GuardarArchivoVUE(obe.loarchivos, out msj);
                        if (rptaF)
                        {
                            sqltransArch = con.BeginTransaction();
                            string[] rutas = msj.Split('#');
                            for (var i = 0; i < rutas.Length; i += 1)
                            {
                                rptaF = oClienteDA.GuardarURL(con, sqltransArch, rutas[i], idCliente, obe.UsrCreador);
                                if (!rptaF)
                                {
                                    break;
                                }
                            }

                            if (rptaF)
                            {
                                sqltransArch.Commit();
                            }
                            else
                            {
                                sqltransArch.Rollback();
                            }
                        }
                        else
                        {
                            rptaF = true;
                        }
                    }
                    #endregion certificado
                    //----- GUARDAR LOGO
                    #region logo
                    if (idCliente != 0 && obe.lologo.Count > 0)
                    {
                        for (var j = 0; j < obe.lologo.Count; j += 1)
                        {
                            obe.lologo[j].NombreCarpeta = idCliente.ToString();//.PadLeft(12, '0');
                        }
                        string msj = "";
                        rptaL = oArchivosAdjuntosBL.GuardarArchivoVUE(obe.lologo, out msj);
                        if (rptaL)
                        {
                            sqltransLogo = con.BeginTransaction();
                            string[] rutas = msj.Split('#');
                            for (var i = 0; i < rutas.Length; i += 1)
                            {
                                rptaL = oClienteDA.GuardarURLLogo(con, sqltransLogo, rutas[i], idCliente, obe.UsrCreador);
                                if (!rptaL)
                                {
                                    break;
                                }
                            }

                            if (rptaL)
                            {
                                sqltransLogo.Commit();
                            }
                            else
                            {
                                sqltransLogo.Rollback();
                            }
                        }
                        else
                        {
                            rptaL = true;
                        }
                    }
                    #endregion logo
                }
                else
                {
                    sqltrans.Rollback();
                }
            }
            return(rpta);
        }