private void WriteToPage(object page, XVar objectToWrite) { if (objectToWrite.IsArray()) { if (objectToWrite.KeyExists("method")) { XVar parameters = objectToWrite.KeyExists("params") ? objectToWrite["params"] : new XVar(); xtMethodDelegate invokedMethod = (xtMethodDelegate)objectToWrite["method"].Value; MVCFunctions.ob_start(); var result = invokedMethod.Invoke(parameters); var resultStr = result as object == null ? "" : result.ToString(); MvcHtmlString textToWrite = MvcHtmlString.Create(MVCFunctions.ob_get_contents() + resultStr); MVCFunctions.ob_end_clean(); page.GetType().GetMethod("Write", new Type[] { typeof(MvcHtmlString) }).Invoke(page, new object[] { textToWrite }); } } else { page.GetType().GetMethod("Write", new Type[] { typeof(MvcHtmlString) }).Invoke(page, new object[] { MvcHtmlString.Create(objectToWrite.ToString()) }); } }
public System.Collections.IEnumerable GetSection(string sectionName, object page) { XVar sectionValue = getVar(sectionName); XSection xSection = new XSection(); if (sectionValue != null) { if (sectionValue.Type == typeof(bool) && sectionValue) { yield return(sectionName); } else if (sectionValue.IsArray()) { if (sectionValue.KeyExists("begin")) { WriteToPage(page, sectionValue["begin"]); } if (!sectionValue.KeyExists("data") || !sectionValue["data"].IsArray()) { yield return(sectionName); } else { xSection.End = null; foreach (var dataItem in sectionValue["data"].GetEnumerator()) { if (dataItem.Value.IsArray()) { xt_stack.Add(dataItem.Value); if (dataItem.Value.KeyExists("begin")) { WriteToPage(page, dataItem.Value["begin"]); } } yield return(sectionName); if (dataItem.Value.IsArray()) { xt_stack.Remove(xt_stack.Count() - 1); if (dataItem.Value.KeyExists("end")) { WriteToPage(page, dataItem.Value["end"]); } } xSection.Begin = null; } } if (sectionValue.KeyExists("end")) { WriteToPage(page, sectionValue["end"]); } } else if (sectionValue.Type != typeof(bool)) { yield return(sectionName); } } }
public XVar exists(dynamic curEvent, dynamic table = null) { if (table == null || table == "") { return(events.KeyExists(curEvent)); } else { return(events.KeyExists(curEvent) && events[curEvent].KeyExists(table)); } }
public object this[XVar index] { get { if (buffer.KeyExists(index)) { return buffer[index]; } return null; } }
private string[] buildInsertColumnNamesAndValues(IDictionary <string, string> csvColumnDataTypesDictionary, XVar data) { string[] returnStrings = new string[2]; StringBuilder csvColumns = new StringBuilder(); StringBuilder csvValues = new StringBuilder(); foreach (KeyValuePair <string, string> kvp in csvColumnDataTypesDictionary) { if (data.KeyExists(kvp.Key)) { if (csvColumns.Length > 0) { csvColumns.Append(","); csvValues.Append(","); } csvColumns.Append(kvp.Key); if (data.GetArrayItem(kvp.Key).Length() == 0) { csvValues.Append("NULL"); } else if (kvp.Value.Equals("STRING")) { string valueString = data.GetArrayItem(kvp.Key).Replace("'", "''"); csvValues.AppendFormat("{0}{1}{2}", "'", valueString, "'"); } else if (kvp.Value.Equals("NUMBER")) { csvValues.Append(data.GetArrayItem(kvp.Key).ToString()); } else if (kvp.Value.Equals("DATE")) { csvValues.AppendFormat("{0}{1}{2}", "TO_DATE('", data.GetArrayItem(kvp.Key).ToString(), "', 'YYYYMMDD')"); // csvValues.AppendFormat("{0}{1}{2}", "'", data[kvp.Key], "'"); } else { throw new Exception("Could not file datatype of " + kvp.Value); } } } returnStrings[0] = csvColumns.ToString(); returnStrings[1] = csvValues.ToString(); return(returnStrings); }
private string buildWhereClauseColumnNamesAndValues(IDictionary <string, string> csvColumnDataTypesDictionary, XVar data) { string returnString = ""; StringBuilder whereStmtBuilder = new StringBuilder(); foreach (KeyValuePair <string, string> kvp in csvColumnDataTypesDictionary) { if (data.KeyExists(kvp.Key)) { if (whereStmtBuilder.Length > 0) { whereStmtBuilder.Append(" AND "); } if (kvp.Value.Equals("STRING")) { string valueString = data[kvp.Key].Replace("'", "''"); whereStmtBuilder.AppendFormat("{0} = {1}{2}{3}", kvp.Key, "'", valueString, "'"); } else if (kvp.Value.Equals("NUMBER")) { whereStmtBuilder.AppendFormat("{0} = {1}", kvp.Key, data[kvp.Key]); } else if (kvp.Value.Equals("DATE")) { whereStmtBuilder.AppendFormat("{0} = {1}{2}{3}", kvp.Key, "TO_DATE('", data[kvp.Key], "', 'YYYYMMDD')"); } else { throw new Exception("Could not file datatype of " + kvp.Value); } } } returnString = whereStmtBuilder.ToString(); return(returnString); }
private string[] buildUpdateColumnNamesAndValues(IDictionary <string, string> csvColumnDataTypesDictionary, XVar data) { string[] returnStrings = new string[1]; StringBuilder updateStmtBuilder = new StringBuilder(); foreach (KeyValuePair <string, string> kvp in csvColumnDataTypesDictionary) { if (data.KeyExists(kvp.Key)) { if (data.GetArrayItem(kvp.Key).Length() == 0) { updateStmtBuilder.AppendFormat("{0} = NULL", kvp.Key); } else if (kvp.Value.Equals("STRING")) { string valueString = data.GetArrayItem(kvp.Key).Replace("'", "''"); updateStmtBuilder.AppendFormat("{0}={1}{2}{3}", kvp.Key, "'", valueString, "'"); } else if (kvp.Value.Equals("NUMBER")) { updateStmtBuilder.AppendFormat("{0}={1}", kvp.Key, data.GetArrayItem(kvp.Key).ToString()); } else if (kvp.Value.Equals("DATE")) { updateStmtBuilder.AppendFormat("{0} = {1}{2}{3}", kvp.Key, "TO_DATE('", data.GetArrayItem(kvp.Key).ToString(), "', 'YYYYMMDD')"); } else { throw new Exception("Could not file datatype of " + kvp.Value); } } } returnStrings[0] = updateStmtBuilder.ToString(); return(returnStrings); }
public XVar existsCAPTCHA(dynamic page) { return(captchas.KeyExists(page)); }
public XVar existsMap(dynamic page) { return(maps.KeyExists(page)); }
public static IEnumerable <XVar> IterateSheet(ExcelPackage xlsPack, XVar fieldsData, bool useFirstLine) { XVar previewData = null; foreach (var worksheet in xlsPack.Workbook.Worksheets) { for (int row = (useFirstLine? 1 : 2); row <= worksheet.Dimension.End.Row; ++row) { XVar arr = XVar.Array(); for (int i = 0; i < worksheet.Dimension.End.Column; i++) { if (!fieldsData.KeyExists(i)) { continue; } var cell = worksheet.Cells[row, i + 1]; XVar val = null; if (cell != null && cell.Value != null) { bool dateCorrectlyExtracted = false; if (cell.Value is DateTime) // sometimes date stored in a DateTime { val = ((DateTime)cell.Value).ToString("yyyy-MM-dd H:mm:ss"); dateCorrectlyExtracted = true; } else if (Regex.IsMatch(cell.Style.Numberformat.Format, ("([ymdHis])"))) // sometimes date stored in a weird number { cell.Style.Numberformat.Format = "yyyy-MM-dd H:mm:ss"; val = cell.Text; dateCorrectlyExtracted = true; } else if (cell.IsRichText) { val = cell.RichText.Text; } else { val = new XVar(cell.Value.ToString()); } // the following code block looks suspicious (!) if (fieldsData.KeyExists(i) && fieldsData[i]["dateTimeType"] && // column should have date value, !dateCorrectlyExtracted && // but in excel it looks awfull (row != 0 || !useFirstLine)) // also we still dont know actual format and it is not header row { previewData = XVar.Array(); // so try to guess format from the value previewData["dateFormat"] = ImportPage.extractDateFormat(val); } } if (previewData != null) { arr.Add(MVCFunctions.runner_htmlspecialchars(val)); } else { arr[fieldsData[i]["fName"]] = val; } } yield return(arr); } } }