protected void Page_Load(object sender, EventArgs e) { //Bitmap map; if (Request["chartImg"] != null && Request["chartType"] != null && Request["tableData"] != null && Request["source"] != null && Request["keywords"] != null && Request["title"] != null && Request["subtitle"] != null && Request["filename"] != null) { string imageBitString = Request["chartImg"].ToString(); string imageType = Request["chartType"].ToString(); string tTableData = Request["tableData"].ToString(); string tSource = Request["source"].ToString(); string tKeywords = Request["keywords"].ToString(); string tTitle = Request["title"].ToString(); string tSubtitle = Request["subtitle"].ToString(); string tfilename = Request["filename"].ToString(); if (String.IsNullOrEmpty(tfilename)) tfilename = "radar"; string extenstion =string.Empty; string contentType = string.Empty; MemoryStream tData = null; switch(imageType.ToLower()) { case "image/png": tData = new MemoryStream(); MemoryStream picStream = new MemoryStream(Convert.FromBase64String(imageBitString)); extenstion = ".png"; contentType = "image/png"; tData = picStream; picStream.Close(); picStream.Dispose(); break; case "application/vnd.xls": tData = new MemoryStream(); Callback callbackObj = new Callback(this.Page); IWorkbook workbook = callbackObj.getWorkbookForSwf(tTitle, tSubtitle, tSource, tKeywords, tTableData, imageBitString); if (workbook!=null) workbook.SaveToStream(tData, FileFormat.XLS97); else workbook.SaveToStream(tData, FileFormat.XLS97); workbook.Close(); extenstion = ".xls"; contentType = "application/vnd.xls"; break; } tData.Close(); tData.Dispose(); Response.ClearContent(); Response.ClearHeaders(); Response.ContentType = contentType; Response.AppendHeader("Content-Disposition", "attachment; filename=" + tfilename + extenstion +""); Response.BinaryWrite(tData.ToArray()); Response.End(); } }
public string SaveGalleryItem(string requestParam) { string RetVal; string[] Params; string DBNId, LngCode, imgInText = string.Empty, UserNId, CategoryNId, Indicators,IndicatorNids, Areas, UDK, Name, Desc, Type, ChartType, SettingData = string.Empty, folderStructure = "stock\\Gallery\\", title = string.Empty, subtitle = string.Empty, source = string.Empty, keywords = string.Empty, tableData = string.Empty; string KeyWordNIds, SelAreaInQds,dbLngCode=string.Empty; RetVal = string.Empty; try { Params = requestParam.Split(new string[] { Constants.Delimiters.ParamDelimiter }, StringSplitOptions.None); DBNId = Params[0].Trim(); LngCode = Params[1].Trim(); UserNId = Params[2].Trim(); CategoryNId = Params[3].Trim(); IndicatorNids = Params[4].Trim(); Indicators = getIndicatorNames(getIndicatorNameDataTable(IndicatorNids, Int32.Parse(DBNId), LngCode)); Areas = Params[5].Trim(); UDK = Params[6].Trim(); Name = Params[7].Trim(); Desc = Params[8].Trim(); Type = Params[9].Trim(); ChartType = Params[10].Trim(); SelAreaInQds = Params[11].Trim(); #region Making folder structure if (isUserAdmin(UserNId)) folderStructure += "public\\admin\\"; else folderStructure += "private\\" + UserNId + "\\"; #endregion #region In case of graph and table if (Type.ToLower() == "g" || Type.ToLower() == "t") { imgInText = Params[12].Trim(); SettingData = Params[13].Trim(); title = Params[14].Trim(); subtitle = Params[15].Trim(); source = Params[16].Trim(); keywords = Params[17].Trim(); tableData = Params[18].Trim(); } #endregion // Reading XML to read block {@@} dbLngCode = Global.GetDefaultLanguageCodeDB(DBNId.ToString(), LngCode); int IntResult; string Query = string.Empty; DataTable DtPresentation; DIConnection DIConnection = null; DIConnection = new DIConnection(DIServerType.MsAccess, string.Empty, string.Empty, Server.MapPath("~//stock//Database.mdb"), string.Empty, string.Empty); Query = "SELECT * from presentations WHERE pres_name ='" + DevInfo.Lib.DI_LibBAL.Utility.DICommon.RemoveQuotes(Name) + "' AND user_nid =" + UserNId; DtPresentation = DIConnection.ExecuteDataTable(Query); if (DtPresentation.Rows.Count > 0) { RetVal = "-999"; } else { if (!Int32.TryParse(SelAreaInQds, out IntResult)) { XmlDocument BlockDoc = new XmlDocument(); string BlockCodeListPath = HttpContext.Current.Request.PhysicalApplicationPath + "stock\\data\\" + DBNId + "\\ds\\" + LngCode; if (Directory.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "stock\\data\\" + DBNId + "\\ds\\" + LngCode)) { BlockCodeListPath += "\\area\\qscodelist.xml"; } else { BlockCodeListPath = HttpContext.Current.Request.PhysicalApplicationPath + "stock\\data\\" + DBNId + "\\ds\\" + dbLngCode + "\\area\\qscodelist.xml"; } BlockDoc.Load(BlockCodeListPath); XmlNodeList aTags = BlockDoc.GetElementsByTagName("a"); foreach (XmlNode aTag in aTags) { if (aTag.Attributes["nid"].Value == SelAreaInQds) { Areas += "{@@}" + aTag.Attributes["n"].Value; break; } } } else { List<System.Data.Common.DbParameter> DbParams = new List<System.Data.Common.DbParameter>(); DIConnection ObjDIConnection = this.GetDbConnection(int.Parse(DBNId)); System.Data.Common.DbParameter Param1 = ObjDIConnection.CreateDBParameter(); Param1.ParameterName = "AreaNids"; Param1.DbType = DbType.String; Param1.Value = SelAreaInQds; DbParams.Add(Param1); DataTable dtAreaNames = ObjDIConnection.ExecuteDataTable("sp_get_AreaNames_" + dbLngCode, CommandType.StoredProcedure, DbParams); if (dtAreaNames != null && dtAreaNames.Rows.Count > 0) { Areas += "{@@}" + dtAreaNames.Rows[0][0].ToString(); } } // Insert records into database KeyWordNIds = this.InsertIntoKeywordsTable(Indicators, Areas, UDK); //RetVal = this.InsertIntoPresentationsTable(DateTime.Now.ToShortDateString(), DateTime.Now.ToShortDateString(), CategoryNId, Name, Type, // ChartType, Desc, UDK, DBNId, LngCode, UserNId, KeyWordNIds); RetVal = this.InsertIntoPresentationsTable(DateTime.Now.ToString(), DateTime.Now.ToString(), CategoryNId, Name, Type, ChartType, Desc, UDK, DBNId, LngCode, UserNId, KeyWordNIds); // Created Folder if not exists this.Create_Directory_If_Not_Exists(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal)); #region Save details for radar if (ChartType == "radar" || ChartType == "scatter3d") { MemoryStream picStream = new MemoryStream(Convert.FromBase64String(imgInText)); System.Drawing.Image chartImage = System.Drawing.Image.FromStream(picStream); Bitmap bmp = new Bitmap(chartImage, 269, 150); bmp.Save(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + "_t.png"), System.Drawing.Imaging.ImageFormat.Png); bmp.Dispose(); bmp = new Bitmap(chartImage, 584, 326); bmp.Save(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".png"), System.Drawing.Imaging.ImageFormat.Png); bmp.Dispose(); chartImage.Dispose(); this.Create_File(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "stock\\templates\\swfvisualizer.html"), Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".html")); this.Save_Settings_File(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".xml"), SettingData); Callback callbackObj = new Callback(this.Page); IWorkbook workbook = callbackObj.getWorkbookForSwf(title, subtitle, source, keywords, tableData, imgInText); workbook.SaveAs(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".xls"), SpreadsheetGear.FileFormat.XLS97); workbook.Close(); } #endregion #region Save details for Map else if (ChartType == "map") { SaveKMLMap(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal), RetVal); SavePngMap(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal), RetVal + "_t", false, false, 150, 269); SavePngMap(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal), RetVal, true, true, 326, 584); SaveExcelMap(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal), RetVal); //SaveMap(string FolderNameWPath, string FileName) } #endregion #region Save details for table else if (ChartType == "table") { this.Create_File(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "stock\\templates\\table.png"), Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".png")); this.Create_File(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "stock\\templates\\table_t.png"), Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + "_t.png")); Callback callbackObj = new Callback(this.Page); IWorkbook workbook = callbackObj.getWorkbookXLS(title, subtitle, source, keywords, tableData, imgInText); workbook.SaveAs(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".xls"), FileFormat.XLS97); workbook.Close(); SettingData = SettingData.Replace("[******]", "[****]"); WriteHTMLtoFile(SettingData, Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".html")); } #endregion #region Save details for treemap else if (ChartType == "treemap" || ChartType == "cloud") { string thumbImage = string.Empty; string bigImage = string.Empty; if (ChartType == "treemap") { thumbImage = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "stock\\templates\\treemap_t.png"); bigImage = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "stock\\templates\\treemap.png"); } else { thumbImage = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "stock\\templates\\cloud_t.png"); bigImage = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "stock\\templates\\cloud.png"); } this.Create_File(bigImage, Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".png")); this.Create_File(thumbImage, Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + "_t.png")); Callback callbackObj = new Callback(this.Page); IWorkbook workbook = callbackObj.getWorkbookXLS(title, subtitle, source, keywords, tableData, imgInText); workbook.SaveAs(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".xls"), SpreadsheetGear.FileFormat.XLS97); workbook.Close(); this.Save_Settings_File(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".xml"), SettingData); File.WriteAllText(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".html"), imgInText); } #endregion #region Save details for other visualizer callforsvg_rasterizer else { Process dosProcess = new Process(); string svg_folder = "libraries\\svg_rasterizer\\"; string workingDir = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, svg_folder); string filePath = Path.Combine(workingDir, RetVal + Constants.XLSDownloadType.SvgExtention); FileStream fileStream = File.Create(filePath); fileStream.Close(); using (StreamWriter sw = new StreamWriter(filePath)) { sw.Write(imgInText); } string filePth = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @filePath); var sampleDoc = SvgDocument.Open(filePth, new Dictionary<string, string> { {"entity1", "fill:red" }, {"entity2", "fill:yellow" } }); string destination = @workingDir + "\\" + RetVal + ".png"; sampleDoc.Draw().Save(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, destination)); //string command = "/C java -jar " + Constants.XLSDownloadType.BatikRasterizerJarFile + " " + Constants.XLSDownloadType.ImageType + " " + RetVal + Constants.XLSDownloadType.SvgExtention; //ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe"); //startInfo.UseShellExecute = false; //startInfo.WorkingDirectory = workingDir; //startInfo.Arguments = command; //startInfo.CreateNoWindow = false; //dosProcess.StartInfo = startInfo; //dosProcess.Start(); //dosProcess.WaitForExit(); dosProcess.Close(); File.Move(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, svg_folder) + RetVal + ".png", Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".png")); File.Move(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, svg_folder) + RetVal + ".svg", Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".svg")); SaveThumbnail(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".png"), Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + "_t.png"), 150, 150); File.Copy(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".png"), Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + "t.png"), true); File.Delete(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".png")); SaveThumbnail(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + "t.png"), Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".png"), 698, 326); this.Save_Settings_File(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".xml"), SettingData); this.Create_File(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "stock\\templates\\visualizer.html"), Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".html")); Callback callbackObj = new Callback(this.Page); IWorkbook workbook = callbackObj.getWorkbookXLS(title, subtitle, source, keywords, tableData, imgInText); workbook.SaveAs(Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, folderStructure + RetVal + "\\" + RetVal + ".xls"), SpreadsheetGear.FileFormat.XLS97); workbook.Close(); } #endregion } } catch (Exception ex) { RetVal = ex.Message; Global.CreateExceptionString(ex, null); } return RetVal; }