public override Phases[] GetListOfPresentPhases(out eCapePhaseStatus[] presentPhaseStatus) { CasterLogger.Debug("GetListOfPresentPhases"); object phaseLabel = null; object phaseStatus = null; presentPhaseStatus = null; if (_capeThermoMaterial == null) { return(null); } _capeThermoMaterial.GetPresentPhases(ref phaseLabel, ref phaseStatus); string[] status = phaseStatus as string[]; if (status != null) { presentPhaseStatus = new eCapePhaseStatus[status.Length]; for (int i = 0; i < status.Length; i++) { eCapePhaseStatus s; if (Enum.TryParse(status[i], out s)) { presentPhaseStatus[i] = s; } } } string[] phaseStringList = phaseLabel as string[]; Phases[] phaseList = (from phaseString in phaseStringList select new Phases(phaseString)).ToArray(); var phases = string.Join(", ", phaseList.Select(p => p.Value).ToArray()); CasterLogger.Debug("Material present phases: " + phases); return(phaseList); }
public void GetPresentPhases(ref object phaseLabels, ref object phaseStatus) { string[] phasenames = Enum.GetNames(typeof(Phases)); phaseLabels = phasenames; eCapePhaseStatus[] stats = new eCapePhaseStatus[phasenames.Length]; for (int i = 0; i < phasenames.Length; i++) { if (_propVals.ContainsKey(phasenames[i])) { stats[i] = (eCapePhaseStatus)_propVals[phasenames[i]]; } else { stats[i] = eCapePhaseStatus.CAPE_UNKNOWNPHASESTATUS; _propVals.Add(phasenames[i], stats[i]); } } phaseStatus = stats; }