/// <summary>
        /// Import a product using given parameters
        /// </summary>
        protected override Task <ProductImporterResult> Import(ProductImportContext context, SpecializedWatchImportParameters parameters)
        {
            var product = new WatchType
            {
                Name      = parameters.Name,
                Identity  = new ProductIdentity(parameters.Identifier, parameters.Revision),
                Watchface = new ProductPartLink <WatchfaceTypeBase>
                {
                    Product = (WatchfaceType)Storage.LoadType(new ProductIdentity(parameters.WatchfaceIdentifier, ProductIdentity.LatestRevision))
                },
                Needles = new List <NeedlePartLink>
                {
                    new NeedlePartLink
                    {
                        Role    = NeedleRole.Minutes,
                        Product = (NeedleType)Storage.LoadType(new ProductIdentity(parameters.MinuteNeedleIdentifier, ProductIdentity.LatestRevision))
                    }
                }
            };

            return(Task.FromResult(new ProductImporterResult
            {
                ImportedTypes = new ProductType[] { product }
            }));
        }
        /// <summary>
        /// Import a product using given parameters
        /// </summary>
        protected override IProductType[] Import(SpecializedWatchImportParameters parameters)
        {
            var product = new WatchType
            {
                Name      = parameters.Name,
                Identity  = new ProductIdentity(parameters.Identifier, parameters.Revision),
                Watchface = new ProductPartLink <WatchfaceType>
                {
                    Product = (WatchfaceType)Storage.LoadType(new ProductIdentity(parameters.WatchfaceIdentifier, ProductIdentity.LatestRevision))
                },
                Needles = new List <NeedlePartLink>
                {
                    new NeedlePartLink
                    {
                        Role    = NeedleRole.Minutes,
                        Product = (NeedleType)Storage.LoadType(new ProductIdentity(parameters.MinuteNeedleIdentifier, ProductIdentity.LatestRevision))
                    }
                }
            };

            return(new IProductType[] { product });
        }