예제 #1
0
        protected override async Task OnParametersSetAsync()
        {
            await Task.Run(() =>
            {
                this.SelectedItem = null;

                if (this.PopupDisplay == "add")
                {
                    this.SelectedItem = new TemporalObject <T>(new T());
                }
                else if (this.PopupDisplay != null)
                {
                    int showId = 0;
                    if (int.TryParse(this.PopupDisplay, out showId))
                    {
                        T item            = this.ItemList.FirstOrDefault(i => i.Id == showId);
                        this.SelectedItem = new TemporalObject <T>(item);
                    }
                }
            });
        }
예제 #2
0
        public void Persist()
        {
            var schemaUpdate = new SchemaUpdate(_container.Resolve <IConfigurationFactory>().Build());

            schemaUpdate.Execute(
                scriptAction => Trace.WriteLine(scriptAction),
                true);

            var versions = "ABC";

            var temporalObject = new TemporalObject <char>(Guid.NewGuid());
            var charVersions   = versions.Select(
                version => new TemporalObjectVersion <char>(
                    temporalObject,
                    version)).ToList();

            Assert.That(versions.SequenceEqual(temporalObject.Versions.Select(TemporalObjectVersion => TemporalObjectVersion.Object)), Is.True);
            foreach (var index in Enumerable.Range(0, temporalObject.Versions.Count))
            {
                Assert.That(temporalObject.Versions[index].Number, Is.EqualTo(index + 1));
            }

            using (var scope = _container.BeginLifetimeScope())
            {
                var session = scope.Resolve <ISession>();
                session.Save(temporalObject);
                temporalObject.Versions.ForEach(version => session.Save(version));
                session.Flush();
            }

            using (var scope = _container.BeginLifetimeScope())
            {
                var session = scope.Resolve <ISession>();
                temporalObject = session.Get <TemporalObject <char> >(temporalObject.Id);
                Assert.That(temporalObject, Is.Not.Null);
                Assert.That(versions.SequenceEqual(temporalObject.Versions.Select(TemporalObjectVersion => TemporalObjectVersion.Object)), Is.True);
            }
        }