예제 #1
0
        public static void CreateMediaStoreAssembly(MediaStoreSystem system, string suffix)
        {
            var webForm = new WebForm()
            {
                Name = "WebForm" + suffix
            };
            var audioStore = new AudioStore()
            {
                Name = "AudioStore" + suffix
            };
            var encodingadapter = new EncodingAdapter()
            {
                Name = "EncodingAdapter" + suffix
            };
            var encoder = new OggEncoder()
            {
                Name = "OggEncoder" + suffix
            };
            var userMgmt = new UserManagement()
            {
                Name = "UserManagement" + suffix
            };
            var dbAdapter = new DBAdapter()
            {
                Name = "DBAdapter" + suffix
            };
            var mySqlClient = new MySqlClient()
            {
                Name = "MySqlClient" + suffix
            };

            system.AssemblyContexts.Add(webForm);
            system.AssemblyContexts.Add(audioStore);
            system.AssemblyContexts.Add(userMgmt);
            system.AssemblyContexts.Add(encodingadapter);
            system.AssemblyContexts.Add(encoder);
            system.AssemblyContexts.Add(dbAdapter);
            system.AssemblyContexts.Add(mySqlClient);

            webForm.Application = audioStore;

            audioStore.UserManagement = userMgmt;
            audioStore.AudioDB        = encodingadapter;

            userMgmt.Database = dbAdapter;

            encodingadapter.Encoder  = encoder;
            encodingadapter.Database = dbAdapter;

            dbAdapter.Command    = mySqlClient;
            dbAdapter.Connection = mySqlClient;
            dbAdapter.DataReader = mySqlClient;

            system.Frontend = webForm;
        }
예제 #2
0
        private static void GenerateMediaStoreAssembly(int?factor, string codeLocation, string metamodelLocation)
        {
            var uri = new Uri("http://github.com/georghinkel/mediaStore/Assembly" + (factor.HasValue ? "X" + factor.Value.ToString() : ""));

            var system = new MediaStoreSystem()
            {
                Name = "MediaStore" + (factor.HasValue ? "X" + factor.Value.ToString() : "")
            };
            var mediaStoreL2 = new Namespace()
            {
                Name   = "Assembly" + (factor.HasValue ? "X" + factor.Value.ToString() : ""),
                Uri    = uri,
                Prefix = "mediaStore" + (factor.HasValue ? "X" + factor.Value.ToString() : "")
            };

            mediaStoreL2.Types.Add(system);
            if (!factor.HasValue)
            {
                CreateMediaStoreAssembly(system, string.Empty);
            }
            else
            {
                for (int i = 1; i <= factor.Value; i++)
                {
                    CreateMediaStoreAssembly(system, i.ToString());
                }
            }
            var model = new Model()
            {
                ModelUri = uri
            };

            model.RootElements.Add(mediaStoreL2);
            var unit = MetaFacade.CreateCode(mediaStoreL2, "FZI.SoftwareEngineering.DeepModeling");

            MetaFacade.GenerateCode(unit, new Microsoft.CSharp.CSharpCodeProvider(), codeLocation, true);
            using (var fs = File.OpenWrite(metamodelLocation))
            {
                MetaRepository.Instance.Serializer.Serialize(mediaStoreL2, fs);
            }
        }