internal async Task <AppVersion> StartNewVersion(AppVersionKey key, App app, DateTimeOffset timeAdded, AppVersionType type) { AppVersionRecord record = null; await factory.DB.Transaction(async() => { record = new AppVersionRecord { VersionKey = new GeneratedKey().Value(), AppID = app.ID.Value, Major = 0, Minor = 0, Patch = 0, TimeAdded = timeAdded, Description = "", Status = AppVersionStatus.Values.New.Value, Type = type.Value }; await factory.DB.Versions.Create(record); if (key.Equals(AppVersionKey.None)) { await factory.DB.Versions.Update(record, r => r.VersionKey = new AppVersionKey(r.ID).Value); } }); return(factory.Version(record)); }
internal async Task <AppVersion> AddVersion(AppVersionKey key, App app, DateTimeOffset timeAdded, AppVersionStatus status, AppVersionType type, Version version) { var record = new AppVersionRecord { VersionKey = key.Value, AppID = app.ID.Value, Major = version.Major, Minor = version.Minor, Patch = version.Build, TimeAdded = timeAdded, Description = "", Status = status.Value, Type = type.Value }; await factory.DB.Versions.Create(record); return(factory.Version(record)); }
internal AppVersion Version(AppVersionRecord record) => new AppVersion(this, record);
internal AppVersion(AppFactory factory, AppVersionRecord record) { this.factory = factory; this.record = record ?? new AppVersionRecord(); ID = new EntityID(this.record.ID); }