public DomainSettingsModel(string concern, string operation, PatternDirectoryType patternType, GroupByType groupBy)
        {
            var solutionFile = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.sln").FirstOrDefault();
            var solutionInfo = SolutionFile.Parse(solutionFile);

            var projectList = solutionInfo.ProjectsInOrder;

            var proj =
                projectList.FirstOrDefault(x => x.ProjectName.Equals("Logic") || x.ProjectName.Equals("Domain"));

            if (proj == null)
            {
                throw new Exception("Missing domain or logic project in solution");
            }


            Concern     = concern;
            Operation   = operation;
            PatternType = patternType;

            ProjectName        = proj.RelativePath;
            DomainName         = proj.ProjectName;
            DomainAbsolutePath = ResolveDomainAbsolutePath(proj.AbsolutePath);
            PatternFileType    = PatternFileNameResolver.Resolve(patternType);
            ClassName          = $"{concern}{operation}{PatternFileNameResolver.Resolve(patternType)}";
            GroupingStrategy   = groupBy;

            //LogUtility.Info($"ProjectName: {ProjectName}");
            //LogUtility.Info($"DomainName: {DomainName}");
            //LogUtility.Info($"DomainAbsolutePath: {DomainAbsolutePath}");
        }
        private void DrawMenuPanel()
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Group by",
                                       GUILayout.MaxWidth(60));
            groupBy = (GroupByType)EditorGUILayout.EnumPopup(groupBy,
                                                             GUILayout.MaxWidth(150));

            GUILayout.FlexibleSpace();

            showType = (ShowType)EditorGUILayout.EnumPopup(showType,
                                                           GUILayout.MaxWidth(100));

            EditorGUILayout.LabelField("Filter by",
                                       GUILayout.MaxWidth(50));
            filterType = (FilterType)EditorGUILayout.EnumPopup(filterType,
                                                               GUILayout.MaxWidth(100));
            filterText = EditorGUILayout.TextField(filterText,
                                                   GUILayout.MaxWidth(100));
            if (GUILayout.Button("clear",
                                 GUILayout.ExpandWidth(false)))
            {
                filterText = "";
            }
            EditorGUILayout.EndHorizontal();
        }
        public static void Build(string concern, string operation, GroupByType groupBy)
        {
            var responseNameSpace = groupBy switch
            {
                GroupByType.Concern => $"{concern}.Responses",
                GroupByType.Operation => $"Responses.{concern}"
            };

            ClassAssembler
            .Configure(concern, operation, PatternDirectoryType.Commands, groupBy)
            .ImportNamespaces(new List <NamespaceModel>
            {
                new NamespaceModel("MediatR"),
                new NamespaceModel(responseNameSpace, true)
            })
            .CreateNamespace()
            .CreateClass()
            .WithInheritance(new List <string>
            {
                $"IRequest<{concern}{operation}{PatternFileType.Response}>"
            })
            .Generate()
            ;
        }
    }
