Beispiel #1
0
        /// <summary>
        /// Build a set of all specific results
        /// </summary>
        /// <returns>Set of results</returns>
        public ResultSet BuildAllResults()
        {
            var results = new ResultSet();

            if (!IsValid())
            {
                return(results);
            }

            List <ResultCreator> creators = new List <ResultCreator>();
            ResultParams         parameters;
            ResultID             resultID;

            string[] lcNames  = db.getResultLoadCaseNames();
            string[] scNames  = db.getResultSubCaseNames();
            string[] resNames = db.getResultTypeNames();

            // TODO: Remove nesting and design a normal class of results
            foreach (string lcName in lcNames)
            {
                foreach (string scName in scNames)
                {
                    foreach (string resName in resNames)
                    {
                        resultID            = ResultID.CreateByNames(lcName, scName, resName);
                        parameters.ID       = resultID;
                        parameters.TypeName = "FRPResult";
                        parameters.Data     = db.getResultCopy(lcName, scName, resName);

                        var creator = ResultCreator.GetResultCreatorByParams(parameters);
                        creators.Add(creator);
                    }
                }
            }

            int idx = 0;

            foreach (var creator in creators)
            {
                var result = creator.BuildResult();
                results.Add(idx, result);
                idx++;
            }

            return(results);
        }
Beispiel #2
0
        /// <summary>
        /// Returns the specific creator of the result using the data contained in the passed parameters
        /// </summary>
        /// <param name="parameters">Result parameters</param>
        /// <returns>A specific instance of the result creator</returns>
        public static ResultCreator GetResultCreatorByParams(ResultParams parameters)
        {
            ResultCreator creator = null;
            var           type    = parameters.TypeName;

            // TODO: Hide the implementation of selecting a specific creator, so that the registration of a specific type occurs somewhere in a separate place
            if (type == "FRPResult")
            {
                creator = new ExternalResultCreator(parameters);
            }
            else
            {
                throw new ArgumentOutOfRangeException("Unknown type of result");
            }

            // TODO: Insert new type of results

            return(creator);
        }