public bool RemoveCode(string name) { var toRemove = Codes.FirstOrDefault(c => c.Name == name); if (toRemove == null) { return(false); } Codes.Remove(toRemove); //delete the code from all events foreach (var session in Sessions) { var eventsToRemove = session.Events .Where(ev => ev.Code == toRemove.Name) .ToArray(); foreach (var ev in eventsToRemove) { session.RemoveEvent(ev); } } return(true); }
/// <summary> /// Add a new key to the manager /// </summary> /// <param name="key">The key to add</param> /// <returns>The task</returns> public static async Task AddKeyAsync(Key key) { // Lock the method using (await AsyncLock.LockAsync()) { // Check if it's the following key in any of the available codes if (Codes.All(x => x.Key.Length <= CurrentInput.Count || x.Key[CurrentInput.Count] != key)) { if (CurrentInput.Any()) { CurrentInput.Clear(); Logger.Debug("The secret code inputs were reset due to an invalid key being pressed"); } return; } // Add the key to the list CurrentInput.Add(key); // Attempt to get a completed code var task = Codes.FirstOrDefault(x => x.Key.SequenceEqual(CurrentInput)).Value; if (task == null) { return; } CurrentInput.Clear(); Logger.Debug("The secret code inputs were reset due to a valid code having been entered"); // Run the task await task(); } }
public bool AddCode(string name) { if (Codes.FirstOrDefault(c => c.Name == name) != null) { return(false); } Codes.Add(new Code(name)); return(true); }
protected override void OnParametersSet() { if (Codes != null) { _hasCode = true; _activeCode = Codes.FirstOrDefault().code; } else if (!String.IsNullOrWhiteSpace(Code)) { _hasCode = true; _activeCode = Code; } }
protected virtual async void RunOnTryMudBlazor() { string firstFile = ""; if (Codes != null) { firstFile = Codes.FirstOrDefault().code; } else { firstFile = Code; } // We use a separator that wont be in code so we can send 2 files later var codeFiles = "__Main.razor" + (char)31 + Snippets.GetCode(firstFile); // Add dialogs for dialog examples if (firstFile.StartsWith("Dialog")) { var regex = new Regex(@"\Show<(Dialog.*?_Dialog)\>"); var dialogCodeName = regex.Match(codeFiles).Groups[1].Value; if (dialogCodeName != string.Empty) { var dialogCodeFile = dialogCodeName + ".razor" + (char)31 + Snippets.GetCode(dialogCodeName); codeFiles = codeFiles + (char)31 + dialogCodeFile; } } // Data models if (codeFiles.Contains("MudBlazor.Examples.Data.Models")) { if (Regex.Match(codeFiles, @"\bElement\b").Success) { var elementCodeFile = "Element.cs" + (char)31 + Snippets.GetCode("Element"); codeFiles = codeFiles + (char)31 + elementCodeFile; } if (Regex.Match(codeFiles, @"\bServer\b").Success) { var serverCodeFile = "Server.cs" + (char)31 + Snippets.GetCode("Server"); codeFiles = codeFiles + (char)31 + serverCodeFile; } } var codeFileEncoded = codeFiles.ToCompressedEncodedUrl(); // var tryMudBlazorLocation = "https://localhost:5001/"; var tryMudBlazorLocation = "https://try.mudblazor.com/"; var url = $"{tryMudBlazorLocation}snippet/{codeFileEncoded}"; await JsApiService.OpenInNewTabAsync(url); }
public IActionResult Post([FromBody] TransferDto transfer) { if (string.IsNullOrEmpty(transfer.UserCode)) { return(StatusCode(500, "User code is required")); } var code = Codes.FirstOrDefault(x => x.GeneratedCode == transfer.UserCode && DateTime.Now < x.DateExpired); if (code == null) { return(StatusCode(500, "Code doesn't exist or its expired")); } if (code.UserId == transfer.UserId) { return(StatusCode(500, "You can't send coins to yourself")); } var t = new Transfer { Coins = transfer.Coins, ReceiverId = code.UserId, SenderId = transfer.UserId, TransferDate = new DateTime() }; var receiver = Users.FirstOrDefault(x => x.Id == code.UserId); var sender = Users.FirstOrDefault(x => x.Id == transfer.UserId); if (sender.Coins < transfer.Coins) { return(StatusCode(500, "You don't have enough coins to send")); } receiver.Coins += transfer.Coins; sender.Coins -= transfer.Coins; _db.Users.Update(receiver); _db.Users.Update(sender); _db.Transfers.Add(t); _db.SaveChanges(); return(Ok()); }
public async Task <string> SetPrivacy(Privacies privacy) { Privacy = privacy; string str = "도깨비방망이"; if (string.IsNullOrEmpty(privacy.Account) == false) { switch (privacy.Account) { case "F": if (comboCommission.Items.Count == 0 && comboStrategics.Items.Count == 0) { foreach (var commission in commissionFutures) { comboCommission.Items.Add(commission.ToString("P4")); } comboStrategics.Items.AddRange(new object[] { tf }); } str = "선물옵션"; Length = 8; comboCommission.SelectedIndex = Array.FindIndex(commissionFutures, o => o == privacy.Commission); break; case "S": if (comboCommission.Items.Count == 0 && comboStrategics.Items.Count == 0) { foreach (var commission in commissionStocks) { comboCommission.Items.Add(commission.ToString("P3")); } comboStrategics.Items.AddRange(new object[] { st, ts }); } str = "위탁종합"; Length = 6; comboCommission.SelectedIndex = Array.FindIndex(commissionStocks, o => o == privacy.Commission); break; } if (await client.GetContext(new Codes { }, Length) is List <Codes> list) { var stack = new Stack <Codes>(); foreach (var item in list) { if (FilteringItems(item)) { stack.Push(item); } } string[] codes = new string[stack.Count], names = new string[stack.Count]; while (stack.Count > 0) { var temp = stack.Pop(); if (Codes.Add(temp)) { codes[stack.Count] = temp.Code; names[stack.Count] = temp.Name; } } var source = new AutoCompleteStringCollection(); source.AddRange(codes); source.AddRange(names); textCode.AutoCompleteCustomSource = source; textCode.AutoCompleteMode = AutoCompleteMode.Append; textCode.AutoCompleteSource = AutoCompleteSource.CustomSource; } if (string.IsNullOrEmpty(privacy.CodeStrategics) == false) { SuspendLayout(); foreach (var strategics in privacy.CodeStrategics.Split(';')) { var color = Color.FromArgb(0x79, 0x85, 0x82); var select = Codes.FirstOrDefault(o => o.Code.Equals(strategics.Substring(2, Length))); tab.Controls.Add(new TabPage { BackColor = Color.Transparent, BorderStyle = BorderStyle.FixedSingle, ForeColor = Color.Black, Location = new Point(4, 0x22), Margin = new Padding(0), Name = strategics.Substring(2, Length), TabIndex = Index++, Text = strategics.Substring(2, Length), ToolTipText = strategics.Substring(0, 2) }); switch (strategics.Substring(0, 2)) { case string tf when tf.Equals("TF") && Length == 8: if (select.MarginRate > 0 && string.IsNullOrEmpty(select.Price) == false) { var view = new TrendFollowingBasicFutures(select); tab.TabPages[tab.TabPages.Count - 1].Controls.Add(view); view.Dock = DockStyle.Fill; view.TransmuteStrategics(strategics.Substring(10, 1).Equals("1"), strategics.Substring(11).Split('.')); panel.RowStyles[0].Height = 0x83 + 0x23; } break; case string ts when ts.Equals("TS") && Length == 6: if (string.IsNullOrEmpty(select.MaturityMarketCap) == false && string.IsNullOrEmpty(select.Price) == false) { var view = new TrendsInStockPrices(select); tab.TabPages[tab.TabPages.Count - 1].Controls.Add(view); view.Dock = DockStyle.Fill; view.TransmuteStrategics(strategics.Substring(8).Split('.')); panel.RowStyles[0].Height = 0xCD + 0x23; } break; } var lasttabrect = tab.GetTabRect(tab.TabPages.Count - 1); tab.TabPages[tab.TabPages.Count - 1].BackColor = color; tab.SelectTab(tab.TabPages.Count - 1); tab.CreateGraphics().FillRectangle(new SolidBrush(color), new RectangleF(lasttabrect.X + lasttabrect.Width + tab.Left, tab.Top + lasttabrect.Y, tab.Width - (lasttabrect.X + lasttabrect.Width), lasttabrect.Height)); } ResumeLayout(); } } return(str); }
public Code GetCode(string name) { return(Codes.FirstOrDefault(s => s.Name == name)); }