Ejemplo n.º 4
0
        public DomainSettingsModel(string concern, string operation, PatternDirectoryType patternType, GroupByType groupBy)
        {
            var solutionFile = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.sln").FirstOrDefault();

            var solutionInfo = SolutionFile.Parse(solutionFile);

            var projectList = solutionInfo.ProjectsInOrder;

            foreach (var proj in projectList)
            {
                if (!proj.ProjectName.Contains(".Logic") &&
                    !proj.ProjectName.Contains(".Domain"))
                {
                    continue;
                }

                Concern     = concern;
                Operation   = operation;
                PatternType = patternType;

                ProjectName        = proj.RelativePath;
                DomainName         = proj.ProjectName;
                DomainAbsolutePath = ResolveDomainAbsolutePath(proj.AbsolutePath);
                PatternFileType    = PatternFileNameResolver.Resolve(patternType);
                ClassName          = $"{concern}{operation}{PatternFileNameResolver.Resolve(patternType)}";
                GroupingStrategy   = groupBy;
            }

            LogUtility.Info($"ProjectName: {ProjectName}");
            LogUtility.Info($"DomainName: {DomainName}");
            LogUtility.Info($"DomainAbsolutePath: {DomainAbsolutePath}");
        }
 public static void Build(string concern, string operation, GroupByType groupBy)
 {
     ClassAssembler
     .Configure(concern, operation, PatternDirectoryType.Responses, groupBy)
     .ImportNamespaces()
     .CreateNamespace()
     .CreateClass()
     .Generate()
     ;
 }
 public static void Build(string concern, string operation, GroupByType groupBy)
 {
     ClassAssembler
     .ConfigureHandler(concern, operation, PatternDirectoryType.Responses, groupBy)
     .ImportNamespaces()
     .CreateNamespace()
     .CreateClass(new[] { SyntaxFactory.Token(SyntaxKind.PublicKeyword) })
     .GenerateHandler()
     ;
 }
 public static void Build(string concern, string operation, GroupByType groupBy)
 {
     ClassAssembler
     .Configure(concern, operation, PatternDirectoryType.Queries, groupBy)
     .ImportNamespaces(new List <NamespaceModel>
     {
         new NamespaceModel("MediatR"),
         new NamespaceModel($"{NamespaceResolver.Resolve(concern,"Responses",groupBy)}", true),
     })
     .CreateNamespace()
     .CreateClass()
     .WithInheritance(new List <string>
     {
         $"IRequest<{concern}{operation}{PatternFileType.Response}>"
     })
     .Generate()
     ;
 }
        private void DrawMenuPanel()
        {
            EditorGUILayout.BeginHorizontal(EditorStyles.toolbar);
            EditorGUILayout.LabelField("Group by:", Styles.toolbarLabel, GUILayout.MaxWidth(60));
            m_GroupBy = (GroupByType)EditorGUILayout.EnumPopup(m_GroupBy, EditorStyles.toolbarPopup, GUILayout.MaxWidth(150));

            GUILayout.FlexibleSpace();

            m_ShowType = (ShowType)EditorGUILayout.EnumPopup(m_ShowType, EditorStyles.toolbarPopup, GUILayout.MaxWidth(100));

            EditorGUILayout.LabelField("Filter by:", Styles.toolbarLabel, GUILayout.MaxWidth(50));
            m_FilterType = (FilterType)EditorGUILayout.EnumPopup(m_FilterType, EditorStyles.toolbarPopup, GUILayout.MaxWidth(100));
            m_FilterText = GUILayout.TextField(m_FilterText, "ToolbarSeachTextField", GUILayout.MaxWidth(100));
            if (GUILayout.Button(GUIContent.none, string.IsNullOrEmpty(m_FilterText) ? "ToolbarSeachCancelButtonEmpty" : "ToolbarSeachCancelButton", GUILayout.ExpandWidth(false)))
            {
                m_FilterText = "";
            }
            EditorGUILayout.EndHorizontal();
        }
        private IActionResult Chart(string valueGrouping, string pointGrouping)
        {
            ILineGrouping <Sale> lineGrouping =
                new GroupByType <Sale>(
                    new SaleDataSource()
                    );

            IPointGrouping <Sale> salePointGrouping =
                pointGrouping == "byMonth" ? new GroupByMonth <Sale>(lineGrouping) :
                pointGrouping == "byWeek" ? (IPointGrouping <Sale>) new GroupByWeek <Sale>(lineGrouping) :
                pointGrouping == "byDayOfWeek" ? new GroupByDayOfWeek <Sale>(lineGrouping) :
                throw new Exception($"Unsupported value {pointGrouping}");

            IValueGrouping saleValueGrouping =
                valueGrouping == "totalValue" ? (IValueGrouping) new SaleTotalValueGrouping(salePointGrouping) :
                valueGrouping == "averageValue" ? new SaleAverageValueGrouping(salePointGrouping) :
                throw new Exception($"Unsupported value {pointGrouping}");

            return(View(saleValueGrouping));
        }
Ejemplo n.º 10
0
 private void btnChangeGroup_Click(object sender, EventArgs e)
 {
     try
     {
         if (TitleGroupByType == GroupByType.Company)
         {
             TitleGroupByType    = GroupByType.Moudle;
             btnChangeGroup.Text = "依公司分類";
         }
         else
         {
             TitleGroupByType    = GroupByType.Company;
             btnChangeGroup.Text = "依模組分類";
         }
         WfGenUltvContet();
     }
     catch (Exception ex)
     {
         this.Close();
     }
 }
        public void GroupByType()
        {
            var subject = new GroupByType <Sale>(
                new MockedDataSource()
                );

            IEnumerable <LineGroup <Sale> > lineGroups = subject.LineGroups();

            lineGroups.Count().Should().Be(4);

            lineGroups.ElementAt(0).Type().Should().Be("Teddybear");
            lineGroups.ElementAt(0).Data().Count().Should().Be(10);

            lineGroups.ElementAt(1).Type().Should().Be("Table");
            lineGroups.ElementAt(1).Data().Count().Should().Be(4);

            lineGroups.ElementAt(2).Type().Should().Be("Lamp");
            lineGroups.ElementAt(2).Data().Count().Should().Be(4);

            lineGroups.ElementAt(3).Type().Should().Be("Chair");
            lineGroups.ElementAt(3).Data().Count().Should().Be(2);
        }
