internal BlueprintService(IDefinitionsRepository definitionsRepository, ILoadableResource <XDocument> blueprintResource)
        {
            _definitionsRepository = definitionsRepository;

            try
            {
                Blueprint             = blueprintResource.Load();
                _blueprintDataContext = new BlueprintDataContext(XElement.Parse(Blueprint.ToString()));
            }
            catch (Exception e)
            {
                throw new Exception("Blueprint cannot be loaded. This is probably because the game changed, and this app became incompatible with the blueprint files.", e);
            }

            SetBlueprintInfo();
        }