public async Task <DashboardState> Handle(DateTimeOffset date, UserId user, DashboardId dashboard) { var state = _readStateUseCase.Handle(date, user); var virtualState = _readVirtualStateUseCase.Handle(date, user); return(await _manager.GetState(date, user, dashboard, state, virtualState)); }
/// <summary> /// /// </summary> /// <returns></returns> public override int GetHashCode() { int hash = 17; hash = hash * 23 + Id.GetHashCode(); hash = hash * 23 + OrgId.GetHashCode(); hash = hash * 23 + DashboardId.GetHashCode(); hash = hash * 23 + PanelId.GetHashCode(); hash = hash * 23 + Name.GetHashCode(); hash = hash * 23 + Message.GetHashCode(); hash = hash * 23 + State.GetHashCode(); hash = hash * 23 + Settings.GetHashCode(); hash = hash * 23 + Frequency.GetHashCode(); hash = hash * 23 + NewStateDate.GetHashCode(); hash = hash * 23 + StateChanges.GetHashCode(); return(hash); }
/// <summary> /// /// </summary> /// <returns></returns> public override int GetHashCode() { int hash = 17; hash = hash * 23 + Id.GetHashCode(); hash = hash * 23 + OrgId.GetHashCode(); hash = hash * 23 + UserId.GetHashCode(); hash = hash * 23 + Title.GetHashCode(); hash = hash * 23 + Text.GetHashCode(); hash = hash * 23 + DashboardId.GetHashCode(); hash = hash * 23 + PanelId.GetHashCode(); hash = hash * 23 + Time.GetHashCode(); if (null != Alert) { hash = hash * 23 + Alert.GetHashCode(); } return(hash); }
public async Task <DashboardState> GetState( DateTimeOffset date, UserId user, DashboardId dashboardId, ReadOnlyState state, VirtualState virtualState) { var configs = await _repository.GetUserDashboardConfigs(user); var dashboard = configs.FirstOrDefault(c => c.Id == dashboardId); var tagState = await _tagManager.GetTags(user); var assetNames = CollectAssetNames(state.Brokers.SelectMany(b => b.Inventory).ToArray(), user); var assetTags = CollectAssetTags(tagState); var virtualAssets = CollectVirtualAssets(virtualState); var dashboardTags = dashboard?.Tags ?? new List <DashboardConfigTagModel>(); _logger.LogTrace($"Dashboard {dashboardId} contains {dashboardTags.Count} tags"); var tags = dashboardTags .Select(t => { if (!assetTags.TryGetValue(new(t.Tag), out var assetIsins)) { assetIsins = Array.Empty <AssetISIN>(); } var assets = assetIsins .Where(isin => virtualAssets.Any(a => a.Isin == isin)) .Select(isin => { var name = assetNames.GetValueOrDefault(isin) ?? string.Empty; var sums = CalculateAssetSums(isin, virtualAssets, date); return(new DashboardAsset(isin, name, sums)); }) .ToArray(); var assetSums = AggregateSums(assets.Select(a => a.Sums)); return(new DashboardStateTag(t.Tag, assets, assetSums)); }) .ToArray(); var tagSums = AggregateSums(tags.Select(t => t.Sums)); return(new(tags, tagSums)); }
public async Task RemoveDashboard(UserId user, DashboardId dashboard) => await _repository.RemoveDashboard(user, dashboard);
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { if (null == obj) { return(false); } if (ReferenceEquals(this, obj)) { return(true); } var a = obj as Alert; if (null == a) { return(false); } if (!Id.Equals(a.Id)) { return(false); } if (!OrgId.Equals(a.OrgId)) { return(false); } if (!DashboardId.Equals(a.DashboardId)) { return(false); } if (PanelId != a.PanelId) { return(false); } if (Name != a.Name) { return(false); } if (Message != a.Message) { return(false); } if (Settings != a.Settings) { return(false); } if (Frequency != a.Frequency) { return(false); } if (NewStateDate != a.NewStateDate) { return(false); } if (StateChanges != a.StateChanges) { return(false); } return(true); }
public async Task Handle(UserId user, DashboardId id) => await _manager.RemoveDashboard(user, id);