public void process_data_row(query q,row row,bool noLinks) { int len=0; if(noLinks) { foreach(query.column c in q.columns) { core.column mc=this.data_schema.Find(x=>x.name==c.name); if(null!=mc && mc.export) len++; } } else len=q.columns.Count; string[] data_columns=new string[len]; int index=0; foreach(query.column c in q.columns) { titan.core.column p; string data=""; int cI=this.data_schema.FindIndex(x=>x.name==c.name); if(cI>=0) p =this.data_schema[cI]; else p=new titan.core.column(c.name,"number",0,true); if(p.visible|| p.export) { if(!row.ContainsKey(p.name)) { data_columns[index]="*"; index++; continue; } //skip bad structure? if(null==row[p.name]) data=""; else data=row[p.name].ToString(); if(noLinks && !p.export) continue; data_columns[index]=this.data_types.transform_data(p.type,data,c); //does the conversion of types String to whatever is in the data types table for that type. index++; }//end p visible }//end for each columns this.results.rows.Add(data_columns); }
public string export(lambda i,string web_token) { string query="SELECT TOP 1 json,token FROM titanDWS_exports WITH (NOLOCK) WHERE [id]=@export_id AND [web_token]=@token"; parameters param=new parameters(); param.add("@token" ,web_token); param.add("@export_id" ,i.export_id); System.Web.Script.Serialization.JavaScriptSerializer jss=new System.Web.Script.Serialization.JavaScriptSerializer(); lambda export_input=null; security.titan_token s_token=null; data_set result=db.fetch("titan",query,param); if(null!=results) { string json= (string)result[0,"json"]; string token=(string)result[0,"token"]; export_input=jss.Deserialize<lambda>(json); s_token=jss.Deserialize<security.titan_token>(token); } else { return null; //nothing... lets exit } if(null==export_input) return null; string name=String.Format("{0}-{1}-{2}.csv",export_input.group,export_input.method,DateTime.Now.ToLongTimeString()); /*HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + name); HttpContext.Current.Response.ContentType = "text/csv"; HttpContext.Current.Response.AddHeader("Pragma", "public"); */ export_input.pageLength=0; export_input.page=0; this.input=export_input; StringBuilder sb=new StringBuilder(); method m=new method(); m.execute(input,true,s_token,false); int index=0; foreach (query.column c in results.columns) { core.column mc=m.data_schema.Find(x=>x.name==c.name); if(null!=mc && mc.export) { if (index!=0) { sb.Append(","); } index++; sb.Append(String.Format("\"{0}\"",c.name)); } } sb.Append("\r\n"); foreach (string[] row in results.rows) { //row index=0; foreach (string column in row) { //column if (index!=0) { sb.Append(","); } index++; sb.Append(String.Format("\"{0}\"",column)); } sb.Append("\r\n"); } return sb.ToString(); //HttpContext.Current.Response.Flush(); //HttpContext.Current.Response.End(); }//end export
public static method from_json(string text, security.titan_token token, bool save = true) { method m = JsonConvert.DeserializeObject <method>(text, new JsonSerializerSettings { Error = delegate(object sender, ErrorEventArgs args){ Console.WriteLine(args.ErrorContext.Error.Message); args.ErrorContext.Handled = true; } }); if (null == m.data_schema) { m.data_schema = new List <titan.core.column>(); } if (null == m.parameters) { m.parameters = new List <titan.core.parameter>(); } m.parameters.RemoveAll(item => item == null); m.parameters.RemoveAll(item => String.IsNullOrWhiteSpace(item.name)); parameters param = m.execute_load_parameters(token, null, true); if (m.regenerate_columns) { m.data_schema.Clear(); data_set row = db.fetch(m.connection_string, strip_comments(m.query), param); //no conn string denotes localhost, aything else is treated as a conn string.. (titan) int index = 0; if (null != row) //only update the titan.core.columns if we have atlest 1 result. { foreach (string key in row.Keys) { index++; titan.core.column c = new titan.core.column(key, "text", index, true); m.data_schema.Add(c); //only add if it doesnt exist... } } // if(null!=titan.core.columns) titan.core.columns.RemoveAll(item=> !row.ContainsKey(item.name) ); } // //global.reload(); if (save) { if (!string.IsNullOrWhiteSpace(m.data_mapping_name)) { if (null == m.sig_init) { m.sig_init = new external_data_defaults(); m.sig_init.group = m.group; m.sig_init.method = m.method; m.sig_init.owner = m.owner; } m.sig_init.save(); } m.save(); m.generate_queries(); } else { m.generate_queries(); } return(m); }