private List <AgentArchetypeVariable> ReadAgentArchetypeVariables()
        {
            SkipUntilConfiguration("AgentArchetypeVariables");
            var variableName  = new InputVar <string>("VariableName");
            var archetypeName = new InputVar <string>("ArchetypeName");
            var variableType  = new InputVar <string>("VariableType");
            var variableValue = new InputVar <string>("VariableValue");

            var agentArchetypeVariables = new List <AgentArchetypeVariable>();

            while (!CurrentName.Equals("AgentGoalAttributes"))
            {
                var currentLine            = new StringReader(CurrentLine);
                var agentArchetypeVariable = new AgentArchetypeVariable();

                // 2021-01-21 Archetype name must come first
                ReadValue(archetypeName, currentLine);
                agentArchetypeVariable.ArchetypeName = archetypeName.Value;

                ReadValue(variableName, currentLine);
                agentArchetypeVariable.VariableName = variableName.Value;

                ReadValue(variableType, currentLine);
                agentArchetypeVariable.VariableType = variableType.Value;

                ReadValue(variableValue, currentLine);
                agentArchetypeVariable.VariableValue = variableValue.Value;

                agentArchetypeVariables.Add(agentArchetypeVariable);
                GetNextLine();
            }
            return(agentArchetypeVariables);
        }
        private List <AgentArchetype> ReadAgentArchetypes()
        {
            SkipUntilConfiguration("AgentArchetypeAttributes");
            var archetypeName           = new InputVar <string>("ArchetypeName");
            var archetypePrefix         = new InputVar <string>("ArchetypePrefix");
            var dataSetOriented         = new InputVar <bool>("DataSetOriented");
            var goalImportanceAdjusting = new InputVar <bool>("GoalImportanceAdjusting");

            var agentArchetypes = new List <AgentArchetype>();

            while (!CurrentName.Equals("AgentArchetypeVariables"))
            {
                var currentLine    = new StringReader(CurrentLine);
                var agentArchetype = new AgentArchetype();

                ReadValue(archetypeName, currentLine);
                agentArchetype.ArchetypeName = archetypeName.Value;

                ReadValue(archetypePrefix, currentLine);
                agentArchetype.ArchetypePrefix = archetypePrefix.Value;

                ReadValue(dataSetOriented, currentLine);
                agentArchetype.DataSetOriented = dataSetOriented.Value;

                ReadValue(goalImportanceAdjusting, currentLine);
                agentArchetype.GoalImportanceAdjusting = goalImportanceAdjusting.Value;

                agentArchetypes.Add(agentArchetype);
                GetNextLine();
            }
            return(agentArchetypes);
        }
Пример #3
0
        private void CheckPropertyFlattening(IEnumerable <PropertyInfo> sourceProperties, PropertyInfo targetProperty)
        {
            var stack = new Stack <(IEnumerable <PropertyInfo>, string, Expression)>();

            stack.Push((sourceProperties, targetProperty.Name, SourceParameter));

            while (stack.Any())
            {
                var(SourceProperties, CurrentName, PropertyChain) = stack.Pop();

                if (SourceProperties.Any(p => p.Name == CurrentName))
                {
                    var sourceProperty = SourceProperties.FirstOrDefault(p => p.Name == CurrentName && p.PropertyType == targetProperty.PropertyType);
                    if (sourceProperty != null)
                    {
                        Bindings.Add(new MemberBinding
                        {
                            SourceExpression = Expression.Property(PropertyChain, sourceProperty),
                            TargetMember     = targetProperty
                        });
                    }
                }
                else if (SourceProperties.Any(p => CurrentName.StartsWith(p.Name)))
                {
                    foreach (var property in SourceProperties.Where(p => CurrentName.StartsWith(p.Name)))
                    {
                        var newName = CurrentName.Substring(property.Name.Length);
                        stack.Push((property.PropertyType.GetProperties(), newName, Expression.Property(PropertyChain, property)));
                    }
                }
            }
        }
Пример #4
0
        protected void UpdateCurrentSerializer(string name = null)
        {
            var fullName = String.Join(".", CurrentName.Append(name).Where(x => !String.IsNullOrWhiteSpace(x)));
            var s        = ShouldWriteFunc(fullName) ? Serializer : Deserializer;

            if (CurrentSerializer != s)
            {
                Debug.Log(fullName + " - " + s);
                SwitchSerializer(s);
            }
        }
        public ClientNamesSummaryViewModel(DebtorDetailsResponse debtorDetails)
        {
            CurrentName.FirstName  = debtorDetails.FirstName;
            CurrentName.MiddleName = debtorDetails.MiddleName;
            CurrentName.LastName   = debtorDetails.LastName;
            CurrentNameDisplay     = CurrentName.GetFullName();

            if (debtorDetails.PreviousNames != null && debtorDetails.PreviousNames.Any())
            {
                PreviousNames = debtorDetails.PreviousNames.Select(x => new ClientName
                {
                    FirstName  = x.FirstName,
                    MiddleName = x.MiddleName,
                    LastName   = x.LastName,
                    NameId     = x.Id
                });

                PreviousNamesDisplay = PreviousNames.Select(x => x.GetFullName());
            }
        }
