Пример #1
0
        public override Result <string> Execute(Match regexMatch)
        {
            Result <object> createTask(Status status)
            {
                var day = status.Day.AddTask(
                    new TaskEntry(regexMatch.Groups["entry"].Value, TimeSpan.Zero));

                return(repository.SaveTodaySheet(day));
            }

            return(repository.GetStatus()
                   .Bind(createTask).Bind(_ => todaysSheet.ExecuteWithNoHeader()));
        }
Пример #2
0
        public override Result <string> Execute(Match regexMatch)
        {
            int index = int.Parse(regexMatch.Groups["index"].Value) - 1;

            Result <object> deleteTask(Day sheet)
            {
                if (sheet.Tasks == null || sheet.Tasks.Count <= index)
                {
                    return(Results.Failure <object>($"There is no task at index {index + 1} in today's sheet."));
                }
                sheet.Tasks.RemoveAt(index);
                return(repository.SaveTodaySheet(sheet));
            }

            return(repository.GetStatus()
                   .Bind(s => deleteTask(s.Day))
                   .Bind(_ => todaysSheet.ExecuteWithNoHeader()));
        }