public void btnPreviewOsql_Click(Office.IRibbonControl control) { _isForceDisablePreviewOsql = false; Document doc = Wkl.MainCtrl.CommonCtrl.CommonProfile.ActiveDoc; try { //Validate document string mgrKey = string.Empty; Pdw.WKL.Profiler.Manager.ManagerProfile mgrPro = Wkl.MainCtrl.ManagerCtrl.CreateProfile(out mgrKey); mgrPro.WdColorIndex = DefineColors.GetColor(selectedColor).Color; mgrPro.IsSaveDocument = false; ContextValidator validator = new ContextValidator(doc); validator.ValidateBeforeSave(mgrKey); //If document has invalid bookmarks if (!mgrPro.IsCorrect) { //Ask user to remove invalid bookmarks mgrPro.WDoc = doc; Hcl.SaveMessageDialog saveNotify = new Hcl.SaveMessageDialog(mgrKey); DialogResult userConfirm = saveNotify.ShowDialog(); if (userConfirm != DialogResult.OK || !HasSelectIBM()) { return; } } //Build and show osql PdwInfo pdwInfo = GetPdwInfo(doc); ChecksumInfo checkSum = ProntoDoc.Framework.Utils.ObjectSerializeHelper.Deserialize <ChecksumInfo>(pdwInfo.ChecksumString); OsqlXml osqlXml = ProntoDoc.Framework.Utils.ObjectSerializeHelper.Deserialize <OsqlXml>(pdwInfo.OsqlString); string renderArgument, jRenderArgument; GetRenderArguments(checkSum, out renderArgument, out jRenderArgument); Pdw.PreviewOsql.PreviewOsqlForm previewDialog = new Pdw.PreviewOsql.PreviewOsqlForm(); previewDialog.Osql = osqlXml.GetOsql("/*------------------------------------*/"); previewDialog.JOsql = osqlXml.GetJsql("/*------------------------------------*/"); previewDialog.Xsl = pdwInfo.XsltString; previewDialog.RenderArgument = renderArgument; previewDialog.JRenderArgument = jRenderArgument; previewDialog.CheckSumInfo = checkSum; previewDialog.OsqlXml = osqlXml; previewDialog.ShowDialog(); } catch { } }
public void GenOsql(List <DomainInfo> domains, InternalBookmark ibm) { OsqlString = string.Empty; Ibm = ibm.Clone(); ChecksumInfoItems = new List <ChecksumInfoItem>(); OsqlXml = new OsqlXml(); int domainIndex = 1; foreach (DomainInfo domain in domains) { BaseGenOsqlHelper genHelper = null; ProntoDoc.Framework.CoreObject.AppDbTypes dbType = GetDatabaseType(domain); switch (dbType) { case ProntoDoc.Framework.CoreObject.AppDbTypes.Oracle: genHelper = new GenOsqlOracleHelper(); break; case ProntoDoc.Framework.CoreObject.AppDbTypes.Sql: genHelper = new GenOsqlSql08Helper(); break; default: break; } if (genHelper != null) { genHelper.GenOsql(domain, Ibm, domainIndex); // genHelper.ChecksumInfoItem.DocumentSpecificColor = ibm.DocumentSpecificColor; // replace for BaseGenOsqlHelper ChecksumInfoItems.Add(genHelper.ChecksumInfoItem); OsqlXml.OsqlXmlItems.Add(genHelper.OsqlXmlItem); } domainIndex++; } OsqlString = ProntoDoc.Framework.Utils.ObjectSerializeHelper.SerializeToString <OsqlXml>(OsqlXml); }
private string ProcessOsqlGetAppData(ChecksumInfoItem item, RenderArgDomainValue renderArgumentValue, string conn, OsqlXml osqlXml) { string osqlData = string.Empty; foreach (var osqlItem in osqlXml.OsqlXmlItems) { if (string.Compare(osqlItem.DomainName, renderArgumentValue.Name, true) == 0) { osqlData = GetDataAgrumentValueWithDBType(item, osqlItem.Osql, renderArgumentValue, conn); } } return(osqlData); }
public Dictionary <string, string> GetOsqlDataFromAppDB(List <ChecksumInfoItem> checksumItems, RenderArgumentValue renderArgumentValue, MDB mdb, OsqlXml osqlXml, ref string msg) { Dictionary <string, string> dicOsqlResult = new Dictionary <string, string>(); Validator validator = new Validator(); bool isValid = true; //Get list DBID , Connection string and validate DBID Dictionary <string, string> lstAppDb = GetDBID(mdb.ListAppDB, ref msg); //Validate DBID List <string> lstDBID = lstAppDb.Keys.ToList(); isValid &= Validator.ValidateDBID(checksumItems, lstDBID, ref msg); foreach (var appdb in lstAppDb) { List <ChecksumInfoItem> lstCheckSumItems = checksumItems.Where(x => string.Compare(x.DBID, appdb.Key, true) == 0).ToList(); if (lstCheckSumItems.Count() > 0) { //2. Execute all Osqls, get data for domains foreach (ChecksumInfoItem item in lstCheckSumItems) { RenderArgDomainValue domainRenderArgValue = new RenderArgDomainValue(); try { domainRenderArgValue = renderArgumentValue.Domains.First(c => c.Name == item.DomainName); } catch (Exception) { msg += item.DomainName + " not match with input info !!! \n"; } //Validate RenderArgumentDomainValue isValid &= validator.ValidateRenderArgumentDomainValue(item, domainRenderArgValue, ref msg); string result = ProcessOsqlGetAppData(item, domainRenderArgValue, appdb.Value, osqlXml); string encodedDomainName = XmlHelper.Encode(item.DomainName); dicOsqlResult.Add(encodedDomainName, result); } } } if (!isValid) { throw new Exception(msg); } //3. Return result of all Osql executed on a Database return(dicOsqlResult); }