public DataSet ExecuteQuery(DataFeed feed, HttpRequestBase request) { var parameters = new Dictionary <object, object>(); foreach (var key in request.QueryString.AllKeys) { parameters.Add(key, request.QueryString[key]); } var util = new DataFeedUtility(Provider); feed.ApplyDefaultParameters(parameters); return(util.ExecuteQuery(feed, ScriptParameters.Create(parameters))); }
public DataTable[] GetTables(DataSet ds) { return(DataFeedUtility.GetTables(ds, Key).ToArray()); }
public void DeleteFeed() { DataFeedUtility.DeleteFeed(GetFeed(), CurrentUser); }
public ActionResult Index(string alias, string format, string key, string callback = null) { var model = new FeedModel { Provider = Provider, CurrentUser = CurrentUser, Alias = alias, Format = format, Key = key, Callback = callback }; if (string.IsNullOrEmpty(model.Alias)) { return(RedirectToAction("List")); } ContentResult result = new ContentResult(); var parameters = new Dictionary <object, object>(); Merge(parameters, Request.QueryString); var feedResult = ServiceProvider.Current.Data.Feed.GetDataFeedResult(alias, key, parameters); try { var util = new DataFeedUtility(ServiceProvider.Current); if (feedResult == null) { throw new Exception("Could not find feed: " + model.Alias); } else if (feedResult.Deleted) { throw new Exception("Could not find feed: " + model.Alias); } else if (!feedResult.Active && !DataFeedItem.CanViewInactiveFeeds(CurrentUser)) { throw new Exception("Could not find feed: " + model.Alias); } else { switch (model.Format) { case "xml": result.Content = util.XmlFeedContent(feedResult); result.ContentType = "text/xml"; break; case "rss": result.Content = util.RssFeedContent(feedResult, model.Key, Request.Url, Request.Path); result.ContentType = "application/rss+xml"; break; case "html": return(View("Feed", model)); case "table": result.Content = util.HtmlFeedContent(feedResult, model.Format); result.ContentType = "text/html"; break; case "json": case "jsonp": case "datatables": result.Content = util.JsonFeedContent(feedResult, model.Key, model.Format); if (model.Format == "jsonp" && !string.IsNullOrEmpty(model.Callback)) { result.Content = model.Callback + "(" + result.Content + ")"; } result.ContentType = "application/json"; break; case "ical": result.Content = util.IcalFeedContent(feedResult, model.Key, Request.ServerVariables["LOCAL_ADDR"]); result.ContentType = "text/calendar"; Response.Charset = string.Empty; Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}-{1}.ics", feedResult.Alias, DateTime.Now.ToString("yyyyMMddHHmmss"))); break; default: //csv result.Content = util.CsvFeedContent(feedResult, model.Key); result.ContentType = "text/csv"; Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}-{1}.csv", feedResult.Alias, DateTime.Now.ToString("yyyyMMddHHmmss"))); break; } } } catch (Exception ex) { //model.App = "Content"; model.ErrorMessage = ex.Message; switch (model.Format) { case "xml": result.Content = string.Format("<data name=\"LNF Feed Error\"><table name=\"default\"><row><Error>{0}</Error></row></table></data>", ex.Message); result.ContentType = "text/xml"; break; case "rss": result.Content = string.Format("<?xml version=\"1.0\" encoding=\"UTF-8\"?><rss version=\"2.0\"><channel><title>LNF Feed Error</title><item><title>Error</title><description>{0}</description></item></channel></rss>", ex.Message); result.ContentType = "application/rss+xml"; break; case "json": case "jsonp": case "datatables": result.Content = "{\"Error\":\"" + ex.Message + "\"}"; if (model.Format == "jsonp" && !string.IsNullOrEmpty(model.Callback)) { result.Content = model.Callback + "(" + result.Content + ")"; } result.ContentType = "application/json"; break; case "ical": result.Content = string.Format("Error: {0}", ex.Message); result.ContentType = "text/plain"; break; case "csv": result.Content = "Error" + Environment.NewLine + ex.Message; result.ContentType = "text/csv"; Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}-{1}.csv", "lnf-feed-error", DateTime.Now.ToString("yyyyMMddHHmmss"))); break; default: return(View("Launcher", model)); } } return(result); }