Example #1
0
        public void Reflect(TestCaseAssembly testCase)
        {
            ObservableCollection <Message> messages = CoreData.Instance.Messages;

            // Do the reflection
            NRAssembly nrAssembly;
            IFilter    filter = new StatisticFilter(new ReflectAllFilter());

            try
            {
                Reflector reflector = new Reflector();
                nrAssembly = reflector.Reflect(testCase.FullPath, ref filter);
            }
            catch (Exception ex)
            {
                messages.Add(new Message {
                    MessageText = "Reflection failed with the following exception: " + ex.Message, Severity = MessageSeverity.Error
                });
                testCase.State = TestCaseState.ReflectionFailed;
                return;
            }
            messages.Add(new Message {
                MessageText = "Reflection successful.", Severity = MessageSeverity.Info
            });

            // Create relationships
            RelationshipCreator relationshipCreator = new RelationshipCreator();
            NRRelationships     nrRelationships     = relationshipCreator.CreateRelationships(nrAssembly);

            // Save the results
            testCase.CurrentResult = new NReflectResult(nrAssembly, nrRelationships);
        }
Example #2
0
        /// <summary>
        /// Compiles and reflects a single <see cref="TestCase"/>.
        /// </summary>
        /// <param name="testCase">The <see cref="TestCase"/> to run.</param>
        public void CompileAndReflect(TestCaseCSharp testCase)
        {
            ObservableCollection <Message> messages = CoreData.Instance.Messages;

            messages.Add(new Message {
                MessageText = "Compilation of test case '" + testCase.Name + "' started.", Severity = MessageSeverity.Info
            });

            // Compile the code
            CompilerResults compilerResults = Compile(new[] { testCase.Code });

            List <Message> compileMessages = ToMessages(compilerResults.Errors, testCase.Name);

            compileMessages.ForEach(messages.Add);

            if (compileMessages.Count > 0)
            {
                messages.Add(new Message {
                    MessageText = "Compilation failed. Aboarding.", Severity = MessageSeverity.Error
                });
                testCase.State = TestCaseState.CompilationFailed;
                return;
            }
            messages.Add(new Message {
                MessageText = "Compilation successful.", Severity = MessageSeverity.Info
            });

            // Do the reflection
            NRAssembly nrAssembly;
            IFilter    filter = new StatisticFilter(new ReflectAllFilter());

            try
            {
                Reflector reflector = new Reflector();
                nrAssembly = reflector.Reflect(compilerResults.CompiledAssembly, ref filter);
            }
            catch (Exception ex)
            {
                messages.Add(new Message {
                    MessageText = "Reflection failed with the following exception: " + ex.Message, Severity = MessageSeverity.Error
                });
                testCase.State = TestCaseState.ReflectionFailed;
                return;
            }
            messages.Add(new Message {
                MessageText = "Reflection successful.", Severity = MessageSeverity.Info
            });

            // Create relationships
            RelationshipCreator relationshipCreator = new RelationshipCreator();
            NRRelationships     nrRelationships     = relationshipCreator.CreateRelationships(nrAssembly);

            // Save the results
            testCase.CurrentResult = new NReflectResult(nrAssembly, nrRelationships);
        }
        public async Task <List <FinanceActiveIndexModel> > GetStatisticsData(StatisticFilter filter)
        {
            using (var uow = UnitOfWorkFactory.Create())
            {
                List <FinanceActiveIndexModel> FinanceActionsList = new List <FinanceActiveIndexModel>();
                var FinanceActions = uow.FinanceActions.GetFinanceActionsForStatistics(
                    StartDate: filter.StartDate,
                    EndDate: filter.EndDate,
                    OperationsId: filter.OperationsId,
                    ProjectsId: filter.ProjectsId,
                    ScoresId: filter.ScoresId,
                    Scores2Id: filter.Scores2Id,
                    CounterPartiesId: filter.CounterPartiesId,
                    OperationTypesId: filter.OperationTypesId
                    );

                foreach (var FinanceAction in FinanceActions)
                {
                    if (FinanceAction.Discriminator.ToLower() == "transaction")
                    {
                        var Transaction = FinanceAction as Transaction;
                        Transaction.CounterParty = await uow.CounterParties.GetByIdAsync(Transaction.CounterPartyId);

                        FinanceActionsList.Add(Mapper.Map <FinanceActiveIndexModel>(Transaction));
                    }
                    else if (FinanceAction.Discriminator.ToLower() == "remittance")
                    {
                        var Remittance = FinanceAction as Remittance;
                        Remittance.Score2 = await uow.Scores.GetByIdAsync(Remittance.Score2Id);

                        FinanceActionsList.Add(Mapper.Map <FinanceActiveIndexModel>(Remittance));
                    }
                }

                return(Mapper.Map <List <FinanceActiveIndexModel> >(FinanceActions));
            }
        }
 public async Task <ActionResult <List <FinanceActiveIndexModel> > > Statistics([FromQuery] StatisticFilter filter)
 {
     return(await financeService.GetStatisticsData(filter));
 }
