public override int Execute(IDataContext context)
        {
            var result = 0;

            ContextQuery = ctx =>
            {
                var baseItem = ctx.AsQueryable <ItemSource>().SingleOrDefault(t => t.Id == BaseItemId);
                if (baseItem == null)
                {
                    throw new DomainException($"Base item with Id {BaseItemId} could not be found");
                }

                var restockItem = RestockItem.Create(baseItem, AmountBeforeRestock, AmountToRestockTo, BotId);

                ctx.Add(restockItem);
                ctx.Commit();

                result = restockItem.Id;
            };

            ExecuteInternal(context);

            return(result);
        }