private async Task<InlineKeyboardMarkup> PrepareKeyboardAsync(Identified<Tobacco> tobacco) { const byte defaultCount = 5; var buttons = new List<IEnumerable<InlineKeyboardButton>>(); var dbUser = UserContextProvider.DatabaseUser; var orderId = await cacheProvider .UserLevel<CurrentOrder>() .GetAsync(); if (orderId.HasValue) { var orderSomeGramsFormat = await TranslationsResolver .ResolveAsync(TelegramTranslationKeys.OrderSomeGrams); var innerButtons = new List<InlineKeyboardButton>(); for (var i = defaultCount; i < defaultCount * 4 + 1; i *= 2) { innerButtons.Add(new InlineKeyboardButton { Text = string.Format(orderSomeGramsFormat, i), CallbackData = $"/{nameof(AddToOrderCommand).ExtractCommandName()} {orderId} {nameof(Tobacco)} {tobacco.Index} {i}" }); } buttons.Add(innerButtons); } if (dbUser.State > TelegramUserStates.Default) { var (key, command) = tobacco.Entity.Photos.Any() ? (TelegramTranslationKeys.DeletePhotos, nameof(DeleteTobaccoPhotosCommand)) : (TelegramTranslationKeys.SetPhotos, nameof(AskForTobaccoPhotosCommand)); var (deleteTranslation, secondTranslation) = await TranslationsResolver .ResolveAsync( TelegramTranslationKeys.Delete, key ); buttons.AddRange(new[] { new[] { new InlineKeyboardButton { Text = deleteTranslation, CallbackData = $"/{nameof(DeleteTobaccoCommand).ExtractCommandName()} {tobacco.Index}" } }, new[] { new InlineKeyboardButton { Text = secondTranslation, CallbackData = $"/{command.ExtractCommandName()} {tobacco.Entity.Id}" } } }); } return new InlineKeyboardMarkup(buttons); }
void objectAdded(Identified obj) { var dn = new DebugNode(obj, nicks.ContainsKey(obj.ID) ? nicks[obj.ID] : null); nodes.Add(dn); if (obj is Client) { if (dn.bindClient.Connected) { clientsOn.Add(dn); } else { clientsOff.Add(dn); } DebugNode dna = dn.Clone(); nodes.Add(dna); clientsAll.Add(dna); } else if (obj is Server) { servers.Add(dn); foreach (Link l in dn.bindServer.clients) { var ldn = new DebugNode(l, nicks.ContainsKey(obj.ID) ? nicks[obj.ID] : null); nodes.Add(ldn); dn.Nodes.Add(ldn); } } treeView.ExpandAll(); }
public override IDeepCopyable CopyTo(IDeepCopyable other) { var dest = other as DetectedIssue; if (dest == null) { throw new ArgumentException("Can only copy to an object of the same type", "other"); } base.CopyTo(dest); if (Identifier != null) { dest.Identifier = new List <Hl7.Fhir.Model.Identifier>(Identifier.DeepCopy()); } if (StatusElement != null) { dest.StatusElement = (Code <Hl7.Fhir.Model.ObservationStatus>)StatusElement.DeepCopy(); } if (Code != null) { dest.Code = (Hl7.Fhir.Model.CodeableConcept)Code.DeepCopy(); } if (SeverityElement != null) { dest.SeverityElement = (Code <Hl7.Fhir.Model.DetectedIssue.DetectedIssueSeverity>)SeverityElement.DeepCopy(); } if (Patient != null) { dest.Patient = (Hl7.Fhir.Model.ResourceReference)Patient.DeepCopy(); } if (Identified != null) { dest.Identified = (Hl7.Fhir.Model.DataType)Identified.DeepCopy(); } if (Author != null) { dest.Author = (Hl7.Fhir.Model.ResourceReference)Author.DeepCopy(); } if (Implicated != null) { dest.Implicated = new List <Hl7.Fhir.Model.ResourceReference>(Implicated.DeepCopy()); } if (Evidence != null) { dest.Evidence = new List <Hl7.Fhir.Model.DetectedIssue.EvidenceComponent>(Evidence.DeepCopy()); } if (DetailElement != null) { dest.DetailElement = (Hl7.Fhir.Model.FhirString)DetailElement.DeepCopy(); } if (ReferenceElement != null) { dest.ReferenceElement = (Hl7.Fhir.Model.FhirUri)ReferenceElement.DeepCopy(); } if (Mitigation != null) { dest.Mitigation = new List <Hl7.Fhir.Model.DetectedIssue.MitigationComponent>(Mitigation.DeepCopy()); } return(dest); }
void objectRemoved(Identified obj) { List <DebugNode> dns = nodes.FindAll(a => a.ID == obj.ID); foreach (DebugNode dn in dns) { if (cbRmUnused.Checked) { nodes.Remove(dn); if (obj is Client) { clientsOn.Remove(dn); clientsOff.Remove(dn); clientsAll.Remove(dn); } else if (obj is Server) { servers.Remove(dn); } if (nicks.ContainsKey(obj.ID)) { nicks.Remove(obj.ID); } } dn.NodeFont = new Font(dn.NodeFont ?? treeView.Font, FontStyle.Strikeout); } treeView.ExpandAll(); }
public override int GetHashCode() { unchecked { int result = base.GetHashCode(); result = (result * 397) ^ PeakCountRatio.GetHashCode(); result = (result * 397) ^ (RetentionTime.HasValue ? RetentionTime.Value.GetHashCode() : 0); result = (result * 397) ^ (StartRetentionTime.HasValue ? StartRetentionTime.Value.GetHashCode() : 0); result = (result * 397) ^ (EndRetentionTime.HasValue ? EndRetentionTime.Value.GetHashCode() : 0); result = (result * 397) ^ (Fwhm.HasValue ? Fwhm.Value.GetHashCode() : 0); result = (result * 397) ^ (Area.HasValue ? Area.Value.GetHashCode() : 0); result = (result * 397) ^ (AreaMs1.HasValue ? AreaMs1.Value.GetHashCode() : 0); result = (result * 397) ^ (AreaFragment.HasValue ? AreaFragment.Value.GetHashCode() : 0); result = (result * 397) ^ (BackgroundArea.HasValue ? BackgroundArea.Value.GetHashCode() : 0); result = (result * 397) ^ (BackgroundAreaMs1.HasValue ? BackgroundAreaMs1.Value.GetHashCode() : 0); result = (result * 397) ^ (BackgroundAreaFragment.HasValue ? BackgroundAreaFragment.Value.GetHashCode() : 0); result = (result * 397) ^ (Height.HasValue ? Height.Value.GetHashCode() : 0); result = (result * 397) ^ Ratios.GetHashCodeDeep(); result = (result * 397) ^ (Truncated.HasValue ? Truncated.Value.GetHashCode() : 0); result = (result * 397) ^ Identified.GetHashCode(); result = (result * 397) ^ (LibraryDotProduct.HasValue ? LibraryDotProduct.Value.GetHashCode() : 0); result = (result * 397) ^ (IsotopeDotProduct.HasValue ? IsotopeDotProduct.Value.GetHashCode() : 0); result = (result * 397) ^ OptimizationStep; result = (result * 397) ^ Annotations.GetHashCode(); result = (result * 397) ^ UserSet.GetHashCode(); return(result); } }
void addHigh(Identified id, params object[] row) { if (!closed) { Invoke(new Action(() => { if (id == null || lastSelected?.bind == id) { object col3 = "", col4 = "", col5 = ""; if (row.Length == 3) { if (row[2] is Directive dir) { col3 = dir.type + ""; col4 = $"{dir.from} → {(dir.to == SGuid.Empty ? "Everyone" : dir.to + "")}"; col5 = dir.values.Length; } } else { col4 = row[2]; col5 = row[3]; } tableHigh.Rows.Add(row[0], row[1], col3, col4, col5); } })); } }
void refreshAll(object sender, TreeNodeMouseClickEventArgs e) { if (e.Node is DebugNode dn && nodes.Exists(a => a.ID == dn.ID)) { if (lastSelected != null) { lastSelected.bind.clearEvents(); } lastSelected = dn; Identified idBind = dn.bind; idBind.tRaw.ItemAdd += (a, b) => addRaw(idBind, a); idBind.tCommand.ItemAdd += (a, b) => addCommand(idBind, a); idBind.tHigh.ItemAdd += (a, b) => addHigh(idBind, a); tableRawMsg.Rows.Clear(); tableRaw.Rows.Clear(); tableCommands.Rows.Clear(); tableHigh.Rows.Clear(); foreach (object[] row in idBind.tRaw.ToList()) { addRaw(null, row); } foreach (object[] row in idBind.tCommand.ToList()) { addCommand(null, row); } foreach (object[] row in idBind.tHigh.ToList()) { addHigh(null, row); } } }
private async Task <InlineKeyboardMarkup> PrepareKeyboardAsync(Identified <Hookah> hookah) { const byte defaultCount = 1; var buttons = new List <IEnumerable <InlineKeyboardButton> >(); var dbUser = UserContextProvider.DatabaseUser; var orderId = await cacheProvider .UserLevel <CurrentOrder>() .GetAsync(); if (orderId.HasValue) { buttons.Add(new[] { new InlineKeyboardButton { Text = await TranslationsResolver.ResolveAsync(TelegramTranslationKeys.OrderSomething), CallbackData = $"/{nameof(AddToOrderCommand).ExtractCommandName()} {orderId} {nameof(Hookah)} {hookah.Index} {defaultCount}" } }); } if (dbUser.State > TelegramUserStates.Default) { var(key, command) = hookah.Entity.Photos.Any() ? (TelegramTranslationKeys.DeletePhotos, nameof(DeleteHookahPhotosCommand)) : (TelegramTranslationKeys.SetPhotos, nameof(AskForHookahPhotosCommand)); var(deleteTranslation, secondTranslation) = await TranslationsResolver .ResolveAsync( TelegramTranslationKeys.Delete, key ); buttons.AddRange(new[] { new[] { new InlineKeyboardButton { Text = deleteTranslation, CallbackData = $"/{nameof(DeleteHookahCommand).ExtractCommandName()} {hookah.Index}" } }, new[] { new InlineKeyboardButton { Text = secondTranslation, CallbackData = $"/{command.ExtractCommandName()} {hookah.Entity.Id}" }, } }); } return(new InlineKeyboardMarkup(buttons)); }
private static void CreateFunctionalities(Database db, Identified <RoleToInstall> roleToInstall) { const string createQuery = @" IF NOT exists (SELECT * FROM FunctionalityRole WHERE RoleID = @0 AND FunctionalityName = @1) BEGIN INSERT INTO FunctionalityRole (RoleID, FunctionalityName) VALUES (@0, @1) END "; var functionalities = roleToInstall.Value.Functionalities.Distinct().ToArray(); foreach (var functionality in functionalities) { db.Execute(createQuery, roleToInstall.ID, functionality.ToString()); } }
void addRaw(Identified id, params object[] row) { if (!closed) { Invoke(new Action(() => { if (id == null || lastSelected?.bind == id) { tableRaw.Rows.Add( (from cell in row where !(cell is string[]) select cell.ToString()).Concat(new[] { ((string[])row[5]).Length + "" }).ToArray()); } })); } }
void addCommand(Identified id, params object[] row) { if (!closed) { Invoke(new Action(() => { if (id == null || lastSelected?.bind == id) { tableCommands.Rows.Add(row.Select(c => { if (c is object[]) { string[] strs = ((object[])c).AllStrings(); return($"{strs[0]}({string.Join(", ", strs.Skip(1))})"); } return(c); }).ToArray()); } })); } }
protected override async Task<Message> SendResponseAsync(ICurrentTelegramUserClient client, Identified<Tobacco> response) { var (content, keyboard) = await ( TranslationsResolver.ResolveAsync(TelegramTranslationKeys.GetTobaccoResult, response.Entity.Name, response.Entity.Price), PrepareKeyboardAsync(response) ).CombineAsync(); if (response.Entity.Photos.Any()) { await client.SendMediaGroupAsync( response.Entity.Photos .Select(x => new InputMediaPhoto(new InputMedia(x.TelegramFileId))) ); } return await client .SendTextMessageAsync( content, replyMarkup: keyboard); }
public override int GetHashCode() { unchecked { int result = base.GetHashCode(); result = (result * 397) ^ (MassError.HasValue ? MassError.Value.GetHashCode() : 0); result = (result * 397) ^ RetentionTime.GetHashCode(); result = (result * 397) ^ StartRetentionTime.GetHashCode(); result = (result * 397) ^ EndRetentionTime.GetHashCode(); result = (result * 397) ^ Area.GetHashCode(); result = (result * 397) ^ BackgroundArea.GetHashCode(); result = (result * 397) ^ Height.GetHashCode(); result = (result * 397) ^ Fwhm.GetHashCode(); result = (result * 397) ^ IsFwhmDegenerate.GetHashCode(); result = (result * 397) ^ Identified.GetHashCode(); result = (result * 397) ^ (IsTruncated.HasValue ? IsTruncated.Value.GetHashCode() : 0); result = (result * 397) ^ Rank; result = (result * 397) ^ Ratios.GetHashCodeDeep(); result = (result * 397) ^ OptimizationStep.GetHashCode(); result = (result * 397) ^ Annotations.GetHashCode(); result = (result * 397) ^ UserSet.GetHashCode(); return(result); } }
private void HandleInternal(Identified msg) { //EventLog.WriteEntry("Fingerpass", "Tray received an identified message " + msg.UnitID.ToString()); _trayIcon.Identified(msg.UnitID.ToString()); }
protected void linkTables(Identified id2) { id2._tRaw.ItemAdd += (o, i) => _tRaw.Add(o); id2._tCommand.ItemAdd += (o, i) => _tCommand.Add(o); id2._tHigh.ItemAdd += (o, i) => _tHigh.Add(o); }
internal static void debugNotice(Identified obj) => dbgNotice?.Invoke(obj);
void notice(Identified obj) { if (obj is User u) { if (nicks.ContainsKey(u.ID)) { nicks[u.ID] = u.Nickname; } else { nicks.Add(u.ID, u.Nickname); } foreach (DebugNode n in nodes) { if (n.ID == u.ID) { n.Text = u.Nickname; } } } else if (obj is Link) { foreach (DebugNode node in nodes.ToList()) { if (node.bind == obj) { DebugNode s = nodes.Find(a => a.Nodes.Contains(node)); if (s != null) { s.Nodes.Remove(node); } nodes.Remove(node); nicks.Remove(node.ID); } } } else if (obj is Client c) { DebugNode n = nodes.Find(a => a.ID == c.ID); if (n != null) { if (c.Connected) { clientsOff.Remove(n); clientsOn.Add(n); } else { clientsOn.Remove(n); clientsOff.Add(n); } } } else if (obj is Server s) { DebugNode sN = nodes.Find(a => a.ID == s.ID); var subN = new DebugNode[sN.Nodes.Count]; sN.Nodes.CopyTo(subN, 0); List <DebugNode> subL = subN.ToList(); foreach (DebugNode sL in subN) { if (!s.clients.Contains(sL.bindLink)) { sN.Nodes.Remove(sL); } } foreach (Link l in s.clients) { if (!subL.Exists(a => a.bindLink == l)) { var ldn = new DebugNode(l, nicks.ContainsKey(obj.ID) ? nicks[obj.ID] : null); nodes.Add(ldn); sN.Nodes.Add(ldn); } } } treeView.ExpandAll(); }
/// <summary> /// Handles incoming messages. /// </summary> /// <param name="json">the incoming json as string</param> private async void _handleMessage(string json) { ReceivePacket packet; try { packet = JsonConvert.DeserializeObject <ReceivePacket>(json); } catch (Exception e) { _log(LogLevel.WARN, $"Couldn't parse Packet JSON, {e}"); return; } try { // ReSharper disable once SwitchStatementMissingSomeCases switch (packet.OpCode) { case OpCode.DISPATCH: { // ReSharper disable once SwitchStatementMissingSomeCases switch (packet.Type) { case GatewayEvent.READY: var readyDispatch = ((JObject)packet.Data).ToObject <ReadyDispatch>(); SessionId = readyDispatch.SessionId; _log(LogLevel.DEBUG, $"Ready {readyDispatch.SessionId}"); _log(LogLevel.INFO, "Shard Ready"); Identified?.Invoke(this, null); break; case GatewayEvent.RESUMED: { var replayed = CloseSequence - Sequence; _log(LogLevel.DEBUG, $"RESUMED {SessionId} | replayed {replayed} events."); _log(LogLevel.INFO, "Shard resumed connection"); break; } } if (packet.Seq != null) { Sequence = (int)packet.Seq; } if (packet.Type == null) { _log(LogLevel.WARN, $"Received Dispatch with missing type, {packet.Data}"); break; } Dispatch?.Invoke(this, new DispatchEventArgs(Id, packet.Data, (GatewayEvent)packet.Type)); _log(LogLevel.DEBUG, $"Received Dispatch of type {packet.Type}"); break; } case OpCode.HEARTBEAT: _log(LogLevel.DEBUG, $"Received Keep-Alive request (OP {packet.OpCode}). Sending response..."); await _heartbeatAsync().ConfigureAwait(false); break; case OpCode.RECONNECT: _log(LogLevel.DEBUG, $"Received Reconnect request (OP {packet.OpCode}). Closing connection now..."); await DisconnectAsync((int)GatewayCloseCode.UNKNOWN_ERROR, "Received Reconnect request") .ConfigureAwait(false); break; case OpCode.INVALID_SESSION: _log(LogLevel.DEBUG, $"Received Invalidate request (OP {packet.OpCode}). Invalidating...."); var data = (bool)packet.Data; if (data) { await DisconnectAsync((int)GatewayCloseCode.UNKNOWN_ERROR, "Session Invalidated") .ConfigureAwait(false); break; } SessionId = null; Sequence = null; await DisconnectAsync((int)WebSocketCloseStatus.NormalClosure, "Session Invalidated"); break; case OpCode.HELLO: _log(LogLevel.DEBUG, $"Received HELLO packet (OP {packet.OpCode}). Initializing keep-alive..."); var helloData = ((JObject)packet.Data).ToObject <HelloPacket>(); _startHeartbeatTimer(helloData.HeartbeatInterval); await _authenticateAsync(); break; case OpCode.HEARTBEAT_ACK: var latency = DateTime.Now - HeartbeatSentAt; var pingMs = (int)latency.TotalMilliseconds; _log(LogLevel.DEBUG, $"Received Heartbeat Ack (OP {packet.OpCode}), Latency of {pingMs}ms"); LastHeartbeatAcked = true; LatencyUpdate?.Invoke(this, new LatencyUpdateArgs(Id, pingMs)); break; default: _log(LogLevel.WARN, $"Received unknown op-code: {packet.OpCode}"); break; } } catch (Exception e) { _log(LogLevel.ERROR, $"Exception in Shard#_handleMessage, {e}"); } }