using System;
using System.Data;
using System.Data.SqlClient;
using System.Resources;
namespace GalleryServerPro.Data.SqlServer
{
internal static partial class DataUtility
{
internal static void ExportData(string filePath, bool exportMembershipData, bool exportGalleryData)
{
DataSet ds = new DataSet("GalleryServerData");
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
using (System.IO.Stream stream = asm.GetManifestResourceStream("GalleryServerPro.Data.SqlServer.GalleryServerProSchema.xml"))
{
ds.ReadXmlSchema(stream);
}
using (SqlConnection cn = DataUtility.GetDBConnection())
{
if (cn.State == ConnectionState.Closed)
cn.Open();
if (exportMembershipData)
{
string[] aspnet_TableNames = new string[] { "aspnet_Applications", "aspnet_Membership", "aspnet_Profile", "aspnet_Roles", "aspnet_Users", "aspnet_UsersInRoles" };
using (SqlCommand cmd = new SqlCommand("dbo.gs_ExportMembership", cn))
{
cmd.CommandType = CommandType.StoredProcedure;
using (IDataReader dr = cmd.ExecuteReader())
{
ds.Load(dr, LoadOption.OverwriteChanges, aspnet_TableNames);
}
}
}
if (exportGalleryData)
{
string[] gs_TableNames = new string[] { "gs_Album", "gs_Gallery", "gs_MediaObject", "gs_MediaObjectMetadata", "gs_Role", "gs_Role_Album", "gs_SchemaVersion" };
using (SqlCommand cmd = new SqlCommand("dbo.gs_ExportGalleryData", cn))
{
cmd.CommandType = CommandType.StoredProcedure;
using (IDataReader dr = cmd.ExecuteReader())
{
ds.Load(dr, LoadOption.OverwriteChanges, gs_TableNames);
}
}
ds.WriteXml(filePath, XmlWriteMode.WriteSchema);
//ds.WriteXmlSchema(filePath);
}
}
}
private static void ExportSchema()
{
string filePath = @"C:\tmp\GalleryServerBackup_" + DateTime.Now.ToString("yyyy-MM-dd_HHmmss") + ".bak";
using (SqlConnection cn = DataUtility.GetDBConnection())
{
using (SqlCommand cmd = new SqlCommand("dbo.gs_ExportSchema_DO_NOT_RELEASE", cn))
{
cmd.CommandType = CommandType.StoredProcedure;
if (cn.State == ConnectionState.Closed)
cn.Open();
DataSet ds = new DataSet("GalleryServerData");
string[] aspnet_TableNames = new string[] { "aspnet_Applications", "aspnet_Membership", "aspnet_Profile", "aspnet_Roles", "aspnet_Users", "aspnet_UsersInRoles" };
ds.Load(cmd.ExecuteReader(), LoadOption.OverwriteChanges, aspnet_TableNames);
ds.WriteXmlSchema(filePath);
}
}
}
}
}