public bool TryAdd(ITodoItem todoItem)
        {
            try
            {
                if (todoItem == null)
                {
                    throw new TodoException("todoItem is null");
                }

                if (string.IsNullOrEmpty(todoItem.Title))
                {
                    throw new TodoException("Item must have title");
                }

                if (!repo.TryAdd(todoItem.Title, todoItem))
                {
                    throw new TodoException($"item '{todoItem.Title}' already exist");
                }

                _logger.LogInformation($"item '{todoItem.Title}' was added");

                return(true);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error happened: " + ex.Message);
                throw ex;
            }
        }
Beispiel #2
0
 public void IncreaseIfMatches(ITodoItem todoItem)
 {
     if (Definition.Condition == null || IsConditionMatching(todoItem, Definition.Condition))
     {
         Count++;
     }
 }
Beispiel #3
0
        public void Execute(Guid itemId)
        {
            ITodoItem todoItem = _todoItemGateway.Get(itemId);

            todoItem.MarkCompleted();
            _todoItemGateway.Update(todoItem);
        }
Beispiel #4
0
        public void Update(ITodoItem todoItem)
        {
            ITodoItem todoItemOld = _context.TodoItems
                                    .Where(e => e.Id == todoItem.Id)
                                    .SingleOrDefault();

            todoItemOld = todoItem;
        }
Beispiel #5
0
        public ITodoItem Get(Guid todoItemId)
        {
            ITodoItem todoItem = _context.TodoItems
                                 .Where(e => e.Id == todoItemId)
                                 .SingleOrDefault();

            return(todoItem);
        }
Beispiel #6
0
 public void Add(ITodoItem item)
 {
     using (var context = new TodoItemContext())
     {
         context.TodoItems.Add((TodoItem)item);
         context.SaveChanges();
     }
 }
 public void Update(string key, ITodoItem item)
 {
     if (!repo.ContainsKey(key))
     {
         throw new TodoException($"item '{key}' not exist; update failed");
     }
     repo[key] = item;
 }
        public void Delete(Guid todoItemId)
        {
            ITodoItem todoItem = Get(todoItemId);

            if (todoItem != null)
            {
                _todoListContext.TodoItems.Remove((TodoItem)todoItem);
                _todoListContext.SaveChanges();
            }
        }
        public async Task <Guid> AddTodoAsync(ITodoItem item)
        {
            var data = _mapper.Map <ITodoDataItem>(item);

            if (string.IsNullOrWhiteSpace(data.Title))
            {
                throw new InvalidDataException("Cannot add a empty title todo item");
            }

            return(await _todoRepository.AddAsync(data));
        }
Beispiel #10
0
        public void Delete(Guid todoItemId)
        {
            ITodoItem todoItemOld = _context.TodoItems
                                    .Where(e => e.Id == todoItemId)
                                    .SingleOrDefault();

            if (todoItemOld != null)
            {
                _context.TodoItems.Remove(todoItemOld);
            }
        }
Beispiel #11
0
        public void Execute(Request request)
        {
            if (request == null)
            {
                throw new Exception("Input is null");
            }

            if (string.IsNullOrWhiteSpace(request.Title))
            {
                throw new Exception("Title is null");
            }

            ITodoItem todoItem = _todoItemGateway.Get(request.TodoItemId);

            todoItem.UpdateTitle(request.Title);
            _todoItemGateway.Update(todoItem);
        }
Beispiel #12
0
        public void Execute(Request request)
        {
            if (request == null)
            {
                throw new Exception("Request is null");
            }

            if (string.IsNullOrWhiteSpace(request.Title))
            {
                throw new Exception("Title is null");
            }

            ITodoItem todoItem = _entitiesFactory.NewTodoItem();

            todoItem.UpdateTitle(request.Title);
            _todoItemGateway.Add(todoItem);

            Response response = new Response(todoItem.Id);

            _outputHandler.Handle(response);
        }
Beispiel #13
0
        TodoItemViewModel ToViewModel(ITodoItem item)
        {
            var vm = new TodoItemViewModel(item);

            vm.Edit = navigator.NavigateCommand(
                "EditPage",
                p => p.Add("Item", item)
                );
            vm.Delete = ReactiveCommand.CreateFromTask(async() =>
            {
                var confirm = await this.dialogs.Confirm($"Are you sure you wish to delete '${item.Title}'");
                if (confirm)
                {
                    await this.data.Delete(item.Id);
                    this.DoLoad();
                }
            });
            vm.MarkComplete = ReactiveCommand.CreateFromTask(async() =>
            {
                if (item.CompletionDateUtc == null)
                {
                    item.CompletionDateUtc = DateTime.UtcNow;
                }
                else
                {
                    item.CompletionDateUtc = null;
                }

                await this.data.Update(item);

                vm.RaisePropertyChanged(nameof(vm.IsCompleted));
                vm.RaisePropertyChanged(nameof(vm.IsOverdue));

                // TODO: for unit testing later
                // TODO: cancel notification & geofence if completed
            });
            return(vm);
        }
 public TodoItemsController(ITodoItem todoitem)
 {
     _todoitem = todoitem;
 }
 public void Update(ITodoItem todoItem)
 {
     _todoListContext.TodoItems.Update((TodoItem)todoItem);
     _todoListContext.SaveChanges();
 }
 public HomeController(ITodoItem todo) => itodo = todo;
Beispiel #17
0
 public TodoItemViewModel(ITodoItem item) => this.Item = item;
Beispiel #18
0
 public void Add(ITodoItem todoItem)
 {
     _context.TodoItems.Add(todoItem);
 }
Beispiel #19
0
 private bool IsConditionMatching(ITodoItem todoItem, string condition)
 {
     return(todoItem.Text.IndexOf(condition, StringComparison.InvariantCultureIgnoreCase) >= 0);
 }
 public TodoController(ITodoItem repo)
 {
     _repo = repo;
 }
Beispiel #21
0
 public TodoItemsController(TodoContext context, ITodoItem itodoitem)
 {
     _context   = context;
     _itodoitem = itodoitem;
 }
 public void Add(ITodoItem todoItem)
 {
     _todoListContext.TodoItems.Add((TodoItem)todoItem);
     _todoListContext.SaveChanges();
 }
 public ITodoItem Save(ITodoItem item)
 {
     throw new System.NotImplementedException();
 }
Beispiel #24
0