Пример #6
0
        protected override SheParameters Parse()
        {
            ReadLandisDataVar();

            var sheParameters = new SheParameters();

            // Note: Default mode 2 is already set in the SheParameters constructor
            // Debugger.Launch();
            if (CurrentName.Equals("Mode"))
            {
                sheParameters.Modes = ParseModes();
            }

            const string kTimeStep    = "Timestep";
            var          continueLoop = true;

            while (continueLoop && !string.IsNullOrEmpty(CurrentName))
            {
                // Debugger.Launch();

                switch (CurrentName)
                {
                case "Mode1SpeciesBiomassLogFile":
                case "Mode2SpeciesBiomassLogFile":
                case "Mode3SpeciesBiomassLogFile":
                {
                    var savedCurrentName          = CurrentName;
                    var modeSpeciesBiomassLogFile = new InputVar <string>(CurrentName);
                    ReadVar(modeSpeciesBiomassLogFile);
                    var mode = int.Parse(savedCurrentName.Substring(4, 1));
                    sheParameters.ModeSpecificBiomassLogFiles[mode] = modeSpeciesBiomassLogFile.Value;
                    break;
                }

                case "GenerateSpeciesBiomassForManagementAreas":
                {
                    var generateSpeciesBiomassForManagementAreas = new InputVar <string>(CurrentName);
                    ReadVar(generateSpeciesBiomassForManagementAreas);
                    if (generateSpeciesBiomassForManagementAreas.Value == "all")
                    {
                        sheParameters.GenerateSpeciesBiomassForAllManagementAreas = true;
                    }
                    else if (generateSpeciesBiomassForManagementAreas.Value == "none")
                    {
                        // do not do anything here
                    }
                    else
                    {
                        foreach (
                            var managementAreaMapCode in
                            generateSpeciesBiomassForManagementAreas.Value.String.Split(',')
                            .Select(s => uint.Parse(s))
                            )
                        {
                            sheParameters.ManagementAreasToGenerateSpeciesBiomassFor.Add(managementAreaMapCode);
                        }
                    }
                    break;
                }

                default:
                {
                    continueLoop = false;
                    break;
                }
                }
            }

            if (!CurrentName.Equals(kTimeStep))
            {
                throw new Exception($"Invalid parameter: expecting ${kTimeStep}, but received {CurrentName}");
            }

            var timestep = new InputVar <int>(kTimeStep);

            ReadVar(timestep);
            sheParameters.Timestep = timestep.Value;

            var moduleName             = new InputVar <string>("ModuleName");
            var initializationFileName = new InputVar <string>("InitializationFileName");

            while (!CurrentName.Equals("DecisionOptions") && !CurrentName.Equals("AgentToManagementArea"))
            {
                var currentLine = new StringReader(CurrentLine);

                ReadValue(moduleName, currentLine);
                ReadValue(initializationFileName, currentLine);

                switch (moduleName.Value)
                {
                case "SOSIEL Harvest":
                    sheParameters.SosielInitializationFileName = initializationFileName.Value;
                    break;

                case "Biomass Harvest":
                    sheParameters.BiomassHarvestInitializationFileName = initializationFileName.Value;
                    break;

                case "ManagementAreas":
                    sheParameters.ManagementAreaFileName = initializationFileName.Value;
                    break;

                case "Stands":
                    sheParameters.StandsFileName = initializationFileName.Value;
                    break;
                }

                GetNextLine();
            }

            if (CurrentName.Equals("DecisionOptions"))
            {
                sheParameters.Prescriptions = ParsePrescriptions();
            }

            if (CurrentName.Equals("AgentToManagementArea"))
            {
                sheParameters.AgentToManagementAreaList = ParseAgentToManagementAreaList(sheParameters.Modes);
            }

            return(sheParameters);
        }
Пример #7
0
        public string[,] GetValuefromZeichnugsNrDB(List <string> Eingang)
        {
            // string[,] rueckgabe = new string[20, 50];

            List <string> DatabaseColums = GetColumsFromTable("TableauInformation");

            string[,] rueckgabe = new string[Eingang.Count, DatabaseColums.Count + 1];

            int i = 0;

            foreach (string CurrentName in Eingang)
            {
                rueckgabe[i, 0] = CurrentName;
                //int j = 0;
                // foreach (string CurrentColum in DatabaseColums)
                {
                    startConnection();

                    string SelecName = CurrentName.Replace("_", "");

                    string select = "select * from TableauInformation where TableauName like '" + SelecName + "'";

                    try
                    {
                        SQLiteCommand command = new SQLiteCommand(_connection);

                        command.CommandText = select;

                        SQLiteDataReader reader = command.ExecuteReader();

                        while (reader.Read())
                        {
                            for (int j = 0; j < DatabaseColums.Count; j++)
                            {
                                rueckgabe[i, j + 1] = (reader[j].ToString());
                            }
                        }

                        // Beenden des Readers und Freigabe aller Ressourcen.
                        reader.Close();

                        reader.Dispose();

                        command.Dispose();
                    }
                    catch (SqlException e)
                    {
                        // MessageBox.Show(e.Message);
                    }

                    _connection.Close();
                    _connection.Dispose();

                    // j++;
                }

                i++;
            }



            return(rueckgabe);
        }
Пример #8
0
 public void UpdateNameBySimpleReplace(string searchString, string replaceString, bool ignoreCase)
 {
     CurrentName = CurrentName.Replace(searchString, replaceString, ignoreCase, CultureInfo.CurrentCulture);
     _isMatch    = false;
 }