protected void ASPxTreeList1_CustomDataCallback(object sender, DevExpress.Web.ASPxTreeList.TreeListCustomDataCallbackEventArgs e) { using (IDocumentSession session = Global.Store.OpenSession()) { string processedId = e.Argument; if (e.Argument.StartsWith("!-!")) { processedId = "{" + e.Argument.Substring(3, e.Argument.Length - 3); } if (e.Argument.EndsWith("!-!")) { processedId = processedId.Substring(0, processedId.Length - 3) + "}"; } using (var transaction = new TransactionScope()) { if (session.Query <TreeCheckResult>().Where(x => x.AppID == processedId).Any()) { TreeMember member = session.Load <TreeMember>(session.Query <TreeMember>().Where(x => x.AppID == processedId).First().Id); List <TreeCheckResult> allResults = session.Query <TreeCheckResult>().Where(r => r.AppID == processedId).ToList(); List <TreeCheckResult> processedResults = session.Query <TreeCheckResult>().Where(r => r.AppID == processedId).ToList(); foreach (var result in allResults) { if (processedResults.Where(x => x.Title == result.Title).Count() > 1) { TreeCheckResult uniqueResult = result; processedResults.RemoveAll(x => x.Title == result.Title); processedResults.Add(result); } } e.Result = TreeListMemberLogic.HtmlizeResults(processedResults); } else { e.Result = "Results not found"; } transaction.Complete(); } } }
public void Handle(SelfHealthMessage message) { GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>().Connection.Broadcast("messageReceived"); using (IDocumentSession session = Global.Store.OpenSession()) { try { if (session.Query <TreeMember>().Where(x => x.AppID == message.AppID).Any()) { TreeMember theMember = session.Load <TreeMember>(session.Query <TreeMember>().Where(x => x.AppID == message.AppID).First().Id); using (var transaction = new TransactionScope()) { theMember.DateChecked = message.DateChecked; List <TreeCheckResult> memberResults = session.Query <TreeCheckResult>().Where(x => x.AppID == message.AppID).ToList(); foreach (var result in message.Results) { if (memberResults.Any(x => x.Title == result.Title)) { TreeCheckResult formerResult = session.Load <TreeCheckResult>(session.Query <TreeCheckResult>().Where(x => x.AppID == message.AppID && x.Title == result.Title).First().Id); formerResult.Status = result.Status; formerResult.AdditionalInformation = result.AdditionalInformation; formerResult.TimeElasped = result.TimeElasped; session.SaveChanges(); } else { TreeCheckResult newResult = new TreeCheckResult(); newResult.AppID = message.AppID; newResult.Title = result.Title; newResult.Status = result.Status; newResult.AdditionalInformation = result.AdditionalInformation; newResult.TimeElasped = result.TimeElasped; session.Store(newResult); session.SaveChanges(); } //session.SaveChanges(); } List <TreeCheckResult> newMemberResults = session.Query <TreeCheckResult>().Where(x => x.AppID == message.AppID).ToList(); theMember.Status = GetOverallStatus(newMemberResults); session.SaveChanges(); transaction.Complete(); } //:: SignalR CLIENT :: GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>().Connection.Broadcast("afterProcessing"); var hubContext = GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>(); hubContext.Connection.Broadcast(JsonConvert.SerializeObject(theMember)); //} } else { Component c = new Component(); using (var datacontext = new ServiceMonitorDataContext()) { var comp = datacontext.Components.Where(x => x.AppID == message.AppID); if (comp.Any()) { c.AppID = comp.First().AppID; c.AppName = comp.First().AppName; c.HasSubComponents = comp.First().HasSubComponents == true ? true : false; c.ParentComponentId = comp.First().ParentComponentId; } } using (var transaction = new TransactionScope()) { TreeMember m = new TreeMember() { AppID = message.AppID, AppName = c.AppName, DateChecked = message.DateChecked, HasSubComponents = c.HasSubComponents, ParentComponentId = c.ParentComponentId, Status = message.OverallStatus }; session.Store(m); foreach (var result in message.Results) { TreeCheckResult r = new TreeCheckResult() { AppID = message.AppID, Title = result.Title, Status = result.Status, AdditionalInformation = result.AdditionalInformation, TimeElasped = result.TimeElasped }; session.Store(r); } ; session.SaveChanges(); transaction.Complete(); } //:: SignalR CLIENT :: var hubContext = GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>(); hubContext.Connection.Broadcast("reloadPage"); } } catch (Exception exp) { GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>().Connection.Broadcast("error:" + exp.Message); } } }
public void Handle(SelfHealthMessage message) { Console.WriteLine(); Console.WriteLine("[{0:dd-MMM-yyyy hh:mm tt}] {1} Status: {2}", message.DateChecked, message.AppID, message.OverallStatus); foreach (var res in message.Results) { Console.WriteLine("{0}\t{1}\t({2}ms)\t[{3}]", res.Title, res.Status, res.TimeElasped, res.AdditionalInformation); } Console.WriteLine("---------------------------------------------------"); Console.WriteLine(); //Bus.Send<SelfHealthMessage>(x => // { // x.AppID = message.AppID; // x.DateChecked = message.DateChecked; // x.OverallStatus = message.OverallStatus; // x.Results = message.Results; // }); //Bus.Send("DejaVu.SelfHealthCheck.WebMonitor.Workers", new SelfHealthMessage() //{ // AppID = message.AppID, // DateChecked = message.DateChecked, // OverallStatus = message.OverallStatus, // Results = message.Results //}); //Bus.Publish<IMessageReceivedEvent>(e => e.Message = message); GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>().Connection.Broadcast("messageReceived"); DejaVu.SelfHealthCheck.WebMonitor.Workers.RavenDB.RavenStore.CustomInitializeStore(); using (IDocumentSession session = DejaVu.SelfHealthCheck.WebMonitor.Workers.RavenDB.RavenStore.Store.OpenSession()) { try { Component theComponent = new Component(); theComponent = session.Query <Component>().Where(x => x.AppID == message.AppID).FirstOrDefault(); if (theComponent == null) { } else { using (var transaction = new TransactionScope()) { TreeCheckResult checkResult = new TreeCheckResult(); List <TreeCheckResult> memberResults = session.Query <TreeCheckResult>().Where(x => x.AppID == message.AppID).ToList(); foreach (var result in message.Results) { if (memberResults.Any(x => x.Title == result.Title)) { TreeCheckResult formerResult = session.Load <TreeCheckResult>(session.Query <TreeCheckResult>().Where(x => x.AppID == message.AppID && x.Title == result.Title).First().Id); formerResult.Status = result.Status; formerResult.AdditionalInformation = result.AdditionalInformation; formerResult.TimeElasped = result.TimeElasped; session.SaveChanges(); } else { TreeCheckResult newResult = new TreeCheckResult(); newResult.AppID = message.AppID; newResult.Title = result.Title; newResult.Status = result.Status; newResult.AdditionalInformation = result.AdditionalInformation; newResult.TimeElasped = result.TimeElasped; session.Store(newResult); session.SaveChanges(); } //session.SaveChanges(); } List <TreeCheckResult> newMemberResults = session.Query <TreeCheckResult>().Where(x => x.AppID == message.AppID).ToList(); theComponent.DateChecked = message.DateChecked.ToString("dd-MMM-yyyy hh:mm:ss tt"); theComponent.Status = GetOverallStatus(newMemberResults).ToString(); session.SaveChanges(); transaction.Complete(); } var appId = theComponent.AppID; if (appId.StartsWith("{")) { appId = "" + appId.Substring(1, appId.Length - 1); } if (appId.EndsWith("}")) { appId = appId.Substring(0, appId.Length - 1) + ""; } theComponent.AppID = appId; GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>().Connection.Broadcast(JsonConvert.SerializeObject(theComponent)); } } catch (Exception e) { ErrorLog log = new ErrorLog() { AppID = message.AppID, ErrorMessage = e.Message }; session.Store(log); } } }