using System;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Xml.XPath;
using System.Xml.Xsl;
using System.Xml;
using System.IO;
using System.Runtime.InteropServices;
using System.Web;
using System.Web.SessionState;
namespace AeroNet
{
///
///Описание страницы: Базовый класс сайта www.aerotechnics.ru
///
public class Common : System.Web.UI.Page
{
/// Расположение шаблонов XML
protected static string templatesPath="http://85.21.123.65/XML/template/";
protected static string xmlPath="http://85.21.123.65/XML/template/";
protected static string xslPath="http://85.21.123.65/XSL/";
protected static string errorPage;
protected static int snum = 16;
/// Расположение фотографий
protected static string ACPhoto="ftp://85.21.123.65/files/vit/i/";
/// Расположение фото моделей
protected static string ModelPhoto="http://85.21.123.65/images/model/";
/// Mail-server (дублируется в классе CustomersDB)
protected static string mailServer="172.16.1.26";
/// Верхнее меню
protected skmMenu.Menu Menu;
/// Подключение к SQL
protected static string connString = "Initial Catalog=Aerotechnics;Data Source=web;User ID=aero;Password=123";
/// Текущая дата-время
public DateTime today = System.DateTime.Today;
public static int sizeID = 1;
///Стоимость почтовой пересылки (дублируется в хранимой процедуре OrdersList
public decimal PostCost = 100;
///
/// Трансформации файла xml c применением листа стилей
///
/// Имя файла XML
/// Имя файла XSL
/// Источник для вывода
protected static void Transform(string xmlName,string xslName,HttpResponse Response)
{
XPathDocument doc = new XPathDocument(xmlPath+xmlName);
XslTransform xslt = new XslTransform();
xslt.Load(xslPath+xslName);
xslt.Transform(doc,null,Response.Output);
}
///
/// Трансформации файла xml(источник Template Files) c применением листа стилей
///
/// Имя файла XML
/// Имя файла XSL
/// Источник для вывода
/// Параметр режима
protected static void Transform(string xmlName,string xslName,HttpResponse Response,int mode)
{
XPathDocument doc = new XPathDocument(templatesPath+xmlName);
XslTransform xslt = new XslTransform();
if (mode == 1) xslt.Load(xslPath+xslName);
if (mode == 2) xslt.Load(xslName);
xslt.Transform(doc,null,Response.Output);
}
///
/// Трансформации файла xml c применением листа стилей
/// и передача параметров в лист стилей
///
/// Имя файла XML
/// Имя файла XSL
/// Источник для вывода
/// Массив параметров
/// Источник для вывода
protected static void Transform(string xmlName,string xslName,XsltArgumentList args,HttpResponse Response)
{
XPathDocument doc = new XPathDocument(xmlPath+xmlName);
XslTransform xslt = new XslTransform();
xslt.Load(xslPath+xslName);
xslt.Transform(doc,args,Response.Output);
}
///
/// Трансформации файла xml (источник Template Files) c применением листа стилей
/// и передача параметров в лист стилей
///
/// Имя файла XML
/// Имя файла XSL
/// Источник для вывода
/// Массив параметров
/// Источник для вывода
/// Параметр режима
protected static void Transform(string xmlName,string xslName,XsltArgumentList args,HttpResponse Response,int mode)
{
XPathDocument doc = new XPathDocument(templatesPath+xmlName);
XslTransform xslt = new XslTransform();
xslt.Load(xslPath+xslName);
xslt.Transform(doc,args,Response.Output);
}
///
///Трансформации xml (источник XmlReader) c применением листа стилей
///
/// источник XmlReader
/// Имя файла XSL
/// Источник для вывода
protected static void Transform(XmlReader reader,string xslName,HttpResponse Response)
{
XPathDocument doc = new XPathDocument(reader);
XslTransform xslt = new XslTransform();
xslt.Load(xslPath + xslName);
xslt.Transform(doc,null,Response.Output);
}
///
/// Получение идет. номера баннера
///
/// Идент. номер сайта
/// Идент.номер размера баннера
/// Идет. номер баннера
public string GetBannerID(int snum,int sizeID)
{
SqlConnection Conn = new SqlConnection(connString);
SqlCommand Comm = new SqlCommand();
Comm.CommandText = "sp_BannerToShow";
Comm.CommandType = CommandType.StoredProcedure;
Comm.Connection = Conn;
Comm.Parameters.Add("@snum",SqlDbType.Int,4).Value = snum;
Comm.Parameters.Add("@sizeID",SqlDbType.Int,4).Value = sizeID;
SqlParameter bannerID = new SqlParameter("@bid",SqlDbType.Int,4);
bannerID.Direction = ParameterDirection.Output;
Comm.Parameters.Add(bannerID);
Conn.Open();
try
{
Comm.ExecuteNonQuery();
}
catch
{
Response.Redirect("error.aspx");
}
finally
{
Conn.Close();
}
return bannerID.Value.ToString();
}
///
/// Вывод баннера
///
/// Идент. номер сайта
/// Идент.номер размера баннера
protected void PrintBanner(int snum,int sizeID)
{
try
{
Transform("getBanner.xml?bid="+GetBannerID(snum,sizeID),"banners.xsl",this.Response,1);
}
catch
{
Response.Redirect("error.aspx");
}
}
public void TopMenu()
{
// Верхнее меню
if (!Page.IsPostBack)
{
Menu.DataSource = Server.MapPath ("/XML/MenuXML.xml");
Menu.DataBind();
}
}
public void OpsMenu()
{
// Верхнее меню
if (!Page.IsPostBack)
{
Menu.DataSource = Server.MapPath ("/ops/MenuOPS.xml");
Menu.DataBind();
}
}
public void OpsLogin()
{
// Проверка прав доступа к странице
if (Session["admin"] == null)
{
Response.Redirect("/ops/ops.aspx",true);
}
}
public Common()
{
}
}
}