Ejemplo n.º 12
0
        public static void Build(string concern, string operation, OperationType ot, GroupByType groupBy)
        {
            var tInObjectName = ot switch
            {
                OperationType.COMMAND => $"{concern}{operation}Command",
                OperationType.QUERY => $"{concern}{operation}Query"
            };

            var operationTypeNamespace = ot switch
            {
                OperationType.COMMAND => NamespaceResolver.Resolve(concern, "Commands", groupBy),
                OperationType.QUERY => NamespaceResolver.Resolve(concern, "Queries", groupBy)
            };

            ClassAssembler
            .ConfigureHandler(concern, operation, PatternDirectoryType.Handlers, groupBy)
            .ImportNamespaces(new List <NamespaceModel>
            {
                new NamespaceModel("MediatR"),
                new NamespaceModel(operationTypeNamespace, true),
                new NamespaceModel($"{NamespaceResolver.Resolve(concern,"Responses",groupBy)}", true),
                new NamespaceModel("System.Collections.Generic"),
                new NamespaceModel("System.Threading"),
                new NamespaceModel("System.Threading.Tasks")
            })
            .CreateNamespace()
            .CreateClass(new[] { SyntaxFactory.Token(SyntaxKind.PublicKeyword) })
            .WithInheritance(new List <string>
            {
                $"IRequestHandler<{tInObjectName},{concern}{operation}Response>"
            })
            .ImplementMediatorHandlerInheritance($"{concern}{operation}Response", tInObjectName)
            .GenerateHandler()
            ;
        }
    }
}
        private void DrawMenuPanel()
        {
            EditorGUILayout.BeginHorizontal(EditorStyles.toolbar);
            EditorGUILayout.LabelField("Group by:", Styles.toolbarLabel, GUILayout.MaxWidth(60));
            m_GroupBy = (GroupByType)EditorGUILayout.EnumPopup(m_GroupBy, EditorStyles.toolbarPopup, GUILayout.MaxWidth(150));

            GUILayout.FlexibleSpace();

            m_ShowType = (ShowType)EditorGUILayout.EnumPopup(m_ShowType, EditorStyles.toolbarPopup, GUILayout.MaxWidth(100));

            EditorGUILayout.LabelField("Filter by:", Styles.toolbarLabel, GUILayout.MaxWidth(50));
            m_FilterType = (FilterType)EditorGUILayout.EnumPopup(m_FilterType, EditorStyles.toolbarPopup, GUILayout.MaxWidth(100));
            m_FilterText = GUILayout.TextField(m_FilterText, "ToolbarSeachTextField", GUILayout.MaxWidth(100));
            if (GUILayout.Button(GUIContent.none, string.IsNullOrEmpty(m_FilterText) ? "ToolbarSeachCancelButtonEmpty" : "ToolbarSeachCancelButton", GUILayout.ExpandWidth(false)))
                m_FilterText = "";
            EditorGUILayout.EndHorizontal();
        }
Ejemplo n.º 14
0
 public GroupByClause(GroupByType type)
 {
     this.Type = type;
 }
 public static string Resolve(string concern, string operationType, GroupByType groupByType)
 => groupByType switch
 {
Ejemplo n.º 16
0
        private void DrawMenuPanel()
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Group by", GUILayout.MaxWidth(60));
            m_GroupBy = (GroupByType)EditorGUILayout.EnumPopup(m_GroupBy, GUILayout.MaxWidth(150));

            GUILayout.FlexibleSpace();

            m_ShowType = (ShowType)EditorGUILayout.EnumPopup(m_ShowType, GUILayout.MaxWidth(100));

            EditorGUILayout.LabelField("Filter by", GUILayout.MaxWidth(50));
            m_FilterType = (FilterType)EditorGUILayout.EnumPopup(m_FilterType, GUILayout.MaxWidth(100));
            m_FilterText = EditorGUILayout.TextField(m_FilterText, GUILayout.MaxWidth(100));
            if (GUILayout.Button("Clear", GUILayout.ExpandWidth(false)))
                m_FilterText = "";
            EditorGUILayout.EndHorizontal();
        }
 public static IOnConfiguration Configure(string concern, string operation, PatternDirectoryType patternType, GroupByType groupBy)
 => new ClassAssembler(concern, operation, patternType, groupBy);
 public ClassAssembler(string concern, string operation, PatternDirectoryType patternType, GroupByType groupBy)
 {
     _settings      = new DomainSettingsModel(concern, operation, patternType, groupBy);
     _syntaxFactory = SyntaxFactory.CompilationUnit();
 }
Ejemplo n.º 19
0
 public static DataTable SelectDetailTimeReport(int DepartmentId, DateTime StartDate, DateTime EndDate, GroupByType groupByType, string AccountsList, string AccountsOnlyList, string ProjectList, string TechniciansList)
 {
     return SelectRecords("sp_SelectDetailTimeReport", new SqlParameter[]
            {
             new SqlParameter("@CompanyID", DepartmentId),
             new SqlParameter("@DateStart", StartDate),
             new SqlParameter("@DateEnd", EndDate),
             new SqlParameter("@GroupByField", (int)groupByType),
             new SqlParameter("@AccountIDs", AccountsList),
             new SqlParameter("@AccountOnlyIDs", AccountsOnlyList),
             new SqlParameter("@ProjectIDs", ProjectList),
             new SqlParameter("@TechsIDs", TechniciansList)
            });
 }
Ejemplo n.º 20
0
 //default constructor
 public QueryRequest(string searchTerm, GroupByType groupingType)
 {
     this.GroupingType = groupingType;
     this.SearchTerm = searchTerm;
 }
Ejemplo n.º 21
0
 private void ExecuteNewQueryRequest(GroupByType groupingType)
 {
     string searchTerm = this.SearchTerm_TextCombo.Text;
     QueryRequest newRequest = new QueryRequest(searchTerm, groupingType);
     this.queriesManager.Request = newRequest;
 }