예제 #1
0
        public LoggedForkViewModel(Fork model)
        {
            m_model = model;

            //Build View models from the models
            foreach (Fork fork in model.Forks)
            {
                LoggedForkViewModel forkVM = new LoggedForkViewModel(fork);
                Forks.Add(forkVM);
            }
            HasChildrenForks = Forks.Count != 0;
            foreach (ForkValue forkValue in model.Values)
            {
                LoggedForkValueViewModel forkValueVM = new LoggedForkValueViewModel(forkValue, this);
                Values.Add(forkValueVM);
            }
            HasChildrenValues = Values.Count != 0;
        }
        public Resteraunt(int numberOfForkAndKnifePairs)
        {
            Customers = new BufferBlock <Customer>();
            ReadyToGo = new JoinBlock <Fork, Knife, Food>(new GroupingDataflowBlockOptions()
            {
                Greedy = false
            });

            Forks.LinkTo(ReadyToGo.Target1);
            Knife.LinkTo(ReadyToGo.Target2);
            Food.LinkTo(ReadyToGo.Target3);

            for (int i = 0; i < numberOfForkAndKnifePairs; i++)
            {
                forks.Post(new Fork());
                knives.Post(new Knife());
            }
        }
예제 #3
0
        /// <inheritdoc/>
        public override int Deserialize(INTV.Core.Utility.BinaryReader reader)
        {
            var asciiReader = (INTV.Shared.Utility.ASCIIBinaryReader)reader;
            var bytesRead   = Directories.Deserialize(asciiReader);

            bytesRead += Files.Deserialize(asciiReader);
            bytesRead += Forks.Deserialize(asciiReader);

#if FORCE_JLPFLASH_FORKS
            foreach (var file in Files.Where(f => (f != null)))
            {
                var fakeDataFork = new Fork();
                fakeDataFork.Size  = 0x0600;
                fakeDataFork.Crc24 = INTV.Core.Utility.RandomUtilities.Next24();
                Forks.Add(fakeDataFork);
                file.JlpFlash = fakeDataFork;
            }
#endif // FORCE_JLPFLASH_FORKS

            return(bytesRead);
        }
        /// <summary>
        ///     Class constructor.
        /// </summary>
        /// <param name="experiment">The experiment with all the data used in the view model</param>

        public LoggedExperimentViewModel(Experiment experiment)
        {
            m_model = experiment;

            //Create the fork view models from the models
            foreach (Fork fork in experiment.Forks)
            {
                LoggedForkViewModel forkVM = new LoggedForkViewModel(fork);
                Forks.Add(forkVM);
            }
            //Create the experimental unit view models from the models
            foreach (ExperimentalUnit expUnit in experiment.ExperimentalUnits)
            {
                LoggedExperimentalUnitViewModel expUnitVM = new LoggedExperimentalUnitViewModel(expUnit);
                foreach (string variable in expUnitVM.VariablesInLog)
                {
                    AddVariable(variable);
                }
                ExperimentalUnits.Add(expUnitVM);
            }
            //Associate forks and experiment units
            foreach (LoggedExperimentalUnitViewModel expUnit in ExperimentalUnits)
            {
                TraverseAction(false, (node) =>
                {
                    if (node is LoggedForkValueViewModel forkValue)
                    {
                        foreach (string forkName in expUnit.ForkValues.Keys)
                        {
                            if (forkName == forkValue.Parent.Name && expUnit.ForkValues[forkName] == forkValue.Value)
                            {
                                forkValue.ExpUnits.Add(expUnit);
                            }
                        }
                    }
                });
            }
        }
        void ReleaseDesignerOutlets()
        {
            if (MainImage != null)
            {
                MainImage.Dispose();
                MainImage = null;
            }

            if (Name != null)
            {
                Name.Dispose();
                Name = null;
            }

            if (Date != null)
            {
                Date.Dispose();
                Date = null;
            }

            if (Description != null)
            {
                Description.Dispose();
                Description = null;
            }

            if (ForkImage != null)
            {
                ForkImage.Dispose();
                ForkImage = null;
            }

            if (CommentImage != null)
            {
                CommentImage.Dispose();
                CommentImage = null;
            }

            if (StarsImage != null)
            {
                StarsImage.Dispose();
                StarsImage = null;
            }

            if (Forks != null)
            {
                Forks.Dispose();
                Forks = null;
            }

            if (Comments != null)
            {
                Comments.Dispose();
                Comments = null;
            }

            if (Stars != null)
            {
                Stars.Dispose();
                Stars = null;
            }
        }
