コード例 #1
0
        public void NullOrEmptyShouldNotCreateWithExampleOfUse(string exampleOfUse)
        {
            var model = DesignPatternBuilder.New().WithExampleOfUse(exampleOfUse).Build();

            model.IsValid.Should().BeFalse();
            model.ValidationResult.Errors.Should().HaveCountGreaterThan(0);
        }
コード例 #2
0
        public void NullOrEmptyShouldNotCreateWithDescription(string desc)
        {
            var model = DesignPatternBuilder.New().WithDescription(desc).Build();

            model.IsValid.Should().BeFalse();
            model.ValidationResult.Errors.Should().HaveCountGreaterThan(0);
        }
コード例 #3
0
        public void NullOrEmptyShouldNotCreateWithId()
        {
            var model = DesignPatternBuilder.New().WithId(new Guid()).Build();

            model.IsValid.Should().BeFalse();
            model.ValidationResult.Errors.Should().HaveCountGreaterThan(0);
        }
コード例 #4
0
        private async void FactoryCreation(String factoryType)
        {
            var parameters = new Dictionary <string, string>
            {
                { "{NAMESPACE}", "BuiltDesignPatternsTest.FactoryTest.Shape" + factoryType },
                { "{PARENT_OBJECT}", "Shape" }
            };
            var shapes = new Dictionary <String, List <String> >
            {
                {
                    "{OBJECT}", new List <string>
                    {
                        "Circle",
                        "Square"
                    }
                }
            };

            var designPatternBuilder = new DesignPatternBuilder(_dpFileManager);

            var files  = designPatternBuilder.BuildFromXml(factoryType + ".xml", parameters, shapes).Result;
            var folder = await _dpFileManager.GetApplicationStorageFolder("TestDrops");

            foreach (var classInformation in files)
            {
                await _dpFileManager.CreateFile(classInformation.FileName, folder,
                                                classInformation.Content);

                var fileExits = _dpFileManager.FileExistsInFolder(classInformation.FileName, folder).Result;
                Assert.IsTrue(fileExits);
            }
        }
コード例 #5
0
        private async void SingletonBuilder(String type)
        {
            var classValues = new Dictionary <string, string>
            {
                { "{NAMESPACE}", "BuiltDesignPatternsTest.SingletonTest" },
                { "{CLASS_NAME}", "My" + type }
            };

            var designPatternBuilder = new DesignPatternBuilder(_dpFileManager);
            var classInformation     = designPatternBuilder.BuildFromXml(type + ".xml", classValues, null).Result.First();

            var folder = await _dpFileManager.GetApplicationStorageFolder("TestDrops");

            await _dpFileManager.CreateFile(classInformation.FileName, folder,
                                            classInformation.Content);

            var fileExits = _dpFileManager.FileExistsInFolder(classInformation.FileName, folder).Result;

            Assert.IsTrue(fileExits);
        }
コード例 #6
0
        public void ShouldCreateDomain()
        {
            var model = DesignPatternBuilder.New().Build();

            model.IsValid.Should().BeTrue();
        }
コード例 #7
0
        private async void btnGenerate_Click(object sender, RoutedEventArgs e)
        {
            var textBoxes = from c in ControlsGridView.Children
                            where c is TextBox
                            select(TextBox) c;


            var textBoxs = textBoxes as IList <TextBox> ?? textBoxes.ToList();

            var parametersControls = from p in _designPatternParameters
                                     join t in textBoxs on p.Name equals t.Name
                                     select new Tuple <TextBox, DesignPatternParameter>(t, p);

            var isValid = await ValidateTextBoxes(parametersControls);


            var multipleObjects = (from p in _designPatternParameters
                                   where p.IsMultiple
                                   select p).ToList();

            bool isValidMultiple = true;
            var  objects         = new Dictionary <String, List <String> >();

            if (multipleObjects.Any())
            {
                var grids = from g in ControlsGridView.Children
                            where g is Grid
                            select(Grid) g;

                var gridParameters = from g in grids
                                     join p in multipleObjects on g.Name equals p.Name
                                     select new Tuple <Grid, DesignPatternParameter>(g, p);

                foreach (var g in gridParameters)
                {
                    var scrollSenderChildren = from i in g.Item1.Children
                                               where i is ScrollViewer
                                               select(ScrollViewer) i;

                    var scroll = scrollSenderChildren.FirstOrDefault(s => s.Name == g.Item1.Name + "list");

                    var textboxGrid = scroll.Content as StackPanel;

                    var textboxes = from t in textboxGrid.Children
                                    where t is TextBox
                                    select(TextBox) t;

                    var txtValuesList = (from t in textboxes
                                         select t.Text).ToList();

                    objects.Add(g.Item2.Name, txtValuesList);

                    isValidMultiple = await ValidateTextBoxesMultiParameter(textboxes, g.Item2);
                }
            }


            if (isValid && isValidMultiple)
            {
                var designPattern        = (DesignPatternDataItem)DefaultViewModel["Item"];
                var dpParameters         = textBoxs.ToDictionary(item => item.Name, item => item.Text);
                var dpFileManager        = new FileManager();
                var designPatternBuilder = new DesignPatternBuilder(dpFileManager);
                var classInformation     = await designPatternBuilder.BuildFromXml(designPattern.Path, dpParameters, objects);

                var folderPicker = new FolderPicker {
                    SuggestedStartLocation = PickerLocationId.Desktop
                };
                folderPicker.FileTypeFilter.Add(".cs");

                StorageFolder folder = await folderPicker.PickSingleFolderAsync();

                if (folder != null)
                {
                    foreach (var item in classInformation)
                    {
                        await dpFileManager.CreateFile(item.FileName, folder, item.Content);
                    }

                    var finished = new MessageDialog("Files created successfully", "Files Ready");
                    await finished.ShowAsync();
                }
            }
            Frame.GoBack();
        }