public async Task <bool> Handle(AddItemApiRequest request, CancellationToken cancellationToken)
        {
            UserList list = null;

            if (request.Model.ListId != "none")
            {
                if (!int.TryParse(request.Model.ListId, out var listId))
                {
                    _logger.LogInformation($"Invalid list id {request.Model.ListId}");
                    return(false);
                }

                list = await _userListRepository.GetListAsync(request.User, listId);

                if (list == null)
                {
                    _logger.LogInformation($"Could not find list {request.Model.ListId}");
                    return(false);
                }
            }

            _logger.LogInformation($"Adding item to list {list?.UserListId} [{list?.Name}]: {request.Model.Description}; due={request.Model.DueDate}; notes={request.Model.Notes}");
            await _userItemRepository.AddItemAsync(request.User, list, request.Model.Description?.Trim(), request.Model.Notes?.Trim(), request.Model.DueDate?.Date, null, _userActionsService);

            return(true);
        }
Пример #2
0
        public async Task <bool> Handle(AddItemRequest request, CancellationToken cancellationToken)
        {
            var user = await _userAccountRepository.GetUserAccountAsync(request.User);

            UserList list = null;

            if (!string.IsNullOrEmpty(request.Model.List) && int.TryParse(request.Model.List, out var listId))
            {
                list = await _userListRepository.GetListAsync(user, listId);

                if (list == null)
                {
                    _logger.LogInformation($"Could not find list {request.Model.List}");
                    return(false);
                }
            }

            if (!TryGetDueDate(request.Model.Due, out var dueDate))
            {
                _logger.LogInformation($"Could not parse due date {request.Model.Due}");
                return(false);
            }

            _logger.LogInformation($"Adding item to list {list?.UserListId} [{list?.Name}]: {request.Model.Description}; due={dueDate}; repeat={request.Model.Repeat}; notes={request.Model.Notes}");
            await _userItemRepository.AddItemAsync(user, list, request.Model.Description?.Trim(), request.Model.Notes?.Trim(), dueDate, request.Model.Repeat, _userActionsService);

            return(true);
        }