Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }