//dispatture function which is started from thread which is started from loadmodule function. public void dispMethLoadModule(object objModuleParams) { try { object[] obj = (object[])objModuleParams; #region Collaborative if (obj.Length == 3) // it is true than objModuleParams is having http uri, else it is of net.p2p { VMukti.Business.VMuktiGrid.ClsModule objModule = ClsModule.GetPodModule(this.ModuleID); #region Downloading ZipFile Uri zipFileURL = new Uri(VMuktiAPI.VMuktiInfo.ZipFileDownloadLink + objModule.ZipFile); if (!Directory.Exists(ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files"))) { Directory.CreateDirectory(ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files")); } string destination = ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files"); if (!File.Exists(destination + "\\" + objModule.ZipFile)) { WebClient wc = new WebClient(); wc.DownloadFile(zipFileURL, destination + "\\" + objModule.ZipFile); } #endregion //if we add new identifiers for POD in a zip file u can find it over here and have to change accordingly #region Extracting string strModPath = ass.Location.Replace("VMukti.Presentation.exe", @"Modules"); VMukti.ZipUnzip.Zip.FastZip fz = new VMukti.ZipUnzip.Zip.FastZip(); if (!Directory.Exists(strModPath + "\\" + objModule.ZipFile.Split('.')[0])) { fz.ExtractZip(destination + "\\" + objModule.ZipFile, strModPath, null); } string strXmlPath = strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\Control\\configuration.xml"; if (File.Exists(strXmlPath)) { #region Parsing XML XmlParser xp = new XmlParser(); xp.Parse(strXmlPath); #endregion try { if (!string.IsNullOrEmpty(xp.xMain.SWFFileName)) { if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.SWFFileName)) { FileInfo fi = new FileInfo(strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\Control\\" + xp.xMain.SWFFileName); fi.CopyTo(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.SWFFileName); } } if (!string.IsNullOrEmpty(xp.xMain.TextFileName)) { if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.TextFileName)) { FileInfo fi = new FileInfo(strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\Control\\" + xp.xMain.TextFileName); fi.CopyTo(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.TextFileName); } } } catch (Exception ex) { VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "dispMethLoadModule--copying swf n txt files", "Domains\\SuperNodeServiceDomain.cs"); } } #endregion #region Loading ReferencedAssemblies //DirectoryInfo dirinfomodule = new DirectoryInfo(strModPath); DirectoryInfo dirinfomodule = new DirectoryInfo(strModPath + "\\" + objModule.ZipFile.Split('.')[0]); ShowDirectory(dirinfomodule); #region extracting imagefile string imagefilename = strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\" + "Control\\" + objModule.ZipFile.Split('.')[0] + ".png"; if (File.Exists(imagefilename)) { BitmapImage objimage = new BitmapImage(); objimage.BeginInit(); objimage.UriSource = new Uri(imagefilename); objimage.EndInit(); imgPODIcon.BeginInit(); imgPODIcon.Source = objimage; imgPODIcon.EndInit(); } #endregion //following code will load bal and dal from reflaction in RAM for (int j = 0; j < al.Count; j++) { string[] arraysplit = al[j].ToString().Split('\\'); if (arraysplit[arraysplit.Length - 1].ToString() == objModule.AssemblyFile) { a = Assembly.LoadFrom(al[j].ToString()); AssemblyName[] an = a.GetReferencedAssemblies(); for (int alcount = 0; alcount < al.Count; alcount++) { string strsplit = al[alcount].ToString(); string[] strold = strsplit.Split('\\'); string strnew = strold[strold.Length - 1].Substring(0, strold[strold.Length - 1].Length - 4); for (int asscount = 0; asscount < an.Length; asscount++) { if (an[asscount].Name == strnew) { Assembly assbal = System.AppDomain.CurrentDomain.Load(System.Reflection.Assembly.LoadFrom(al[alcount].ToString()).GetName()); AssemblyName[] anbal = assbal.GetReferencedAssemblies(); for (int andal = 0; andal < al.Count; andal++) { string strsplitdal = al[andal].ToString(); string[] strolddal = strsplitdal.Split('\\'); string strnewdal = strolddal[strolddal.Length - 1].Substring(0, strolddal[strolddal.Length - 1].Length - 4); for (int asscountdal = 0; asscountdal < anbal.Length; asscountdal++) { if (anbal[asscountdal].Name == strnewdal) { Assembly assdal = System.AppDomain.CurrentDomain.Load(System.Reflection.Assembly.LoadFrom(al[andal].ToString()).GetName()); } } } } } } Type[] t1 = a.GetTypes(); #region CreatingObject for (int k = 0; k < t1.Length; k++) { if (t1[k].Name == objModule.ClassName) { try { ConstructorInfo[] ci = t1[k].GetConstructors(); for (int constcount = 0; constcount < ci.Length; constcount++) { ParameterInfo[] pi = ci[constcount].GetParameters(); if (pi.Length == 4) { //if module is collaborative, it will be haveing more than one (nearly 4) parameters and so it will come here and will create object with required parameter. if (pi[0].ParameterType.Name == "PeerType") { object[] objArg = new object[4]; objArg[0] = VMuktiInfo.CurrentPeer.CurrPeerType; objArg[1] = obj[0].ToString(); objArg[2] = obj[1]; if (_strFromWhere == "fromOtherPeer") { objArg[3] = "Guest"; } else if (_strFromWhere == "fromLeftPane" || _strFromWhere == "fromDatabase") { objArg[3] = "Host"; } //Object of module will be created here by reflaction object obj1 = Activator.CreateInstance(t1[k], BindingFlags.CreateInstance, null, objArg, new System.Globalization.CultureInfo("en-US")); grdBody.Tag = t1[k].ToString(); grdBody.Children.Remove(animImage); grdBody.Children.Add((UIElement)obj1); if (!this.IsTwoPanel) { #region changes for pod resize ItemsControl objItem = (ItemsControl)(this.Parent); if (objItem.Name != "TopPanelContainer" && objItem.Name != "BottomPanelContainer") { ColumnDefinitionCollection ColCollection = ((Grid)(objItem.Parent)).ColumnDefinitions; int colNo = Convert.ToInt32(objItem.Tag) - 1; GridLength WidthToBeSet = new GridLength((((UserControl)obj1).Width) / 100, GridUnitType.Star); double previousActualWidth = -1; if (ColCollection[colNo].Width.Value > 100) { previousActualWidth = (ColCollection[colNo].Width.Value / 100); } else { previousActualWidth = ColCollection[colNo].Width.Value; string strPAW = previousActualWidth.ToString(); int intPAW = Convert.ToInt32(previousActualWidth); switch (intPAW) { case 1: previousActualWidth = 4; break; case 2: previousActualWidth = 4; break; case 3: previousActualWidth = 4; break; case 4: previousActualWidth = 4; break; case 5: previousActualWidth = 5.5; break; case 6: previousActualWidth = 6.5; break; default: previousActualWidth = 7; break; } } if (previousActualWidth < WidthToBeSet.Value) { ColCollection[1].Width = new GridLength(0, GridUnitType.Star); ColCollection[2].Width = new GridLength(0, GridUnitType.Star); ColCollection[0].Width = new GridLength(0, GridUnitType.Star); switch (colNo) { case 0: ColCollection[1].Width = new GridLength(1, GridUnitType.Star); ColCollection[2].Width = new GridLength(1, GridUnitType.Star); break; case 1: ColCollection[0].Width = new GridLength(1, GridUnitType.Star); ColCollection[2].Width = new GridLength(1, GridUnitType.Star); break; case 2: ColCollection[0].Width = new GridLength(1, GridUnitType.Star); ColCollection[1].Width = new GridLength(1, GridUnitType.Star); break; } int objint = Convert.ToInt32(WidthToBeSet.Value); switch (objint) { case 1: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 2: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 3: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 4: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 5: ColCollection[colNo].Width = new GridLength(2, GridUnitType.Star); break; case 6: ColCollection[colNo].Width = new GridLength(2.5, GridUnitType.Star); break; default: ColCollection[colNo].Width = new GridLength(2.5, GridUnitType.Star); break; } } } #endregion } break; } } else { object obj1 = Activator.CreateInstance(t1[k]); ((UserControl)obj1).SetValue(Canvas.LeftProperty, 0.0); ((UserControl)obj1).SetValue(Canvas.TopProperty, 0.0); grdBody.Tag = t1[k].ToString(); grdBody.Children.Remove(animImage); grdBody.Children.Add((UIElement)obj1); if (!this.IsTwoPanel) { #region changes for pod resize ItemsControl objItem = (ItemsControl)(this.Parent); if (objItem.Name != "TopPanelContainer" && objItem.Name != "BottomPanelContainer") { ColumnDefinitionCollection ColCollection = ((Grid)(objItem.Parent)).ColumnDefinitions; int colNo = Convert.ToInt32(objItem.Tag) - 1; GridLength WidthToBeSet = new GridLength((((UserControl)obj1).Width) / 100, GridUnitType.Star); double previousActualWidth = -1; if (ColCollection[colNo].Width.Value > 100) { previousActualWidth = (ColCollection[colNo].Width.Value / 100); } else { previousActualWidth = ColCollection[colNo].Width.Value; string strPAW = previousActualWidth.ToString(); int intPAW = Convert.ToInt32(previousActualWidth); switch (intPAW) { case 1: previousActualWidth = 4; break; case 2: previousActualWidth = 4; break; case 3: previousActualWidth = 4; break; case 4: previousActualWidth = 4; break; case 5: previousActualWidth = 5.5; break; case 6: previousActualWidth = 6.5; break; default: previousActualWidth = 7; break; } } if (previousActualWidth < WidthToBeSet.Value) { ColCollection[1].Width = new GridLength(0, GridUnitType.Star); ColCollection[2].Width = new GridLength(0, GridUnitType.Star); ColCollection[0].Width = new GridLength(0, GridUnitType.Star); switch (colNo) { case 0: ColCollection[1].Width = new GridLength(1, GridUnitType.Star); ColCollection[2].Width = new GridLength(1, GridUnitType.Star); break; case 1: ColCollection[0].Width = new GridLength(1, GridUnitType.Star); ColCollection[2].Width = new GridLength(1, GridUnitType.Star); break; case 2: ColCollection[0].Width = new GridLength(1, GridUnitType.Star); ColCollection[1].Width = new GridLength(1, GridUnitType.Star); break; } int objint = Convert.ToInt32(WidthToBeSet.Value); switch (objint) { case 1: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 2: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 3: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 4: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 5: ColCollection[colNo].Width = new GridLength(2, GridUnitType.Star); break; case 6: ColCollection[colNo].Width = new GridLength(2.5, GridUnitType.Star); break; default: ColCollection[colNo].Width = new GridLength(2.5, GridUnitType.Star); break; } } } #endregion } break; } } } catch (Exception ex) { VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "CreatingObject--5", "Controls\\VMuktiGrid\\Grid\\ctlPOD.xaml.cs"); } break; } } #endregion } } #endregion } #endregion #region NonCollaborative //it will create an object of p2p node else { VMukti.Business.VMuktiGrid.ClsModule objModule = ClsModule.GetPodModule(this.ModuleID); #region Downloading ZipFile Uri zipFileURL = new Uri(VMuktiAPI.VMuktiInfo.ZipFileDownloadLink + objModule.ZipFile); if (!Directory.Exists(ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files"))) { Directory.CreateDirectory(ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files")); } string destination = ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files"); if (!File.Exists(destination + "\\" + objModule.ZipFile)) { WebClient wc = new WebClient(); wc.DownloadFile(zipFileURL, destination + "\\" + objModule.ZipFile); } #endregion #region Extracting string strModPath = ass.Location.Replace("VMukti.Presentation.exe", @"Modules"); VMukti.ZipUnzip.Zip.FastZip fz = new VMukti.ZipUnzip.Zip.FastZip(); if (!Directory.Exists(strModPath + "\\" + objModule.ZipFile.Split('.')[0])) { fz.ExtractZip(destination + "\\" + objModule.ZipFile, strModPath, null); } string strXmlPath = strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\Control\\configuration.xml"; if (File.Exists(strXmlPath)) { #region Parsing XML XmlParser xp = new XmlParser(); xp.Parse(strXmlPath); #endregion try { if (!string.IsNullOrEmpty(xp.xMain.SWFFileName)) { if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.SWFFileName)) { FileInfo fi = new FileInfo(strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\Control\\" + xp.xMain.SWFFileName); fi.CopyTo(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.SWFFileName); } } if (!string.IsNullOrEmpty(xp.xMain.TextFileName)) { if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.TextFileName)) { FileInfo fi = new FileInfo(strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\Control\\" + xp.xMain.TextFileName); fi.CopyTo(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.TextFileName); } } } catch (Exception ex) { VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "dispMethLoadModule-NonCol--copying swf n txt files", "Domains\\SuperNodeServiceDomain.cs"); } } #endregion #region Loading ReferencedAssemblies DirectoryInfo dirinfomodule = new DirectoryInfo(strModPath + "\\" + objModule.ZipFile.Split('.')[0]); ShowDirectory(dirinfomodule); #region extracting imagefile string imagefilename = strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\" + "Control\\" + objModule.ZipFile.Split('.')[0] + ".png"; if (File.Exists(imagefilename)) { BitmapImage objimage = new BitmapImage(); objimage.BeginInit(); objimage.UriSource = new Uri(imagefilename); objimage.EndInit(); imgPODIcon.BeginInit(); imgPODIcon.Source = objimage; imgPODIcon.EndInit(); } #endregion for (int j = 0; j < al.Count; j++) { string[] arraysplit = al[j].ToString().Split('\\'); if (arraysplit[arraysplit.Length - 1].ToString() == objModule.AssemblyFile) { a = Assembly.LoadFrom(al[j].ToString()); AssemblyName[] an = a.GetReferencedAssemblies(); for (int alcount = 0; alcount < al.Count; alcount++) { string strsplit = al[alcount].ToString(); string[] strold = strsplit.Split('\\'); string strnew = strold[strold.Length - 1].Substring(0, strold[strold.Length - 1].Length - 4); for (int asscount = 0; asscount < an.Length; asscount++) { if (an[asscount].Name == strnew) { Assembly assbal = System.AppDomain.CurrentDomain.Load(System.Reflection.Assembly.LoadFrom(al[alcount].ToString()).GetName()); AssemblyName[] anbal = assbal.GetReferencedAssemblies(); for (int andal = 0; andal < al.Count; andal++) { string strsplitdal = al[andal].ToString(); string[] strolddal = strsplitdal.Split('\\'); string strnewdal = strolddal[strolddal.Length - 1].Substring(0, strolddal[strolddal.Length - 1].Length - 4); for (int asscountdal = 0; asscountdal < anbal.Length; asscountdal++) { if (anbal[asscountdal].Name == strnewdal) { Assembly assdal = System.AppDomain.CurrentDomain.Load(System.Reflection.Assembly.LoadFrom(al[andal].ToString()).GetName()); } } } } } } Type[] t1 = a.GetTypes(); #region CreatingObject for (int k = 0; k < t1.Length; k++) { if (t1[k].Name == objModule.ClassName) { try { object[] objArg = new object[1]; objArg[0] = obj[0]; object obj1 = Activator.CreateInstance(t1[k], objArg); ((UserControl)obj1).SetValue(Canvas.LeftProperty, 0.0); ((UserControl)obj1).SetValue(Canvas.TopProperty, 0.0); grdBody.Tag = t1[k].ToString(); grdBody.Children.Remove(animImage); grdBody.Children.Add((UIElement)obj1); if (!this.IsTwoPanel) { #region changes for pod resize ItemsControl objItem = (ItemsControl)(this.Parent); ColumnDefinitionCollection ColCollection = ((Grid)(objItem.Parent)).ColumnDefinitions; int colNo = Convert.ToInt32(objItem.Tag) - 1; GridLength WidthToBeSet = new GridLength((((UserControl)obj1).Width) / 100, GridUnitType.Star); double previousActualWidth = -1; if (ColCollection[colNo].Width.Value > 100) { previousActualWidth = (ColCollection[colNo].Width.Value / 100); } else { previousActualWidth = ColCollection[colNo].Width.Value; string strPAW = previousActualWidth.ToString(); int intPAW = Convert.ToInt32(previousActualWidth); switch (intPAW) { case 1: previousActualWidth = 4; break; case 2: previousActualWidth = 4; break; case 3: previousActualWidth = 4; break; case 4: previousActualWidth = 4; break; case 5: previousActualWidth = 5.5; break; case 6: previousActualWidth = 6.5; break; default: previousActualWidth = 7; break; } } if (previousActualWidth < WidthToBeSet.Value) { ColCollection[1].Width = new GridLength(0, GridUnitType.Star); ColCollection[2].Width = new GridLength(0, GridUnitType.Star); ColCollection[0].Width = new GridLength(0, GridUnitType.Star); switch (colNo) { case 0: ColCollection[1].Width = new GridLength(1, GridUnitType.Star); ColCollection[2].Width = new GridLength(1, GridUnitType.Star); break; case 1: ColCollection[0].Width = new GridLength(1, GridUnitType.Star); ColCollection[2].Width = new GridLength(1, GridUnitType.Star); break; case 2: ColCollection[0].Width = new GridLength(1, GridUnitType.Star); ColCollection[1].Width = new GridLength(1, GridUnitType.Star); break; } int objint = Convert.ToInt32(WidthToBeSet.Value); switch (objint) { case 1: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 2: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 3: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 4: ColCollection[colNo].Width = new GridLength(1, GridUnitType.Star); break; case 5: ColCollection[colNo].Width = new GridLength(2, GridUnitType.Star); break; case 6: ColCollection[colNo].Width = new GridLength(2.5, GridUnitType.Star); break; default: ColCollection[colNo].Width = new GridLength(2.5, GridUnitType.Star); break; } } #endregion } } catch (Exception ex) { VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "CreatingObject--7", "Controls\\VMuktiGrid\\Grid\\ctlPOD.xaml.cs"); grdBody.Children.Add(new UIElement()); } } } #endregion } } #endregion } #endregion al.Clear(); //this part of the code is for infoming back the user who droped this user that module is loaded so that u can now show the user in ur buddy list. //if (_objPageInfo != null) //{ // clsBuddyRetPageInfo objBuddyRetPageInfo = new clsBuddyRetPageInfo(); // List<clsBuddyRetTabInfo> lstBuddyRetTabInfo = new List<clsBuddyRetTabInfo>(); // List<clsBuddyRetPodInfo> lstBuddyRetPodInfo = new List<clsBuddyRetPodInfo>(); // objBuddyRetPageInfo.intOwnerID = _objPageInfo.intOwnerID; // objBuddyRetPageInfo.intOwnerPageIndex = _objPageInfo.intOwnerPageIndex; // objBuddyRetPageInfo.intPageID = _objPageInfo.intPageID; // objBuddyRetPageInfo.strDropType = _objPageInfo.strDropType; // int ownerindex = ((VMuktiGrid.ctlTab.TabItem)((ctlGrid)((Grid)((ItemsControl)this.Parent).Parent).Parent).Parent).OwnerTabIndex; // for (int i = 0; i < _objPageInfo.objaTabs.Length; i++) // { // if (ownerindex == _objPageInfo.objaTabs[i].intOwnerTabIndex) // { // int lstBuddyRetTabInfoCount = lstBuddyRetTabInfo.Count - 1; // lstBuddyRetTabInfo.Add(new clsBuddyRetTabInfo()); // lstBuddyRetTabInfo[lstBuddyRetTabInfoCount].intOwnerTabIndex = _objPageInfo.objaTabs[i].intOwnerTabIndex; // lstBuddyRetTabInfo[lstBuddyRetTabInfoCount].intTabID = _objPageInfo.objaTabs[i].intTabID; // for (int j = 0; j < _objPageInfo.objaTabs[i].objaPods.Length; j++) // { // if (this.OwnerPodIndex == _objPageInfo.objaTabs[i].objaPods[j].intOwnerPodIndex) // { // lstBuddyRetPodInfo.Add(new clsBuddyRetPodInfo()); // lstBuddyRetPodInfo[lstBuddyRetTabInfoCount].intColumnNumber = _objPageInfo.objaTabs[i].objaPods[j].intColumnNumber; // lstBuddyRetPodInfo[lstBuddyRetTabInfoCount].intModuleId = _objPageInfo.objaTabs[i].objaPods[j].intModuleId; // lstBuddyRetPodInfo[lstBuddyRetTabInfoCount].intOwnerPodIndex = _objPageInfo.objaTabs[i].objaPods[j].intOwnerPodIndex; // lstBuddyRetPodInfo[lstBuddyRetTabInfoCount].straPodBuddies = _objPageInfo.objaTabs[i].objaPods[j].straPodBuddies; // } // } // lstBuddyRetTabInfo[lstBuddyRetTabInfoCount].objaPods = lstBuddyRetPodInfo.ToArray(); // } // } // objBuddyRetPageInfo.objaTabs = lstBuddyRetTabInfo.ToArray(); // objBuddyRetPageInfo.strFrom = _objPageInfo.strTo; // objBuddyRetPageInfo.strTo = _objPageInfo.strFrom; // objBuddyRetPageInfo.strMsg = "MODULE_LOADED"; //} } catch (Exception ex) { VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "dispMethoadModule()", "Controls\\VMuktiGrid\\Grid\\ctlPOD.xaml.cs"); } }
void bwDownloadZips_DoWork(object sender, DoWorkEventArgs e) { try { ClsModuleCollection cmc = (ClsModuleCollection)e.Argument; Assembly ass = Assembly.GetAssembly(typeof(pgHome)); for (int i = 0; i < cmc.Count; i++) { #region Downloading ZipFile string filename = cmc[i].ZipFile; Uri u = new Uri(VMuktiAPI.VMuktiInfo.ZipFileDownloadLink + filename); if (!Directory.Exists(ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files"))) { Directory.CreateDirectory(ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files")); } string destination = ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files"); try { if (!File.Exists(destination + "\\" + filename)) { WebClient wc = new WebClient(); wc.DownloadFile(u, destination + "\\" + filename); } #endregion #region Extracting string strModPath = ass.Location.Replace("VMukti.Presentation.exe", @"Modules"); VMukti.ZipUnzip.Zip.FastZip fz = new VMukti.ZipUnzip.Zip.FastZip(); if (!Directory.Exists(strModPath + "\\" + filename.Split('.')[0])) { fz.ExtractZip(destination + "\\" + filename, strModPath, null); } string strXmlPath = strModPath + "\\" + filename.Split('.')[0] + "\\Control\\configuration.xml"; if (File.Exists(strXmlPath)) { #region Parsing XML XmlParser xp = new XmlParser(); xp.Parse(strXmlPath); #endregion try { if (!string.IsNullOrEmpty(xp.xMain.SWFFileName)) { if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.SWFFileName)) { FileInfo fi = new FileInfo(strModPath + "\\" + filename.Split('.')[0] + "\\Control\\" + xp.xMain.SWFFileName); fi.CopyTo(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.SWFFileName); } } if (!string.IsNullOrEmpty(xp.xMain.TextFileName)) { if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.TextFileName)) { FileInfo fi = new FileInfo(strModPath + "\\" + filename.Split('.')[0] + "\\Control\\" + xp.xMain.TextFileName); fi.CopyTo(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.TextFileName); } } } catch (Exception ex) { VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "bwDownloadZips_DoWork--copying swf n txt files", "Domains\\SuperNodeServiceDomain.cs"); } } } catch (Exception exp) { VMuktiAPI.VMuktiHelper.ExceptionHandler(exp, "bwDownloadZips_DoWork--File " + filename + " Not Found", "pgHome.xaml.cs"); } #endregion } } catch (Exception exp) { VMuktiAPI.VMuktiHelper.ExceptionHandler(exp, "beDownloadZips_DoWork()", "pgHome.xaml.cs"); } }
public void LoadPod4MultipleBuddies(object objModuleParams) { try { object[] obj = (object[])objModuleParams; #region Collaborative if (obj.Length == 3) { VMukti.Business.VMuktiGrid.ClsModule objModule = ClsModule.GetPodModule(this.ModuleID); #region Downloading ZipFile Uri zipFileURL = new Uri(VMuktiAPI.VMuktiInfo.ZipFileDownloadLink + objModule.ZipFile); if (!Directory.Exists(ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files"))) { Directory.CreateDirectory(ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files")); } string destination = ass.Location.Replace("VMukti.Presentation.exe", @"Zip Files"); if (!File.Exists(destination + "\\" + objModule.ZipFile)) { WebClient wc = new WebClient(); wc.DownloadFile(zipFileURL, destination + "\\" + objModule.ZipFile); } #endregion #region Extracting string strModPath = ass.Location.Replace("VMukti.Presentation.exe", @"Modules"); VMukti.ZipUnzip.Zip.FastZip fz = new VMukti.ZipUnzip.Zip.FastZip(); if (!Directory.Exists(strModPath + "\\" + objModule.ZipFile.Split('.')[0])) { fz.ExtractZip(destination + "\\" + objModule.ZipFile, strModPath, null); } string strXmlPath = strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\Control\\configuration.xml"; if (File.Exists(strXmlPath)) { #region Parsing XML XmlParser xp = new XmlParser(); xp.Parse(strXmlPath); #endregion try { if (!string.IsNullOrEmpty(xp.xMain.SWFFileName)) { if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.SWFFileName)) { FileInfo fi = new FileInfo(strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\Control\\" + xp.xMain.SWFFileName); fi.CopyTo(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.SWFFileName); } } if (!string.IsNullOrEmpty(xp.xMain.TextFileName)) { if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.TextFileName)) { FileInfo fi = new FileInfo(strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\Control\\" + xp.xMain.TextFileName); fi.CopyTo(AppDomain.CurrentDomain.BaseDirectory + xp.xMain.TextFileName); } } } catch (Exception ex) { VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "LoadPod4MultipleBuddies--copying swf n txt files", "Domains\\SuperNodeServiceDomain.cs"); } } #endregion #region Loading ReferencedAssemblies DirectoryInfo dirinfomodule = new DirectoryInfo(strModPath + "\\" + objModule.ZipFile.Split('.')[0]); ShowDirectory(dirinfomodule); #region extracting imagefile string imagefilename = strModPath + "\\" + objModule.ZipFile.Split('.')[0] + "\\" + "Control\\" + objModule.ZipFile.Split('.')[0] + ".png"; if (File.Exists(imagefilename)) { BitmapImage objimage = new BitmapImage(); objimage.BeginInit(); objimage.UriSource = new Uri(imagefilename); objimage.EndInit(); imgPODIcon.BeginInit(); imgPODIcon.Source = objimage; imgPODIcon.EndInit(); } #endregion for (int j = 0; j < al.Count; j++) { string[] arraysplit = al[j].ToString().Split('\\'); if (arraysplit[arraysplit.Length - 1].ToString() == objModule.AssemblyFile) { a = Assembly.LoadFrom(al[j].ToString()); AssemblyName[] an = a.GetReferencedAssemblies(); for (int alcount = 0; alcount < al.Count; alcount++) { string strsplit = al[alcount].ToString(); string[] strold = strsplit.Split('\\'); string strnew = strold[strold.Length - 1].Substring(0, strold[strold.Length - 1].Length - 4); for (int asscount = 0; asscount < an.Length; asscount++) { if (an[asscount].Name == strnew) { Assembly assbal = System.AppDomain.CurrentDomain.Load(System.Reflection.Assembly.LoadFrom(al[alcount].ToString()).GetName()); AssemblyName[] anbal = assbal.GetReferencedAssemblies(); for (int andal = 0; andal < al.Count; andal++) { string strsplitdal = al[andal].ToString(); string[] strolddal = strsplitdal.Split('\\'); string strnewdal = strolddal[strolddal.Length - 1].Substring(0, strolddal[strolddal.Length - 1].Length - 4); for (int asscountdal = 0; asscountdal < anbal.Length; asscountdal++) { if (anbal[asscountdal].Name == strnewdal) { Assembly assdal = System.AppDomain.CurrentDomain.Load(System.Reflection.Assembly.LoadFrom(al[andal].ToString()).GetName()); } } } } } } Type[] t1 = a.GetTypes(); #region CreatingObject for (int k = 0; k < t1.Length; k++) { if (t1[k].Name == objModule.ClassName) { try { ConstructorInfo[] ci = t1[k].GetConstructors(); for (int constcount = 0; constcount < ci.Length; constcount++) { ParameterInfo[] pi = ci[constcount].GetParameters(); if (pi.Length == 4) { if (pi[0].ParameterType.Name == "PeerType") { object[] objArg = new object[4]; objArg[0] = VMuktiInfo.CurrentPeer.CurrPeerType; objArg[1] = obj[0].ToString(); objArg[2] = obj[1]; if (_strFromWhere == "fromOtherPeer") { objArg[3] = "Guest"; } else if (_strFromWhere == "fromLeftPane" || _strFromWhere == "fromDatabase") { objArg[3] = "Host"; } object obj1 = Activator.CreateInstance(t1[k], BindingFlags.CreateInstance, null, objArg, new System.Globalization.CultureInfo("en-US")); grdBody.Tag = t1[k].ToString(); grdBody.Children.Remove(animImage); grdBody.Children.Add((UIElement)obj1); break; } } else { object obj1 = Activator.CreateInstance(t1[k]); ((UserControl)obj1).SetValue(Canvas.LeftProperty, 0.0); ((UserControl)obj1).SetValue(Canvas.TopProperty, 0.0); grdBody.Tag = t1[k].ToString(); grdBody.Children.Remove(animImage); grdBody.Children.Add((UIElement)obj1); break; } } } catch (Exception exp) { VMuktiAPI.VMuktiHelper.ExceptionHandler(exp, "CreatingObject--5", "Controls\\VMuktiGrid\\Grid\\ctlPOD.xaml.cs"); } } } #endregion } } #endregion } #endregion al.Clear(); #region dhaval if (_strFromWhere == "fromPeer") { for (int onlineBuddyCnt = 0; onlineBuddyCnt < onlineBuddy.Count; onlineBuddyCnt++) { this.AddBuddy(onlineBuddy[onlineBuddyCnt]); } } #endregion dhaval if (_strFromWhere != "fromPeer") { InformMultipleBuddy(); } } catch (Exception ex) { VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "PageThread()", "Controls\\VMuktiGrid\\Grid\\ctlPOD.xaml.cs"); } }