private static Task GetTask(Model.Task task) { var gTaskDate = SetTaskDateAndroFromNormal(); Task nTask = new Task(); // Новые свойства nTask.Image = task.PathToIm; var ab = task.TaskAbiliti(); nTask.Ability = ab != null ? ab.GUID : "-1"; nTask.BaseChangeAbility = 0; nTask.BaseChangeExp = 0; nTask.ChangeAbility = 0; nTask.BoosterOfDone = task.BoosterOfDone; nTask.BoosterOfFail = task.BoosterOfFail; if (ab != null) { var chAb = task.TaskAbylityChangeVal(ab); nTask.BaseChangeAbility = chAb; nTask.BaseChangeExp = task.Priority / Model.Task.AbIncreaseFormula(ab); nTask.ChangeAbility = chAb; } //---------------- nTask.Exp = task.Priority; nTask.TimeLastDone = task.TimeLastDone.ToString("yyyy/MM/dd. HH:mm:ss:SSS"); nTask.MiliSecsDoneForSort = task.MiliSecsDoneForSort; nTask.Wave = task.Wave; nTask.Priority = task.Priority; nTask.isSuper = task.isSuper; nTask.SubTasksByQwests = new List <string>(); nTask.LinkedQwests = new List <string>(); //nTask.TimeLastDone = MainViewModel.GetTimeStringMilisecondsFromeDate(new DateTime(task.MiliSecsDoneForSort)); // todo сюда записать навык на который влияет, его значение и на сколько меняет этот навык, чтобы потом в андроид обработать if (MainViewModel.IsMorning().Invoke(task.TimeProperty)) { nTask.TimeOfTheDay = 1; } else if (MainViewModel.IsDay().Invoke(task.TimeProperty)) { nTask.TimeOfTheDay = 2; } else if (MainViewModel.IsEvening().Invoke(task.TimeProperty)) { nTask.TimeOfTheDay = 3; } switch (task.Recurrense.TypeInterval) { case TimeIntervals.Нет: nTask.Date = gTaskDate(task); nTask.Reccurrense = "NONE"; break; case TimeIntervals.Сразу: nTask.Date = gTaskDate(task); nTask.Reccurrense = "NOW"; break; case TimeIntervals.Ежедневно: nTask.Date = gTaskDate(task); nTask.Reccurrense = "Daily"; break; case TimeIntervals.Будни: nTask.Date = gTaskDate(task); nTask.Reccurrense = "BusinessDay"; break; case TimeIntervals.Выходные: nTask.Date = gTaskDate(task); nTask.Reccurrense = "Weekend"; break; case TimeIntervals.День: case TimeIntervals.ДниСначала: nTask.Date = gTaskDate(task); nTask.Reccurrense = $"Every day&{task.Recurrense.Interval}"; break; case TimeIntervals.Неделя: case TimeIntervals.НеделиСНачала: nTask.Date = gTaskDate(task); nTask.Reccurrense = $"Every Weeks&{task.Recurrense.Interval}"; break; case TimeIntervals.МесяцыСНачала: case TimeIntervals.Месяц: nTask.Date = gTaskDate(task); nTask.Reccurrense = $"Every Month&{task.Recurrense.Interval}"; break; case TimeIntervals.ДниНедели: case TimeIntervals.ДниНеделиСНачала: var weekDays = string.Empty; foreach (var source in task.DaysOfWeekRepeats.Where(n => n.CheckedProperty)) { if (!string.IsNullOrEmpty(weekDays)) { weekDays += ", "; } switch (source.Day) { case DayOfWeek.Monday: weekDays += "Mon"; break; case DayOfWeek.Tuesday: weekDays += "Tue"; break; case DayOfWeek.Wednesday: weekDays += "Wed"; break; case DayOfWeek.Thursday: weekDays += "Thu"; break; case DayOfWeek.Friday: weekDays += "Fri"; break; case DayOfWeek.Saturday: weekDays += "Sat"; break; case DayOfWeek.Sunday: weekDays += "Sun"; break; } } nTask.Date = gTaskDate(task); nTask.Reccurrense = $"Every WeekDays&{weekDays}"; break; } nTask.UUID = task.GUID; string issuper = string.Empty; if (task.isSuper) { issuper = "👑 "; } var plusName1 = task.PlusNameOf2; string plusName2 = ""; var count = (task.NameOfProperty + plusName1).Count(); if (!string.IsNullOrWhiteSpace(plusName1) && task.Priority > 0 && plusName1.Contains("(")) { var ind = plusName1.IndexOf('('); plusName2 = plusName1.Substring(ind).Trim(); plusName1 = plusName1.Substring(0, ind).Trim(); } if (string.IsNullOrWhiteSpace(plusName1)) { nTask.NameOf = task.NameOfProperty.ToUpper(); } else { string pl = string.Empty; if (!string.IsNullOrWhiteSpace(task.State) && !string.IsNullOrWhiteSpace(task.NameOfProperty)) { pl = " "; } nTask.NameOf = task.NameOfProperty.ToUpper() + pl + plusName1.ToUpper(); // + task.SubTasksString; } if (task.IsSkill) { nTask.TypeOf = "Навыки"; //nTask.LinksOf = plusName2.Replace("(", "").Replace(")", ""); var expName = plusName2.Replace("(", "").Replace(")", ""); if (!string.IsNullOrWhiteSpace(expName)) { nTask.LinksOf = expName; // nTask.NameOf += "\n" + expName; } //nTask.LinksOf = task.TaskInAbilitis.Aggregate("", (s, model) => s + model.NameOfProperty + "; "); } else if (task.RelToQwests.Any()) { nTask.TypeOf = "Квесты"; } else { nTask.TypeOf = "Задачи"; } nTask.Time = task.TimeString; nTask.Index = task.TaskIndex; return(nTask); }