protected void Page_Load(object sender, EventArgs e) { bool displayLocal = WebDialogueContext.GetDialogueParameter<bool>("DisplayLocal", true); QueryData qd = new QueryData(); qd.AddField("UserGroupId", DataValueType.IntegerType); qd.AddField("Name", DataValueType.ShortStringType); qd.AddRow(SystemUserGroupType.Anonymous, Local.Text("Web.WAF.Dialogues.Main.AccessUserGroup.BuiltInForAnonymous")); qd.AddRow(SystemUserGroupType.AllUsers, Local.Text("Web.WAF.Dialogues.Main.AccessUserGroup.BuiltInForSystemUsers")); qd.AddRow(SystemUserGroupType.Administrator, Local.Text("Web.WAF.Dialogues.Main.AccessUserGroup.BuiltInForAdmin")); if (displayLocal) { foreach (UserGroup g in WAFContext.Session.GetContents<UserGroup>(null, AqlUserGroup.Name).OrderBy(g => g.Name)) { qd.AddRow(g.NodeId, g.Name); } } contentList.IQuery = new DataQuery(qd); if (!displayLocal) { MainButton btnSearchLocal = new MainButton(); Controls.Add(btnSearchLocal); btnSearchLocal.Text = "Search local groups..."; btnSearchLocal.Click += new EventHandler(btnSearchLocal_Click); WebDialogueContext.AddDialogueButton(btnSearchLocal); } MainButton btn = new MainButton(); Controls.Add(btn); btn.Text = "Select"; btn.Click += new EventHandler(contentList_DblClick); WebDialogueContext.AddDialogueButton(btn); }
void addRow(QueryData qd, string filter, RevisionStateRequest request, NodeStateRequest nodeRequest, bool toNotFrom, string textPlural, string textSingle) { int n = getRevisionCount(request, nodeRequest, toNotFrom); if (n > 0) { qd.AddRow(filter, "<strong>" + n + "</strong>", "<span style=\" font-weight:bold;\">" + (n == 1 ? textSingle : textPlural) + "</span>"); } else { qd.AddRow(filter, "<span style=\"color:gray;\">0</span>", "<span style=\"color:gray;\">" + textPlural + "</span>"); } }
void setQuery() { AqlExpressionBuilder expStatus = new AqlExpressionBuilder(); expStatus.Or(AqlUrlStatus.NodeId == -1); foreach (ListItem i in chkLinkStatus.Items) { if (i.Selected) expStatus.Or(AqlUrlStatus.Status == int.Parse(i.Value)); } AqlExpressionBuilder expType = new AqlExpressionBuilder(); expType.Or(AqlUrlStatus.NodeId == -1); foreach (ListItem i in chkLinkType.Items) { if (i.Selected) expType.Or(AqlUrlStatus.UrlType == int.Parse(i.Value)); } AqlExpressionBoolean exp = null; if (!expStatus.IsEmpty) exp = expStatus; if (!expType.IsEmpty) { if (expStatus.IsEmpty) { exp = expType; } else { exp = new AqlExpressionAnd(expType, expStatus); } } if (!WAFContext.Session.Access.IsAdmin()) exp = exp & AqlUrlStatus.SiteId == WAFContext.Session.SiteId; var session = WAFContext.Session; IEnumerable<UrlStatus> urls = WAFContext.Engine.SystemSession.GetContents<UrlStatus>(exp); _links = WAFContext.Session.GetLinks(urls); _links = ( from l in _links orderby l.Url, l.LinkType, l.Content.Name, l.PropertyName where session.Access.IsMember(l.Content.EditAccessGroupId) select l).ToList(); QueryData qd = new QueryData(); qd.AddField("Index", DataValueType.IntegerType); qd.AddField("Key", DataValueType.LongStringType); qd.AddField("Tooltip", DataValueType.LongStringType); for (int i = 0; i < _links.Count; i++) qd.AddRow(i, _links[i].Content.Key.ToString() + "_" + i + "_" + _links[i].Url.Replace("_", "###").Replace(Environment.NewLine, ""), getToolTip(_links[i])); lst.IQuery = new DataQuery(qd); }
void setQuerySessionList() { QueryData qd = new QueryData(); DateTime now = DateTime.Now; qd.AddField("Value", DataValueType.ShortStringType); qd.AddField("Text", DataValueType.LongStringType); qd.AddField("LastUsage", DataValueType.ShortStringType); qd.AddField("LastRequest", DataValueType.ShortStringType); qd.AddField("Origin", DataValueType.LongStringType); qd.AddField("Age", DataValueType.ShortStringType); qd.AddField("Timeout", DataValueType.ShortStringType); qd.AddField("Tooltip", DataValueType.LongStringType); qd.AddField("Type", DataValueType.LongStringType); var ss = from s in WAFRuntime.Engine.GetAllSessions() orderby s.LastUsage descending select s; List<WAFSession> sessions; if (ss.Count() > 50) { pnlOnline.Text = "Sessions. First 50 of " + ss.Count(); sessions = ss.Take(50).ToList(); } else { pnlOnline.Text = "Sessions"; sessions = ss.ToList(); } foreach (WAFSession session in sessions) { string icon = ""; switch (session.Access.UserType) { case SystemUserType.Anonymous: icon = WAFContext.GetHtmlClassIcon(SystemUser.ContentClassId, "margin:0px 3px -4px 3px; "); break; case SystemUserType.Administrator: icon = WAFContext.GetHtmlClassIcon(SystemUser.ContentClassId, "margin:0px 3px -4px 3px; "); break; case SystemUserType.System: icon = WAFContext.GetHtmlClassIcon(SystemUser.ContentClassId, "margin:0px 3px -4px 3px; "); break; case SystemUserType.User: icon = WAFContext.GetHtmlClassIcon(session.GetUser().ClassId, "margin:0px 3px -4px 3px; "); break; default: break; } string name = ""; switch (session.Access.UserType) { case SystemUserType.Anonymous: name = "[Anonymous]"; break; case SystemUserType.Administrator: name = session.GetUser().UserName; break; case SystemUserType.System: if (session.SessionId == WAFRuntime.SystemSession.SessionId) { name = "[System]"; break; } else { name = "[Master]"; break; } case SystemUserType.User: SystemUser su = session.GetUser(); name = su.UserName; break; default: break; } if (WAFContext.Session.SessionId == session.SessionId) name = name + "<span style=\"color:#FF8833;\"> [Me!]</span>"; string tooltip = (session.UserId < -10 || session.UserId > 0 ? "User ID: " + session.UserId : "[" + session.Access.UserType + "]") + "<br /><br />Created: " + session.Created + ((session.InitUrl != null) ? ("<br /><br />First request: " + session.InitUrl.Split('?')[0]) : "") + ((session.InitUrl != null) ? ("<br /><br />Referrer url: " + (session.InitReferrer != null ? session.InitReferrer.Split('?')[0] : "")) : "") + ((session.LastPageviewUrl != null) ? ("<br /><br />Last request: " + session.LastPageviewUrl.Split('?')[0]) : "") + ((session.Access.IsStored) ? ("<br /><br />Name: " + session.GetUser().Name) : ""); qd.AddRow( session.SessionId.ToString(), icon + name, Utils.GetTimespanStringShort(now.Subtract(session.LastUsage)), (session.LastPageview != Utils.DateTimeNull && session.LastPageview != DateTime.MinValue ? Utils.GetTimespanStringShort(now.Subtract(session.LastPageview)) : ""), Utils.GetFriendlyName(session.SessionBirthContext.ToString()), Utils.GetTimespanStringShort(now.Subtract(session.Created)), Utils.GetTimespanStringShort(WAFRuntime.Engine.SessionTimeout - now.Subtract(session.LastUsage)), tooltip, Utils.GetFriendlyName(session.Access.UserType.ToString()) ); } lstOnline.BorderWidth = 0; lstOnline.IQuery = new DataQuery(qd); }
void setQueryScheduledTask() { QueryData qd = new QueryData(); qd.AddField("Value", DataValueType.ShortStringType); qd.AddField("Text", DataValueType.ShortStringType); qd.AddField("Enabled", DataValueType.ShortStringType); qd.AddField("LastRun", DataValueType.ShortStringType); qd.AddField("Description", DataValueType.ShortStringType); foreach (ScheduledTask task in WAFRuntime.Engine.SystemSession.Query<ScheduledTask>().OrderBy(AqlScheduledTask.Name).Execute()) { string icon = WAFContext.GetHtmlClassIcon(task.ClassId, "margin:0px 3px -4px 3px; "); ; string name = task.Name; string desc; switch (task.IntervalUnit) { case TaskShedulerIntervalUnit.Continuous: desc = "Every " + Utils.GetTimespanString(new TimeSpan(0, 0, task.StartAt)); break; case TaskShedulerIntervalUnit.Minute: desc = "" + Utils.GetTimespanString(new TimeSpan(0, 0, task.StartAt)) + " past the minute"; break; case TaskShedulerIntervalUnit.Hour: desc = "" + Utils.GetTimespanString(new TimeSpan(0, 0, task.StartAt)) + " past the hour"; break; case TaskShedulerIntervalUnit.Day: desc = "" + Utils.GetTimespanString(new TimeSpan(0, 0, task.StartAt)) + " past midnight"; break; case TaskShedulerIntervalUnit.Week: desc = "" + Utils.GetTimespanString(new TimeSpan(0, 0, task.StartAt)) + " past every week start"; break; case TaskShedulerIntervalUnit.Month: desc = "" + Utils.GetTimespanString(new TimeSpan(0, 0, task.StartAt)) + " past every month start"; break; case TaskShedulerIntervalUnit.Quarter: desc = "" + Utils.GetTimespanString(new TimeSpan(0, 0, task.StartAt)) + " past every quarter"; break; case TaskShedulerIntervalUnit.Year: desc = "" + Utils.GetTimespanString(new TimeSpan(0, 0, task.StartAt)) + " past every year start"; break; default: desc = ""; break; } qd.AddRow( task.NodeId.ToString(), icon + name, task.Enabled ? "Yes" : "No", task.InProgress ? "In progress" : (task.LastStart.ToShortDateString() + " " + task.LastStart.ToShortTimeString()), desc ); } lstTasks.BorderWidth = 0; lstTasks.IQuery = new DataQuery(qd); }
void setQueryTreeList() { QueryData qd = new QueryData(); qd.AddField("Value", DataValueType.ShortStringType); qd.AddField("Text", DataValueType.ShortStringType); qd.AddRow(((int)MessageStatus.Inbox).ToString(), Local.Text("Web.WAF.Edit.Messages.DefaultInbox")); qd.AddRow(((int)MessageStatus.Draft).ToString(), Local.Text("Web.WAF.Edit.Messages.DefaultDraft")); qd.AddRow(((int)MessageStatus.Outbox).ToString(), Local.Text("Web.WAF.Edit.Messages.DefaultOutbox")); qd.AddRow(((int)MessageStatus.Sendt).ToString(), Local.Text("Web.WAF.Edit.Messages.DefaultSendt")); foreach (IDataValue[] dv in qd.Data) { ShortStringDataValue s = (ShortStringDataValue)dv[1]; s.Value = WAFContext.GetHtmlClassIcon(FileFolder.ContentClassId, "margin:0px 3px -4px 3px; ") + s.Value; } lstTree.BorderWidth = 0; lstTree.IQuery = new DataQuery(qd); }
void updateList() { QueryData qd = new QueryData(); qd.AddField("id", DataValueType.IntegerType); qd.AddField("icon", DataValueType.ShortStringType); qd.AddField("name", DataValueType.ShortStringType); qd.AddField("status", DataValueType.ShortStringType); qd.AddField("tooltip", DataValueType.LongStringType); qd.AddField("rec_action", DataValueType.ShortStringType); qd.AddField("sel_action", DataValueType.ShortStringType); int id = 0; foreach (var c in _comparisons) { string icon = WAFContext.UI.Skin.GetUrlIconFolder(); switch (c.DefType) { case DefType.ContentClasses: icon += "ContentClass.png"; break; //case DefType.Property: icon += "Property.png"; break; case DefType.Relations: icon += "Relation.png"; break; case DefType.PropertyGroups: icon += "Panel.png"; break; case DefType.PropertyClasses: icon += "Property.png"; break; case DefType.Cultures: icon = WAFContext.GetUrlFromHostToCultureFlag(c.LCID); break; case DefType.Enumerations: icon += "Enum.png"; break; default: icon += ""; break; } icon = "<img src='" + icon + "'/>"; string rec_action = getAction(c.RecommendedAction, c.Status, "<font color=gray>No recommendation</font>"); string sel_action = getAction(c.SelectedAction, c.Status, "<font color=red>Unresolved</font>"); qd.AddRow(id++, icon, c.Name, getStatus(c.Status), (c.Difference + "").Replace(Environment.NewLine, "<br/>").Replace(" ", " "), rec_action, sel_action); } lstComparisons.IQuery = new DataQuery(qd); }
protected QueryData GetSalesSummaryQuery() { QueryData qd = new QueryData(); DateTime now = DateTime.Now; qd.AddField("PeriodName", DataValueType.ShortStringType); qd.AddField("NumOrders", DataValueType.ShortStringType); qd.AddField("TotalRevenue", DataValueType.ShortStringType); qd.AddField("AverageOrderValue", DataValueType.ShortStringType); qd.AddField("BiggestOrder", DataValueType.ShortStringType); qd.AddField("MostPopularProductRevenue", DataValueType.IntegerType); qd.AddField("MostPopularProductNumItems", DataValueType.IntegerType); //Fetch sales summary data //Today SalesSummaryData todaySalesData = WebshopStatistics.GetSalesSummaryData(GetReportPeriod(DefaultReportPeriod.Today)); qd.AddRow( "Today", todaySalesData.NumberOfOrders.ToString(), todaySalesData.TotalRevenue.ToString("N2"), todaySalesData.AverageOrderValue.ToString("N2"), todaySalesData.BiggestOrder.ToString("N2"), todaySalesData.MostPopularProductRevenueNodeId, todaySalesData.MostPopularProductNumberOfItemsNodeId ); //Yesterday SalesSummaryData yesterdaySalesData = WebshopStatistics.GetSalesSummaryData(GetReportPeriod(DefaultReportPeriod.Yesterday)); qd.AddRow( "Yesterday", yesterdaySalesData.NumberOfOrders.ToString(), yesterdaySalesData.TotalRevenue.ToString("N2"), yesterdaySalesData.AverageOrderValue.ToString("N2"), yesterdaySalesData.BiggestOrder.ToString("N2"), yesterdaySalesData.MostPopularProductRevenueNodeId, yesterdaySalesData.MostPopularProductNumberOfItemsNodeId ); //Last 7 days SalesSummaryData lastSevenDaysSalesData = WebshopStatistics.GetSalesSummaryData(GetReportPeriod(DefaultReportPeriod.Last7days)); qd.AddRow( "Last 7 days", lastSevenDaysSalesData.NumberOfOrders.ToString(), lastSevenDaysSalesData.TotalRevenue.ToString("N2"), lastSevenDaysSalesData.AverageOrderValue.ToString("N2"), lastSevenDaysSalesData.BiggestOrder.ToString("N2"), lastSevenDaysSalesData.MostPopularProductRevenueNodeId, lastSevenDaysSalesData.MostPopularProductNumberOfItemsNodeId ); //Last 30 days SalesSummaryData lastThirtyDaysSalesData = WebshopStatistics.GetSalesSummaryData(GetReportPeriod(DefaultReportPeriod.Last30Days)); qd.AddRow( "Last 30 days", lastThirtyDaysSalesData.NumberOfOrders.ToString(), lastThirtyDaysSalesData.TotalRevenue.ToString("N2"), lastThirtyDaysSalesData.AverageOrderValue.ToString("N2"), lastThirtyDaysSalesData.BiggestOrder.ToString("N2"), lastThirtyDaysSalesData.MostPopularProductRevenueNodeId, lastThirtyDaysSalesData.MostPopularProductNumberOfItemsNodeId ); //This Month SalesSummaryData thisMonthSalesData = WebshopStatistics.GetSalesSummaryData(GetReportPeriod(DefaultReportPeriod.ThisMonth)); qd.AddRow( "This month", thisMonthSalesData.NumberOfOrders.ToString(), thisMonthSalesData.TotalRevenue.ToString("N2"), thisMonthSalesData.AverageOrderValue.ToString("N2"), thisMonthSalesData.BiggestOrder.ToString("N2"), thisMonthSalesData.MostPopularProductRevenueNodeId, thisMonthSalesData.MostPopularProductNumberOfItemsNodeId ); //Last month SalesSummaryData lastMonthSalesData = WebshopStatistics.GetSalesSummaryData(GetReportPeriod(DefaultReportPeriod.LastMonth)); qd.AddRow( "Last month", lastMonthSalesData.NumberOfOrders.ToString(), lastMonthSalesData.TotalRevenue.ToString("N2"), lastMonthSalesData.AverageOrderValue.ToString("N2"), lastMonthSalesData.BiggestOrder.ToString("N2"), lastMonthSalesData.MostPopularProductRevenueNodeId, lastMonthSalesData.MostPopularProductNumberOfItemsNodeId ); //This year SalesSummaryData thisYearSalesData = WebshopStatistics.GetSalesSummaryData(GetReportPeriod(DefaultReportPeriod.ThisYear)); qd.AddRow( "This year", thisYearSalesData.NumberOfOrders.ToString(), thisYearSalesData.TotalRevenue.ToString("N2"), thisYearSalesData.AverageOrderValue.ToString("N2"), thisYearSalesData.BiggestOrder.ToString("N2"), thisYearSalesData.MostPopularProductRevenueNodeId, thisYearSalesData.MostPopularProductNumberOfItemsNodeId ); //Last year SalesSummaryData lastYearSalesData = WebshopStatistics.GetSalesSummaryData(GetReportPeriod(DefaultReportPeriod.LastYear)); qd.AddRow( "Last year", lastYearSalesData.NumberOfOrders.ToString(), lastYearSalesData.TotalRevenue.ToString("N2"), lastYearSalesData.AverageOrderValue.ToString("N2"), lastYearSalesData.BiggestOrder.ToString("N2"), lastYearSalesData.MostPopularProductRevenueNodeId, lastYearSalesData.MostPopularProductNumberOfItemsNodeId ); //Total SalesSummaryData allTimeSalesData = WebshopStatistics.GetSalesSummaryData(GetReportPeriod(DefaultReportPeriod.AllTime)); qd.AddRow( "All time", allTimeSalesData.NumberOfOrders.ToString(), allTimeSalesData.TotalRevenue.ToString("N2"), allTimeSalesData.AverageOrderValue.ToString("N2"), allTimeSalesData.BiggestOrder.ToString("N2"), allTimeSalesData.MostPopularProductRevenueNodeId, allTimeSalesData.MostPopularProductNumberOfItemsNodeId ); //Average pr day. qd.AddRow( "Avg per day", GetAverageNumberOfOrdersPerDay().ToString(), GetAverageRevenuePerDay().ToString("N2"), "", "", 0, 0 ); //(GetAverageRevenuePerDay() / (double)GetAverageNumberOfOrdersPerDay()).ToString("N2"), //Average pr month. qd.AddRow( "Avg per month", GetAverageNumberOfOrdersPerMonth().ToString(), GetAverageRevenuePerMonth().ToString("N2"), "", "", 0, 0 ); //qd.AddRow(); return qd; }
void updateList() { QueryData qd = new QueryData(); qd.AddField("guid", DataValueType.ShortStringType); qd.AddField("icon", DataValueType.ShortStringType); qd.AddField("name", DataValueType.ShortStringType); qd.AddField("status", DataValueType.ShortStringType); qd.AddField("tooltip", DataValueType.LongStringType); qd.AddField("rec_action", DataValueType.ShortStringType); qd.AddField("sel_action", DataValueType.ShortStringType); foreach (var c in _difference) { var action = _actions[c.Key]; var orgAction = _orgActions[c.Key]; bool show = true; if (!_listIdentical) { if (c.Value.Status == ComparisonStatus.Identical || c.Value.Status == ComparisonStatus.DeletedLocallyAndExternally) { show = false; } } if (action != SynchronizationAction.Nothing || orgAction != SynchronizationAction.Nothing) { // always show if any action show = true; } // c.Value.Status != ComparisonStatus.Identical || _listIdentical || (action != SynchronizationAction.Nothing || orgAction != SynchronizationAction.Nothing) if (show) { int classId; string icon; if (WAFRuntime.Definitions.TryGetClassId(c.Value.ClassName, out classId)) { icon = WAFContext.GetUrlFromHostToClassIcon(classId); } else { icon = WAFContext.GetUrlFromHostToClassIcon(0); } icon = "<img src='" + icon + "'/>"; string guid = c.Key.ToString(); string name = c.Value.Name; string status = getStatus(c.Value.Status); string tooltip = "Global GUID: " + c.Key + "</br>Local Node ID: " + c.Value.LocalNodeId + "</br>External Node ID: " + c.Value.ExternalNodeId; string rec_action = getAction(orgAction); string sel_action = "<b>" + getAction(action) + "</b>"; qd.AddRow(guid, icon, name, status, tooltip, rec_action, sel_action); } } lstComparisons.IQuery = new DataQuery(qd); }
void initFiles() { lstFiles.DblClick += new EventHandler(lstFiles_DblClick); QueryData qd = new QueryData(); qd.AddField("guid", DataValueType.ShortStringType); qd.AddField("icon", DataValueType.ShortStringType); qd.AddField("path", DataValueType.ShortStringType); qd.AddField("errors", DataValueType.ShortStringType); qd.AddField("tooltip", DataValueType.LongStringType); foreach (string source in _sourceFiles.OrderBy(f => f)) { Guid guid = new Guid(Path.GetFileNameWithoutExtension(source)); string tempPath = getTempFileName(guid); var relevantErrors = _errors.Where(er => String.Compare(er.FileName, tempPath, true) == 0).ToList(); string path = HttpUtility.HtmlEncode(getShortFileName(guid)); string icon; string tooltip; if (relevantErrors.Count > 0) { tooltip = relevantErrors.Count > 1 ? relevantErrors.Count + " errors:<br/><br/>" : "1 error:<br/><br/>"; if (relevantErrors.Where(ee => !ee.IsWarning).Count() == 0) { icon = "Images/Warning.png"; } else { icon = "Images/Error.png"; } foreach (var err in relevantErrors) { tooltip += replacePaths(err.ErrorText) + "<br/>Ln " + err.Line + " col " + err.Column + "<br/><br/>"; } } else { path = "<span style='color:gray;'>" + path + "</span>"; tooltip = "No errors"; icon = WAFContext.GetUrlFromHostToFileExtensionIcon(".cs", WAFContext.UI.Skin.Url); } icon = "<img src='" + icon + "'/>"; qd.AddRow(guid.ToString(), icon, path, relevantErrors.Count > 0 ? relevantErrors.Count.ToString() : "", tooltip); } lstFiles.IQuery = new DataQuery(qd); }
void initErrors() { StringBuilder sb = new StringBuilder(); QueryData qd = new QueryData(); qd.AddField("id", DataValueType.ShortStringType); qd.AddField("icon", DataValueType.ShortStringType); qd.AddField("error", DataValueType.ShortStringType); qd.AddField("path", DataValueType.ShortStringType); qd.AddField("line", DataValueType.ShortStringType); qd.AddField("tooltip", DataValueType.LongStringType); int n = 0; foreach (var err in _errors) { string id = n.ToString(); string icon = "<img src='Images/" + (err.IsWarning ? "Warning" : "Error") + ".png'/>"; string error = replacePaths(err.ErrorText); string path = ""; try { if (!String.IsNullOrEmpty(err.FileName)) path = getShortFileName(err.FileName); } catch { } string tooltip = error.Replace("\"", "'") + "<br/><br/>" + path + "<br/><br/>Ln " + err.Line + " Col " + err.Column; if (error.Length > 60) error = error.Substring(0, 60) + "..."; if (path.Length > 35) path = "..." + path.Substring(path.Length - 35); qd.AddRow(id, icon, error, path, err.Line.ToString(), tooltip); n++; } lstErrors.IQuery = new DataQuery(qd); lstErrors.DblClick += new EventHandler(lstErrors_DblClick); }