public void Update(Factory factory)
        {
            using (var tx = new TransactionScope())
            {
                Database.Update(factory.Id, factory);

                tx.Complete();
            }
        }
        public void Save(Factory factory)
        {
            using (var tx = new TransactionScope())
            {
                Database.Insert(factory.Id, factory);

                tx.Complete();
            }
        }
        public Factory OpenFactory(FactoryId factoryId, FactoryName name)
        {
            var factory = new Factory(factoryId, name);

            factory.Open(this.factoryOpened);

            this.repository.Save(factory);

            return factory;
        }