private void SetDecemberWindowAccessibleName(DecemberWindow decemberWindow) { var resourceLoader = new ResourceLoader(); string decemberWindowAccessibleName = decemberWindow.DayOfMonth + GetDayOfMonthSuffix(decemberWindow.DayOfMonth) + ", " + (decemberWindow.Open ? decemberWindow.Person : resourceLoader.GetString("Closed")); AutomationProperties.SetName(decemberWindow, decemberWindowAccessibleName); }
private void RestartCalendar() { CalendarContainer.Children.Clear(); bool[,] cellFilled = new bool[gridSize, gridSize]; var shuffler = new Shuffler(); shuffler.Shuffle(People); int row; int column; int[] decemberWindowTabIndices = new int[dayCount]; for (int i = 0; i < dayCount; ++i) { var decemberWindow = new DecemberWindow(); decemberWindow.DayOfMonth = (i + 1); decemberWindow.Content = decemberWindow.DayOfMonth.ToString(); string suffix = GetDayOfMonthSuffix(decemberWindow.DayOfMonth); SetDecemberWindowAccessibleName(decemberWindow); decemberWindow.Name = "DecemberWindow" + i; decemberWindow.Template = (ControlTemplate)Application.Current.Resources["DecemberCellTemplate"]; decemberWindow.Person = People[i]; decemberWindow.PersonImage = new BitmapImage( new Uri("ms-appx:///Assets/People/" + decemberWindow.Person + ".png")); decemberWindow.Click += DecemberWindow_Click; do { var randRow = new Random(); row = randRow.Next() % gridSize; var randColumn = new Random(); column = randColumn.Next() % gridSize; }while (cellFilled[row, column]); // Is doesn't matter that the TabIndex aren't contiguous, // only that they're int the required order. decemberWindow.TabIndex = (row * gridSize) + column; decemberWindows[i] = decemberWindow; decemberWindowTabIndices[i] = decemberWindow.TabIndex; cellFilled[row, column] = true; Grid.SetRow(decemberWindow, row); Grid.SetColumn(decemberWindow, column); CalendarContainer.Children.Add(decemberWindow); // Persist this window. localSettings.Values[i + "DayOfMonth"] = decemberWindow.DayOfMonth; localSettings.Values[i + "Person"] = decemberWindow.Person; localSettings.Values[i + "Row"] = row; localSettings.Values[i + "Column"] = column; localSettings.Values[i + "Open"] = false; } SetUIFlow(decemberWindowTabIndices); }
private async Task <bool> CanWindowBeOpened(DecemberWindow decemberWindow) { bool windowCanBeOpened = true; if (decemberWindow.DayOfMonth > DateTime.Now.Date.Day) { var resourceLoader = new ResourceLoader(); var tooSoonDialog = new ContentDialog() { Title = resourceLoader.GetString("TooSoonTitle"), Content = resourceLoader.GetString("TooSoonContentPrefix") + " " + decemberWindow.DayOfMonth + GetDayOfMonthSuffix(decemberWindow.DayOfMonth) + ".", CloseButtonText = resourceLoader.GetString("OK") }; await tooSoonDialog.ShowAsync(); windowCanBeOpened = false; } else { if (decemberWindow.DayOfMonth > 1) { for (int i = 0; i < dayCount; i++) { if (decemberWindows[i].DayOfMonth == decemberWindow.DayOfMonth - 1) { if (!decemberWindows[i].Open) { var resourceLoader = new ResourceLoader(); var outOfOrderDialog = new ContentDialog() { Title = resourceLoader.GetString("OutOfOrderTitle"), Content = resourceLoader.GetString( "OutOfOrderOpeningContentPrefix") + " " + decemberWindows[i].DayOfMonth + GetDayOfMonthSuffix(decemberWindows[i].DayOfMonth) + ".", CloseButtonText = resourceLoader.GetString("OK") }; await outOfOrderDialog.ShowAsync(); windowCanBeOpened = false; } break; } } } if (windowCanBeOpened && (decemberWindow.DayOfMonth < dayCount)) { for (int i = 0; i < dayCount; i++) { if (decemberWindows[i].DayOfMonth == decemberWindow.DayOfMonth + 1) { if (decemberWindows[i].Open) { var resourceLoader = new ResourceLoader(); var outOfOrderDialog = new ContentDialog() { Title = resourceLoader.GetString("OutOfOrderTitle"), Content = resourceLoader.GetString( "OutOfOrderClosingContentPrefix") + " " + decemberWindows[i].DayOfMonth + GetDayOfMonthSuffix(decemberWindows[i].DayOfMonth) + ".", CloseButtonText = resourceLoader.GetString("OK") }; await outOfOrderDialog.ShowAsync(); windowCanBeOpened = false; } break; } } } } return(windowCanBeOpened); }
public bool LoadSettings() { bool loadedWindows = true; if (!localSettings.Values.ContainsKey("0DayOfMonth")) { return(false); } try { int[] decemberWindowTabIndices = new int[dayCount]; for (int i = 0; i < dayCount; ++i) { var decemberWindow = new DecemberWindow(); decemberWindow.Person = (string)localSettings.Values[i + "Person"]; decemberWindow.DayOfMonth = (int)localSettings.Values[i + "DayOfMonth"]; if (localSettings.Values.ContainsKey(decemberWindow.DayOfMonth + "Open")) { decemberWindow.Open = (bool)localSettings.Values[decemberWindow.DayOfMonth + "Open"]; decemberWindow.PersonOpacity = (decemberWindow.Open ? 1 : 0); } decemberWindow.Content = decemberWindow.DayOfMonth.ToString(); string suffix = GetDayOfMonthSuffix(decemberWindow.DayOfMonth); SetDecemberWindowAccessibleName(decemberWindow); decemberWindow.Name = "DecemberWindow" + i; decemberWindow.Template = (ControlTemplate)Application.Current.Resources["DecemberCellTemplate"]; decemberWindow.PersonImage = new BitmapImage( new Uri("ms-appx:///Assets/People/" + decemberWindow.Person + ".png")); decemberWindow.Click += DecemberWindow_Click; var row = (int)localSettings.Values[i + "Row"]; var column = (int)localSettings.Values[i + "Column"]; decemberWindow.TabIndex = (row * gridSize) + column; decemberWindows[i] = decemberWindow; decemberWindowTabIndices[i] = decemberWindow.TabIndex; Grid.SetRow(decemberWindow, row); Grid.SetColumn(decemberWindow, column); CalendarContainer.Children.Add(decemberWindow); } SetUIFlow(decemberWindowTabIndices); } catch (Exception ex) { loadedWindows = false; } return(loadedWindows); }