public IStockItemEditViewModel Create(StockItem stockItem)
    {
        // Find the appropriate resolver based on stockItem.GetType(), handle errors
        var type     = stockItem.GetType();
        var entry    = this.resolvers.FirstOrDefault(kv => kv.Key == type);
        var resolver = entry.Value;

        return(resolver.CreateEditViewModel(stockItem));
    }