private void LoadSimulationCommandExecute(object obj)
        {
            var dialog = new OpenFileDialog()
            {
                DefaultExt = ".xml",
                Filter     = "XML Files (.xml)|*.xml"
            };

            if (dialog.ShowDialog() != true)
            {
                return;
            }

            ChunkControls.Clear();
            xmlPath = dialog.FileName;

            var xml = File.ReadAllText(xmlPath);

            ParserResult = simulationCaseParser.Parse(xml);

            SimulationName = ParserResult.Name;

            foreach (var chunk in ParserResult.Chunks)
            {
                var chunkVm = new ChunkControlViewModel(this);

                foreach (var tEvent in chunk.GetEvents())
                {
                    //    var actor = ParserResult.Actors.Find(x => x.Id == tEvent.RaisedByActorId);
                    //   var role = GetActorRole(actor.ActorKindId);
                    //  var actorVm = new ActorViewModel(actor.Id,actor.FullName,role.Name, role.Id);

                    var tInstance = ParserResult.ProcessInstance.GetTransactionById(tEvent.TransactionInstanceId);
                    //    var tKind = ProcessKind.GetTransactionById(tInstance.TransactionKindId);

                    var eventVm = new EventControlViewModel(chunkVm)
                    {
                        CreationTime       = tEvent.Created.ToString(XmlParsersConfig.DateTimeFormat),
                        SelectedCompletion = tEvent.Completion
                    };


                    //  eventVm.SelectedTransactionInstance = new TransactionViewModel(tInstance, tKind.Name);
                    eventVm.SetSelectedTransactionInstance(tInstance.Id);
                    eventVm.SetSelectedActor(tEvent.RaisedByActorId);

                    chunkVm.Events.Add(new EventControl(eventVm));
                }

                ChunkControls.Add(new ChunkControl(chunkVm));
            }
        }
        public EventControlViewModel(ChunkControlViewModel chunkControlViewModel)
        {
            this.chunkControlViewModel = chunkControlViewModel;

            RemoveMeCommand = new Command(RemoveMeCommandExecute);

            //  TransactionEventTypes = new List<TransactionEventType>(Enum.GetValues(typeof(TransactionEventType)).Cast<TransactionEventType>());
            TransactionCompletions = new List <TransactionCompletion>(Enum.GetValues(typeof(TransactionCompletion)).Cast <TransactionCompletion>());

            Actors = new ObservableCollection <ActorViewModel>();

            foreach (var actor in MainPageViewModel.ParserResult.Actors)
            {
                var role = MainPageViewModel.GetActorRole(actor.ActorKindId);
                Actors.Add(new ActorViewModel(actor.Id, actor.FullName, role.Name, role.Id));
            }

            TransactionInstances = new ObservableCollection <TransactionViewModel>();

            foreach (var instance in MainPageViewModel.ParserResult.ProcessInstance.GetTransactions())
            {
                var kind = MainPageViewModel.ProcessKind.GetTransactionById(instance.TransactionKindId);
                var vm   = new TransactionViewModel(instance, kind.Name);
                TransactionInstances.Add(vm);

                TreeStructureHelper.Traverse(instance, TransactionInstances, (i, list) =>
                {
                    var tKind = MainPageViewModel.ProcessKind.GetTransactionById(i.TransactionKindId);
                    list.Add(new TransactionViewModel(i, tKind.Name));
                });
            }

            var lastChunk = MainPageViewModel.SecondLastChunk();

            if (this.chunkControlViewModel.Events.Count > 1)
            {
                CreationTime =
                    ((EventControlViewModel)chunkControlViewModel.Events[chunkControlViewModel.Events.Count - 2]
                     .DataContext).CreationTime;
            }
            else if (lastChunk != null && lastChunk.Events.Count > 0)
            {
                CreationTime = ((EventControlViewModel)(lastChunk.Events[lastChunk.Events.Count - 1]
                                                        .DataContext)).CreationTime;
            }
            else
            {
                CreationTime = "01-02-2018 15:34:23";
            }
        }