예제 #6
0
        public Table()
        {
            var names = new[]
            {
                "Aristotle",
                "Socrates",
                "Confucius",
                "Newton",
                "Locke",
                "Kant",
                "Marx",
                "Nietzsche",
                "Darwin",
                "Descartes",
                "Machiavelli",
                "Hobbes",
                "Chomsky"
            };

            Forks = Enumerable.Range(0, names.Length).Select((i) => new Fork()).ToList();

            Waiter = new Waiter();

            Philosophers = new List <Philosopher>();

            for (var i = 0; i < names.Length; i++)
            {
                var nextFork = i + 1;
                if (nextFork == names.Length)
                {
                    nextFork = 0;
                }
                var philosopher = new Philosopher
                {
                    Name          = names[i],
                    LeftFork      = Forks[i],
                    RightFork     = Forks[nextFork],
                    Waiter        = Waiter,
                    ThinkTime     = 0,
                    EatTime       = 0,
                    ThinkVariance = 0,
                    EatVariance   = 0
                };
                Philosophers.Add(philosopher);
            }

            for (var i = 0; i < names.Length; i++)
            {
                var left  = i - 1;
                var right = i + 1;
                if (left == -1)
                {
                    left = names.Length - 1;
                }
                if (right == names.Length)
                {
                    right = 0;
                }
                Philosophers[i].LeftPhilosopher  = Philosophers[left];
                Philosophers[i].RightPhilosopher = Philosophers[right];
            }

            EventManager.Subscribe("Eating", (name) => Console.WriteLine(Forks.Count(f => f.InUse)), false);
        }
예제 #7
0
 public override int GetHashCode()
 {
     unchecked
     {
         return((Url != null ? Url.GetHashCode() : 0) ^ (Id != null ? Id.GetHashCode() : 0) ^ (Description != null ? Description.GetHashCode() : 0) ^ (Public != null ? Public.GetHashCode() : 0) ^ (Owner != null ? Owner.GetHashCode() : 0) ^ (Files != null ? Files.GetHashCode() : 0) ^ (Comments != null ? Comments.GetHashCode() : 0) ^ (CommentsUrl != null ? CommentsUrl.GetHashCode() : 0) ^ (HtmlUrl != null ? HtmlUrl.GetHashCode() : 0) ^ (GitPullUrl != null ? GitPullUrl.GetHashCode() : 0) ^ (GitPushUrl != null ? GitPushUrl.GetHashCode() : 0) ^ (CreatedAt != null ? CreatedAt.GetHashCode() : 0) ^ (UpdatedAt != null ? UpdatedAt.GetHashCode() : 0) ^ (Forks != null ? Forks.GetHashCode() : 0) ^ (History != null ? History.GetHashCode() : 0));
     }
 }
예제 #8
0
 public override int GetHashCode()
 {
     unchecked
     {
         return((Id != null ? Id.GetHashCode() : 0) ^ (Owner != null ? Owner.GetHashCode() : 0) ^ (Name != null ? Name.GetHashCode() : 0) ^ (FullName != null ? FullName.GetHashCode() : 0) ^ (Description != null ? Description.GetHashCode() : 0) ^ (Private != null ? Private.GetHashCode() : 0) ^ (Fork != null ? Fork.GetHashCode() : 0) ^ (Url != null ? Url.GetHashCode() : 0) ^ (Homepage != null ? Homepage.GetHashCode() : 0) ^ (Language != null ? Language.GetHashCode() : 0) ^ (Forks != null ? Forks.GetHashCode() : 0) ^ (ForksCount != null ? ForksCount.GetHashCode() : 0) ^ (Watchers != null ? Watchers.GetHashCode() : 0) ^ (WatchersCount != null ? WatchersCount.GetHashCode() : 0) ^ (SubscribersCount != null ? SubscribersCount.GetHashCode() : 0) ^ (Size != null ? Size.GetHashCode() : 0) ^ (DefaultBranch != null ? DefaultBranch.GetHashCode() : 0) ^ (OpenIssues != null ? OpenIssues.GetHashCode() : 0) ^ (PushedAt != null ? PushedAt.GetHashCode() : 0) ^ (CreatedAt != null ? CreatedAt.GetHashCode() : 0) ^ (UpdatedAt != null ? UpdatedAt.GetHashCode() : 0) ^ (StargazersCount != null ? StargazersCount.GetHashCode() : 0) ^ (Organization != null ? Organization.GetHashCode() : 0) ^ (Source != null ? Source.GetHashCode() : 0) ^ (Parent != null ? Parent.GetHashCode() : 0) ^ (HasIssues != null ? HasIssues.GetHashCode() : 0) ^ (HasWiki != null ? HasWiki.GetHashCode() : 0) ^ (HasDownloads != null ? HasDownloads.GetHashCode() : 0) ^ (HtmlUrl != null ? HtmlUrl.GetHashCode() : 0) ^ (Permissions != null ? Permissions.GetHashCode() : 0));
     }
 }