public void Handle(IMessageReceivedEvent e) { GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>().Connection.Broadcast("messageReceived"); //USING RAVEN DB EMBEDDED using (IDocumentSession session = Global.Store.OpenSession()) { try { if (session.Query <TreeListMember>().Where(x => x.AppID == e.Message.AppID).Any()) { TreeListMember member = session.Query <TreeListMember>().Where(x => x.AppID == e.Message.AppID).First(); member.DateChecked = e.Message.DateChecked; member.Results = e.Message.Results; member.Status = e.Message.OverallStatus; GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>().Connection.Broadcast("afterProcessing"); session.SaveChanges(); //:: SignalR CLIENT :: var hubContext = GlobalHost.ConnectionManager.GetConnectionContext <MonitorHub>(); hubContext.Connection.Broadcast(JsonConvert.SerializeObject(member)); } else { Component c = new Component(); using (var datacontext = new ServiceMonitorDataContext()) { var comp = datacontext.Components.Where(x => x.AppID == e.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; } } TreeListMember m = new TreeListMember() { AppID = e.Message.AppID, AppName = c.AppName, DateChecked = e.Message.DateChecked, HasSubComponents = c.HasSubComponents, ParentComponentId = c.ParentComponentId, Results = e.Message.Results, Status = e.Message.OverallStatus }; session.Store(m); //:: 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) { 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); } } }