C# Code for BizTalk Application
Code for BizTalk Application: In this code we specifically done 4 parts they are mainly:- 1. Stop all biztalk application, 2. Start all application, 3. Undeploy Biztalk Application, 4. Deploy Biztalk Application
Code for BizTalk Application: In this code we specifically done 4 parts they are mainly:- 1. Stop all biztalk application, 2. Start all application, 3. Undeploy Biztalk Application, 4. Deploy Biztalk Application
using Microsoft.BizTalk.ExplorerOM;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class BizTalkOperationClass
{
static String[] lines = File.ReadAllLines(@"C:\Users\ansarir2\Documents\Visual Studio 2013\Projects\ConsoleApplication3\ConsoleApplication3\applicationsName.config", Encoding.UTF8);
public static void stopAllApplications() {
// This method will help us to stop all the application present in Biztalk
Console.WriteLine("______Application Stoping______\nPlease wait...");
BtsCatalogExplorer catalog = new BtsCatalogExplorer();
catalog.ConnectionString = "server=" + lines[0] + ";database=" + lines[1] + ";Integrated Security=SSPI";
for (int i = 2; i < lines.Count(); i++)
{
// Console.WriteLine(lines[0]);
if (lines[i] != null)
{
Application app = catalog.Applications[lines[i]];
if (app != null)
{
Console.WriteLine(lines[i] + " Stopping...");
app.Stop(ApplicationStopOption.StopReferencedApplications);
app.Stop(ApplicationStopOption.UnenlistAllOrchestrations);
app.Stop(ApplicationStopOption.UnenlistAllSendPortGroups);
app.Stop(ApplicationStopOption.UnenlistAllSendPorts);
app.Stop(ApplicationStopOption.DisableAllReceiveLocations);
catalog.SaveChanges();
}
Console.WriteLine(i+1+": " +lines[i] + " Stopped");
}
}
Console.WriteLine("All Application Stopped");
}
public static void startAllApplications()
{
Console.WriteLine("______Application Starting______\nPlease wait...");
BtsCatalogExplorer catalog = new BtsCatalogExplorer();
catalog.ConnectionString = "server=" + lines[0] + ";database=" + lines[1] + ";Integrated Security=SSPI";
for (int i = 2; i < lines.Count(); i++)
{
Console.WriteLine(lines[i]+"Starting...");
if(lines[i] != null)
{
Application app = catalog.Applications[lines[i]];
if (app != null)
{
app.Start(ApplicationStartOption.StartAll);
catalog.SaveChanges();
}
Console.WriteLine(i+1+": " + lines[i] + "Started");
}
}
catalog.Refresh();
Console.WriteLine("All BizTalk Applications are start now");
}
public static void undeploy()
{
Console.WriteLine("______Application Undeploying Started______\nPlease wait...");
BtsCatalogExplorer catalog = new BtsCatalogExplorer();
catalog.ConnectionString = "server="+lines[0]+";database="+lines[1]+";Integrated Security=SSPI";
for (int i = 2; i < lines.Count(); i++)
{
if (lines[i] != null)
{
Application app = catalog.Applications[lines[i]];
if (app != null)
{
Console.WriteLine("hello "+i);
app.Stop(ApplicationStopOption.StopReferencedApplications);
app.Stop(ApplicationStopOption.UnenlistAllOrchestrations);
app.Stop(ApplicationStopOption.UnenlistAllSendPortGroups);
app.Stop(ApplicationStopOption.UnenlistAllSendPorts);
app.Stop(ApplicationStopOption.DisableAllReceiveLocations);
Thread.Sleep(8000);
catalog.SaveChanges();
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
// BTSTask RemoveApp /ApplicationName:DE.Unify.PlanManagement /Server=SLRWAPDVDAX87 /Database=DEV_BizTalkMgmtDb
cmd.StandardInput.WriteLine("BTSTask RemoveApp /ApplicationName:" + lines[i] + " /Server=SLRWAPDVDAX87 /Database=DEV_BizTalkMgmtDb");
// cmd.StandardInput.WriteLine("BTSTask UninstallApp /ApplicationName:" + lines[i] + "");
cmd.StandardInput.WriteLine("wmic product where 'description='" + lines[i] + "' ' uninstall");
cmd.StandardInput.WriteLine("for /d %a in (C:\\Windows\\Microsoft.NET\\assembly\\GAC_MSIL\\" + lines[i] + "*) do rd /q /s %a ");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
Console.WriteLine(cmd.StandardOutput.ReadToEnd());
Console.WriteLine("end");
}
}
Console.WriteLine("NOTE:- " + lines[i] + " Removed, Undeployed/Uninstalled, GAC file deleted.");
}
}
public static void deploymentProcess(){
String[] file = File.ReadAllLines(@"C:\Users\ansarir2\Documents\Visual Studio 2013\Projects\ConsoleApplication3\ConsoleApplication3\deployFile.config", Encoding.UTF8);
String[] msiFiles = Directory.GetFiles("C:\\Users\\ansarir2\\Desktop\\installFolder", "*.msi");
String[] msiFileNames = new String[msiFiles.Count()];
Console.WriteLine(msiFiles.Count());
Console.WriteLine("______Avialbale MSI______");
for (int i = 0; i < msiFiles.Count(); i++)
{
string p = Path.GetFileName(msiFiles[i]);
msiFileNames[i] = p;
Console.WriteLine(msiFileNames[i]);
}
Console.WriteLine("______Installation Started______");
for (int i = 0; i < msiFileNames.Count(); i++)
{
Process.Start(@"C:\Users\ansarir2\Documents\Visual Studio 2013\Projects\ConsoleApplication3\ConsoleApplication3\deployFile.config");
if (file[i] != null)
{
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.Verb = "runas";
cmd.Start();
// file[0] --> file Receive Location of msi
// file[1] --> Installation Location
// file[3] --> Host Instance
// msiFileNames[i] --> msi file names
cmd.StandardInput.WriteLine("cd "+file[0]);
// cmd.StandardInput.WriteLine();
cmd.StandardInput.WriteLine("msiexec /i " + msiFileNames[i] + " INSTALLDIR=\"" + file[1] + "\"");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
Console.WriteLine(cmd.StandardOutput.ReadToEnd());
Console.WriteLine("end");
}
}
}
public static void exportMSI()
{
String[] file = File.ReadAllLines(@"C:\Users\ansarir2\Documents\Visual Studio 2013\Projects\ConsoleApplication3\ConsoleApplication3\deployFile.config", Encoding.UTF8);
string man = "msiexec /i " + file[2] + " INSTALLDIR=\"" + file[0] + "\"";
Thread.Sleep(2000);
Console.WriteLine(man);
Console.WriteLine("end delay");
}
public static void exportBindings()
{
String[] msiFiles = Directory.GetFiles("C:\\Users\\ansarir2\\Desktop\\installFolder", "*.msi");
String[] msiFileNames = new String[msiFiles.Count()];
Console.WriteLine(msiFiles.Count());
for (int i = 0; i < msiFiles.Count(); i++)
{
string p = Path.GetFileName(msiFiles[i]);
msiFileNames[i] = p;
Console.WriteLine(msiFileNames[i]);
}
}
}
}
Check in Visual Studio
using Microsoft.BizTalk.ExplorerOM; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { int choice; int repeat = 1; while(repeat != 0){ Console.Write("__________________________\n Stop Applications: 1 \n Start Application: 2 \n UnDeploy: 3 \n deploymentProcess: 4 \n Check: 5 \n__________________________\n"); choice = int.Parse(Console.ReadLine()); switch (choice) { case 1: BizTalkOperationClass.stopAllApplications(); break; case 2: BizTalkOperationClass.startAllApplications(); break; case 3: BizTalkOperationClass.undeploy(); break; case 4: BizTalkOperationClass.deploymentProcess(); break; case 5: BizTalkOperationClass.exportMSI(); break; case 6: BizTalkOperationClass.exportBindings(); break; case 7: BizTalkOperationClass.exportBindings(); break; default: Console.WriteLine("Wrong Input"); break; } Console.Write("\nRepeat your choice: (1/0) "); repeat = int.Parse(Console.ReadLine()); } Console.ReadKey(); } } }
First read the algorithm, then study the program code line by line. After that, compare the code with the output and finally go through the explanation. This approach helps learners understand both the logic and the implementation properly.
After understanding this example, try to rewrite the same program without looking at the code. Then change some values or logic and run it again. This helps improve confidence and keeps learners engaged on the page for longer.