static private clsTaskManager UpdateInfo(ListBox LB, ComboBox CB_Art, ref clsTaskManager.stcTaskManagerEx TaskManagerEx) { clsTaskManager TaskManager = TaskManagerExToTaskManager(TaskManagerEx); //Создаём исходное положение for (int i = TaskManager.Arts.Count() - 1; i < CB_Art.SelectedIndex; i++) { Array.Resize(ref TaskManager.Arts, TaskManager.Arts.Count() + 1); TaskManager.Arts[TaskManager.Arts.Count() - 1] = new clsTManagerArt { Tasks = new clsMTask[0] }; } clsMTask[] Tasks = new clsMTask[LB.Items.Count]; //Временный массив для хранения данных LB.Items.CopyTo(Tasks, 0); //Переносим данные во временный массив TaskManager.Arts[CB_Art.SelectedIndex] = new clsTManagerArt { Tasks = Tasks }; //Перезаписываю установленные таски TaskManagerEx = TaskManagerToTaskmanagerEx(TaskManager); //Обновляю список return(TaskManager); }
static private clsTaskManager TaskManagerExToTaskManager(clsTaskManager.stcTaskManagerEx TaskManagerEx) { if (TaskManagerEx.Arts == null) { return new clsTaskManager { Arts = new clsTManagerArt[0] } } ; clsMTask[] Task; clsTaskManager TaskManager = new clsTaskManager { Arts = new clsTManagerArt[TaskManagerEx.Arts.Count()] }; for (int i = 0; i < TaskManagerEx.Arts.Count(); i++) { Task = new clsMTask[0]; for (int k = 0; k < TaskManagerEx.Arts[i].Tasks.Count(); k++) { Array.Resize(ref Task, Task.Count() + 1); Task[Task.Count() - 1] = new clsMTask(); Task[Task.Count() - 1].Grp = 1; Task[Task.Count() - 1].Item = (int)TaskManagerEx.Arts[i].Tasks[k].DoW; Task[Task.Count() - 1].Text = "* " + Regex.Replace(CultureInfo.CreateSpecificCulture("ru-RU").DateTimeFormat.GetDayName(TaskManagerEx.Arts[i].Tasks[k].DoW), "^[\\w]", m => m.Value.ToUpper()); for (int x = 0; x < TaskManagerEx.Arts[i].Tasks[k].StartTS.Count(); x++) { Array.Resize(ref Task, Task.Count() + 1); Task[Task.Count() - 1] = new clsMTask(); Task[Task.Count() - 1].Grp = 2; Task[Task.Count() - 1].Item = (int)(TaskManagerEx.Arts[i].Tasks[k].StartTS[x] == new TimeSpan() && TaskManagerEx.Arts[i].Tasks[k].StopTS[x] == new TimeSpan() ? clsTaskManager.TaskEvent.NotToday : clsTaskManager.TaskEvent.Time); Task[Task.Count() - 1].Text = "- " + (Task[Task.Count() - 1].Item == 0 ? "Не ходить" : "Участвовать с " + TaskManagerEx.Arts[i].Tasks[k].StartTS[x].ToString("%h\\:%m") + " до " + TaskManagerEx.Arts[i].Tasks[k].StopTS[x].ToString("%h\\:%m")); } } TaskManager.Arts[i] = new clsTManagerArt { Tasks = Task }; } return(TaskManager); }