Пример #1
0
        /// <summary>
        /// Validate this object
        /// </summary>
        /// <param name="validationContext"></param>
        /// <returns></returns>
        public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            var    results = new List <ValidationResult>();
            object result  = Resources.GetResourceByName(ResourceName);

            if (result == null)
            {
                string[] memberNames = new string[] { "ResourceTypeName" };
                results.Add(new ValidationResult("Could not find resource " + this.ResourceName + " in transmutation cost", memberNames));
            }
            return(results);
        }
Пример #2
0
        private void OnCommencing(object sender, EventArgs e)
        {
            // sanitise the variable names and remove duplicates
            List <string> variableNames = new List <string>();

            if (VariableNames != null)
            {
                for (int i = 0; i < this.VariableNames.Length; i++)
                {
                    // each variable name is now a ResourceGroup
                    bool isDuplicate = StringUtilities.IndexOfCaseInsensitive(variableNames, this.VariableNames[i].Trim()) != -1;
                    if (!isDuplicate && this.VariableNames[i] != string.Empty)
                    {
                        if (this.VariableNames[i].StartsWith("["))
                        {
                            variableNames.Add(this.VariableNames[i]);
                        }
                        else
                        {
                            // check it is a ResourceGroup
                            CLEMModel model = Resources.GetResourceByName(this.VariableNames[i]) as CLEMModel;
                            if (model == null)
                            {
                                Summary.WriteWarning(this, String.Format("Invalid resource group [{0}] in ReportResourceBalances [{1}]\nEntry has been ignored", this.VariableNames[i], this.Name));
                            }
                            // get all children
                            foreach (CLEMModel item in model.Children)
                            {
                                string amountStr = "Amount";
                                if (item.GetType() == typeof(FinanceType))
                                {
                                    amountStr = "Balance";
                                }
                                variableNames.Add("[Resources]." + this.VariableNames[i] + "." + item.Name + "." + amountStr + " as " + item.Name);
                            }
                        }
                    }
                }
            }
            base.VariableNames = variableNames.ToArray();
            this.FindVariableMembers();

            // Subscribe to events.
            foreach (string eventName in EventNames)
            {
                if (eventName != string.Empty)
                {
                    events.Subscribe(eventName.Trim(), DoOutputEvent);
                }
            }
        }