예제 #1
0
        /// <summary>
        /// Изменяет текущую заметку, т.е. помещает на верх стека новые заголовок и текст
        /// </summary>
        /// <param name="newTitle"></param>
        /// <param name="newText"></param>
        public void ChangeNote(string newTitle, string newText)
        {
            BaseNote newNote = new BaseNote(newTitle, newText);

            // заметка хранит до 10 последних изменений, включая текущее видимое значение
            if (this.noteStack.Count == 10)
            {
                // удаляем самый глубокий элемент
                // К сожалению, нет метода, удаляющего самый первый элемент стека,
                // хотя реализовать его проще простого - просто отсекаешь последний эл-т массива,
                // через который реализован стек.

                BaseNote[] tempArr = noteStack.ToArray();                       // Поэтому просто копируем стек в массив,
                noteStack.Clear();                                              // очищаем стек
                for (int i = tempArr.Length - 2; i >= 0; i--)                   // а потом запихиваем назад в стек
                {
                    noteStack.Push(tempArr[i]);                                 // все эл-ты, кроме первого (посл. в массиве)
                }
            }

            this.noteStack.Push(newNote);

            SimpleDateTime newChangeDT = new SimpleDateTime(DateTime.Now);

            this.ChangeDT = newChangeDT;
        }
예제 #2
0
        /// <summary>
        /// Редактирует текущую запись - меняет заголовок и текст
        /// </summary>
        /// <param name="keyDT">Ключ записи. Включает в себя дату и время записи</param>
        /// <param name="newTitle">Новый заголовок</param>
        /// <param name="newText">Новый текст</param>
        public void EditNoteContent(KeyStruct keyDT, string newTitle, string newText)
        {
            BaseNote noteToEdit =
                Organizer[keyDT.Year][keyDT.Month][keyDT.Day].Day[keyDT].noteStack.Peek();

            noteToEdit.Title = newTitle;
            noteToEdit.Text  = newText;
            Organizer[keyDT.Year][keyDT.Month][keyDT.Day].Day[keyDT].noteStack.Push(noteToEdit);

            SimpleDateTime changeDT = new SimpleDateTime(DateTime.Now);

            Organizer[keyDT.Year][keyDT.Month][keyDT.Day].Day[keyDT].ChangeDT = changeDT;
        }
예제 #3
0
        /// <summary>
        /// Создаёт стек заметок, помещает туда общие для всех записей эл-ты: ID, заголовок и текст,
        /// дату отображения, дату создания. Устанавливает в минимальное значение даты изменения и удаления.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="dt"></param>
        /// <param name="title"></param>
        /// <param name="text"></param>
        private void CreateNote(KeyStruct keyDT, string title, string text)
        {
            // Помним, что конструктор класса вызывается при первом создании экземпляра класса через new
            // Поэтому переменным память не выделена. Переменные не инициализированы
            this.noteStack = new Stack <BaseNote>();                     // создаём стек заметок
            BaseNote newNote = new BaseNote(title, text);                // создаём заметку.

            this.noteStack.Push(newNote);                                // помещаем заметку в стек

            // генерируется время
            this.DisplayDT  = keyDT;                                 // передаём уникальный ID и отображаемые дату и время заметки
            this.CreationDT = new SimpleDateTime(DateTime.Now);      // Текущее значение даты и времени
            this.ChangeDT   = new SimpleDateTime(DateTime.MinValue); // Значение по умлочанию 01.01.0001 00:00:00
            this.DeleteDT   = new SimpleDateTime(DateTime.MinValue); // Значение по умлочанию 01.01.0001 00:00:00
        }