Example #5
0
        /// <summary>
        /// The main method of the program.
        /// </summary>
        /// <param name="args">The arguments supplied at the console.</param>
        static void Main(string[] args)
        {
            string fileName = null;

            foreach (string s in args)
            {
                if (s.StartsWith("-"))
                {
                    foreach (char c in s.Substring(1))
                    {
                        switch (c)
                        {
                        case 'a':
                            assembly = true;
                            break;

                        case 'm':
                            modules = true;
                            break;

                        case 'r':
                            relations = true;
                            break;

                        case 's':
                            statistic = true;
                            break;

                        default:
                            PrintUsage();
                            return;
                        }
                    }
                }
                else
                {
                    if (fileName != null)
                    {
                        PrintUsage();
                        return;
                    }
                    fileName = s;
                }
            }

            if (fileName == null)
            {
                PrintUsage();
                return;
            }

            Console.WriteLine("Will now reflect " + fileName);

            // Create the filter
            ReflectAllFilter allFilter = new ReflectAllFilter();

            IncludeFilter includeFilter = new IncludeFilter();

            includeFilter.Rules.Add(new FilterRule(FilterModifiers.AllModifiers, FilterElements.Class));
            includeFilter.Rules.Add(new FilterRule(FilterModifiers.AllModifiers, FilterElements.Field));
            includeFilter.Rules.Add(new FilterRule(FilterModifiers.AllModifiers, FilterElements.Attribute));

            StatisticFilter statisticFilter = new StatisticFilter(allFilter);

            // Do the reflection
            NRAssembly nrAssembly;
            IFilter    filter = statisticFilter;

            try
            {
                Reflector reflector = new Reflector();
                nrAssembly = reflector.Reflect(fileName, ref filter);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception while reflecting: " + ex.Message);
                return;
            }

            // Output of the results
            IVisitor visitor = new PrintTreeVisitor();

//      IVisitor visitor = new CSharpVisitor();
//      IVisitor visitor = new PrintVisitor();
            if (assembly)
            {
                nrAssembly.Accept(visitor);
                Console.WriteLine();
            }

            if (modules)
            {
                foreach (NRModule nrModule in nrAssembly.Modules)
                {
                    nrModule.Accept(visitor);
                }
                Console.WriteLine();
            }

            if (relations)
            {
                RelationshipCreator relationshipCreator = new RelationshipCreator();
                NRRelationships     nrRelationships     = relationshipCreator.CreateRelationships(nrAssembly);

                Console.WriteLine("Nesting relationships:");
                foreach (NRNesting nrNestingRelationship in nrRelationships.Nestings)
                {
                    Console.WriteLine(nrNestingRelationship);
                }
                Console.WriteLine();

                Console.WriteLine("Generalization relationships:");
                foreach (NRGeneralization nrGeneralizationRelationship in nrRelationships.Generalizations)
                {
                    Console.WriteLine(nrGeneralizationRelationship);
                }
                Console.WriteLine();

                Console.WriteLine("Realization relationships:");
                foreach (NRRealization nrRealizationRelationship in nrRelationships.Realizations)
                {
                    Console.WriteLine(nrRealizationRelationship);
                }
                Console.WriteLine();

                Console.WriteLine("Association relationships:");
                foreach (NRAssociation nrAssociationRelationship in nrRelationships.Associations)
                {
                    Console.WriteLine(nrAssociationRelationship);
                }
                Console.WriteLine();
            }

            if (statistic)
            {
                statisticFilter = (StatisticFilter)filter;
                Console.WriteLine();
                Console.WriteLine("Statistic:");
                Console.WriteLine("Classes     : {0}/{1}", statisticFilter.ReflectedClasses, statisticFilter.ReflectedClasses + statisticFilter.IgnoredClasses);
                Console.WriteLine("Interfaces  : {0}/{1}", statisticFilter.ReflectedInterfaces, statisticFilter.ReflectedInterfaces + statisticFilter.IgnoredInterfaces);
                Console.WriteLine("Structures  : {0}/{1}", statisticFilter.ReflectedStructures, statisticFilter.ReflectedStructures + statisticFilter.IgnoredStructures);
                Console.WriteLine("Delegates   : {0}/{1}", statisticFilter.ReflectedDelegates, statisticFilter.ReflectedDelegates + statisticFilter.IgnoredDelegates);
                Console.WriteLine("Enums       : {0}/{1}", statisticFilter.ReflectedEnums, statisticFilter.ReflectedEnums + statisticFilter.IgnoredEnums);
                Console.WriteLine("EnumValues  : {0}/{1}", statisticFilter.ReflectedEnumValues, statisticFilter.ReflectedEnumValues + statisticFilter.IgnoredEnumValues);
                Console.WriteLine("Constructors: {0}/{1}", statisticFilter.ReflectedConstructors, statisticFilter.ReflectedConstructors + statisticFilter.IgnoredConstructors);
                Console.WriteLine("Methods     : {0}/{1}", statisticFilter.ReflectedMethods, statisticFilter.ReflectedMethods + statisticFilter.IgnoredMethods);
                Console.WriteLine("Fields      : {0}/{1}", statisticFilter.ReflectedFields, statisticFilter.ReflectedFields + statisticFilter.IgnoredFields);
                Console.WriteLine("Properties  : {0}/{1}", statisticFilter.ReflectedProperties, statisticFilter.ReflectedProperties + statisticFilter.IgnoredProperties);
                Console.WriteLine("Events      : {0}/{1}", statisticFilter.ReflectedEvents, statisticFilter.ReflectedEvents + statisticFilter.IgnoredEvents);
                Console.WriteLine("Operators   : {0}/{1}", statisticFilter.ReflectedOperators, statisticFilter.ReflectedOperators + statisticFilter.IgnoredOperators);
                Console.WriteLine("Attributes  : {0}/{1}", statisticFilter.ReflectedAttributes, statisticFilter.ReflectedAttributes + statisticFilter.IgnoredAttributes);
                Console.WriteLine("Modules     : {0}/{1}", statisticFilter.ReflectedModules, statisticFilter.ReflectedModules + statisticFilter.IgnoredModules);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey(true);
        }