public ICommandResult Handle(UpdateGroceriesPositionCommand command)
        {
            var groceries = _groceriesRepository.GetAll();
            var grocery   = groceries.FirstOrDefault(x => x.Id == command.Id);

            if (grocery == null)
            {
                AddNotification(new Notification("Id", "not found!"));
                return(null);
            }

            var oldIndex = groceries.IndexOf(grocery);
            var newIndex = command.Position;

            groceries.RemoveAt(oldIndex);

            groceries.Insert(newIndex, grocery);

            AddNotifications(grocery.Notifications);

            if (IsValid())
            {
                _groceriesRepository.Update(groceries);
            }

            return(new UpdateGroceriesPositionCommandResult(grocery.Id));
        }
コード例 #2
0
        public ICommandResult Handle(UpdateGroceriesCommand command)
        {
            var groceries = _groceriesRepository.GetById(command.Id);

            if (groceries == null)
            {
                AddNotification(new Notification("Id", "not found!"));
                return(null);
            }

            groceries.Update(command.Name, command.Price, command.Unity, command.Category);

            AddNotifications(groceries.Notifications);

            if (IsValid())
            {
                _groceriesRepository.Update(groceries);
            }

            return(new UpdateGroceriesCommandResult(groceries.Id, groceries.Name,
                                                    groceries.Price, groceries.Unity, groceries.Category));
        }