예제 #1
0
        /// <summary>
        /// This constructor assign SpecCalculator, create Ports, Parameters and Results and call their initialize method
        /// </summary>
        /// <paramCollection name="specCalculator">the specification calculate class</paramCollection>
        /// <paramCollection name="className">name of this unit operation</paramCollection>
        /// <paramCollection name="description">description of this unit operation</paramCollection>
        public CasterUnitOperationBase(Calculator specCalculator, string className, string description)
            : base(className, description, true, true)
        {
            CasterLogger.Debug($"UnitOperation {className} Initializing.");
            Debug.WriteLine($"UnitOperation {className} Initializing.");

            this.SpecCalculator   = specCalculator;
            SpecCalculator.UnitOp = this;
            Isloaded = false;
            UnitId   = Guid.NewGuid().ToString("B");

            Ports = new CapeCollection("Ports",
                                       "In and Out ports of this unit.",
                                       (item) => item is ICapeUnitPort);

            Parameters = new CapeCollection("Parameters",
                                            "User input Parameters of this unit.",
                                            (item) =>
                                            item is ICapeParameter &&
                                            (item as ICapeParameter).Mode != CapeParamMode.CAPE_OUTPUT);

            Results = new CapeCollection("Results",
                                         "Calculate Results, output Parameters.",
                                         (item) =>
                                         item is ICapeParameter &&
                                         (item as ICapeParameter).Mode != CapeParamMode.CAPE_INPUT);

            Reports = new List <ReportBase>();

            CasterLogger.Debug("UnitOperation Initialize Completed.");
            Debug.WriteLine("UnitOperation Initialize Completed.");
        }
        public static void CapeCollectionTest(TestContext context)
        {
            collection = new CapeCollection("collection", "a collection used to test");

            Assert.AreEqual(collection.ComponentName, "collection");
            Assert.AreEqual(collection.ComponentDescription, "a collection used to test");
        }
예제 #3
0
        void CasterFlash_OnGetPorts(CapeCollection ports)
        {
            int emptyPort = 0;

            foreach (var pair in ports)
            {
                if (!pair.Value.ComponentName.StartsWith("feed"))
                {
                    continue;
                }
                CapeMaterialPort port = (CapeMaterialPort)pair.Value;
                if (!port.IsConnected())
                {
                    emptyPort++;
                }
                //if (emptyPort > 1)    //This will cause load fail in Aspen
                //{
                //    Ports.Remove(pair);
                //    emptyPort--;
                //}
            }
            if (emptyPort == 0)
            {
                int i = 0;
                while (ports.Contains("feed-" + i))
                {
                    i++;
                }
                ports.Add(new CapeMaterialPort("feed-" + i, CapePortDirection.CAPE_INLET));
            }
        }
예제 #4
0
        public void GetInstanceTest()
        {
            CapeCollection c1 = new CapeCollection("collection1");

            CasterLocator.Register(c1);
            Assert.AreSame(c1, CasterLocator.GetInstance("collection1"));
        }
예제 #5
0
        public void UnRegisterTest1()
        {
            CapeCollection c1 = new CapeCollection("collection1");

            CasterLocator.Register(c1);
            CasterLocator.UnRegister(c1);
            Assert.AreEqual(0, CasterLocator.Keys.Count());
        }
        public void CloneTest()
        {
            CapeCollection newCollection = collection.Clone() as CapeCollection;

            collection[0].ComponentDescription = "second";
            Assert.AreEqual("", newCollection[0].ComponentDescription);
            collection.Remove("real");
            Assert.AreEqual("real", newCollection[0].ComponentName);
        }
 /// <summary>
 ///
 /// </summary>
 /// <paramCollection name="unit">reference to unit, just to get its name for now</paramCollection>
 /// <paramCollection name="Parameters">Parameters, better be a clone</paramCollection>
 /// <paramCollection name="results">results</paramCollection>
 public ParameterWindow(CasterUnitOperationBase unit, CapeCollection parameters, CapeCollection results)
 {
     InitializeComponent();
     treeViewItem.Header = unit.ComponentName;
     this.ViewModel      = new MainViewModel();
     this.ViewModel.SetBinding(parameters, results);
     this.Paramlst.ItemsSource  = ViewModel.Parameters.ToArray();
     this.Resultlst.ItemsSource = ViewModel.Results;
     treeViewItem.Focus();
 }
예제 #8
0
 public void SetBinding(CapeCollection parameters, CapeCollection results)
 {
     this.Parameters = new ObservableCollection <ParameterModel>();
     this.Results    = new ObservableCollection <ParameterModel>();
     foreach (var parameter in parameters)
     {
         this.Parameters.Add(new ParameterModel(parameter.Value as CapeParameterBase));
     }
     foreach (var result in results)
     {
         this.Results.Add(new ParameterModel(result.Value as CapeParameterBase));
     }
 }