/// <summary> /// Добавления полноценной истории с содержанием /// </summary> /// <param name="what">Что изменено</param> /// <param name="before">До изменения значение</param> /// <param name="after">После изменения значение</param> /// <returns>Возвращает индекс вставленного в массив истории элемента</returns> private int AddHistory(THChange what, string before, string after) { Array.Resize(ref history, history.Length + 1); history[history.Length - 1] = new THistory(DateTime.Now, what, before, after); return history.Length - 1; }
/// <summary> /// Генерация строки с описанием изменения /// </summary> /// <param name="what">Что было изменено</param> /// <param name="before">Что было до изменения</param> /// <param name="after">Что стало после изменения</param> private void GenerateValueOfChanging(THChange what, string before, string after) { if (what == THChange.Create) value = "Задача была создана!"; else if (what == THChange.Complete) value = String.Format("Задача была выполнена ({0})", after); else value = String.Format("Было произведено изменение {0}! До: {1} После: {2}", GetStringForWhatChanged(what, true), before, after); }
string value; // содержание изменения #endregion Fields #region Constructors /// <summary> /// Создание объекта истории /// </summary> /// <param name="when">Когда произведено изменение</param> /// <param name="what">Что было изменено</param> /// <param name="before">Что было до изменения</param> /// <param name="after">Что стало после изменения</param> public THistory(DateTime when, THChange what, string before, string after) { date = when; type = what; GenerateValueOfChanging(what, before, after); }
/// <summary> /// Генерация строки, с нормлаьным словесным понятием что было изменено /// </summary> /// <param name="what">Что было изменено</param> /// <param name="forvalue">Для значения в строке или просто как отдельная строка</param> /// <returns>Возвращает строку с названием изменения</returns> public string GetStringForWhatChanged(THChange what, bool forvalue) { string str = ""; switch (what) { case THChange.Name: if (forvalue) str += "названия"; else str += "Название"; break; case THChange.Text: if (forvalue) str += "описания"; else str += "Описание"; break; case THChange.Label: if (forvalue) str += "метки"; else str += "Метка"; break; case THChange.Tags: if (forvalue) str += "тэгов"; else str += "Тэги"; break; case THChange.Progress: if (forvalue) str += "прогресса"; else str += "Прогресс"; break; case THChange.Priority: if (forvalue) str += "приоритета"; else str += "Приоритет"; break; case THChange.Status: if (forvalue) str += "статуса"; else str += "Статус"; break; case THChange.Type: if (forvalue) str += "типа задачи"; else str += "Тип задачи"; break; case THChange.DatePlaning: if (forvalue) str += "плановой даты"; else str += "Плановая дата"; break; } return str; }