private static ButtonDetails FindPositionForMissingButtonBP(string MissingButton, KeyboardDetails oData) { var SideButton = LoadBothPairsStaticData().Where(x => x.Key == MissingButton).Select(x => x.Value).FirstOrDefault(); var LeftButton = oData.Where(x => x.Key == SideButton.Item1).Select(o => o.Value).FirstOrDefault(); var RightButton = oData.Where(x => x.Key == SideButton.Item2).Select(o => o.Value).FirstOrDefault(); var MidPos = ((RightButton.X - LeftButton.X)) + LeftButton.X; return(new ButtonDetails(MidPos, LeftButton.Y)); }
private static ButtonDetails FindPositionForMissingButtonRP(string MissingButton, KeyboardDetails ListOfAvailableButtons) { var SideButton = LoadRightPairsStaticData().Where(x => x.Key == MissingButton).Select(x => x.Value).FirstOrDefault(); var RightButton = ListOfAvailableButtons.Where(x => x.Key == SideButton).Select(o => o.Value).FirstOrDefault(); int oWidth = GetWidthBetweenButtons(RightButton.Y, ListOfAvailableButtons); return(new ButtonDetails(RightButton.X + oWidth, RightButton.Y)); }
private static dynamic GetAnotherButton(string Path, string Key, KeyboardDetails ListOfAvailableButtons) { switch (Path) { case "leftpair": var SideButton1 = LoadLeftPairsStaticData().Where(x => x.Key == Key).FirstOrDefault(); return(ListOfAvailableButtons.Where(x => x.Key == SideButton1.Value).Select(o => o.Value).FirstOrDefault()); case "rightpair": var SideButton2 = LoadRightPairsStaticData().Where(x => x.Key == Key).FirstOrDefault(); return(ListOfAvailableButtons.Where(x => x.Key == SideButton2.Value).FirstOrDefault()); case "bothpair": var SideButton3 = LoadBothPairsStaticData().Where(x => x.Key == Key).FirstOrDefault(); return(ListOfAvailableButtons.Where(x => x.Key == SideButton3.Value.Item2).FirstOrDefault()); default: return(null); } }
private static int GetWidthBetweenButtons(int Y, KeyboardDetails ListOfAvailableButtons) { var BothPair = false; var CheckIfExist = false; KeyValuePair <string, ButtonDetails> RandomButton = ListOfAvailableButtons.OrderBy(x => Math.Abs(Y - x.Value.Y)).FirstOrDefault(); var SideButton = LoadBothPairsStaticData().Where(x => x.Key == RandomButton.Key).Select(x => x.Value).FirstOrDefault(); CheckIfExist = ListOfAvailableButtons.Keys.ToList().Exists(x => x == SideButton.Item1 && x == SideButton.Item2); BothPair = LoadStaticDataBP().Exists(x => x.ButtonCharacter == RandomButton.Key); while (!(BothPair && CheckIfExist)) { RandomButton = GetAnotherButton(ClassifyButton(RandomButton.Key), RandomButton.Key, ListOfAvailableButtons); BothPair = LoadStaticDataBP().Exists(x => x.ButtonCharacter == RandomButton.Key); CheckIfExist = ListOfAvailableButtons.Keys.ToList().Exists(x => x != SideButton.Item1 && x != SideButton.Item2); SideButton = LoadBothPairsStaticData().Where(x => x.Key == RandomButton.Key).Select(x => x.Value).FirstOrDefault(); } var LeftButton = ListOfAvailableButtons.Where(x => x.Key == SideButton.Item1).Select(o => o.Value).FirstOrDefault(); var RightButton = ListOfAvailableButtons.Where(x => x.Key == SideButton.Item2).Select(o => o.Value).FirstOrDefault(); var MidPos = ((RightButton.X - LeftButton.X)); return(MidPos); }