/// <summary> /// upload the Live2D model to server /// </summary> /// <param name="filepath">Current live2D model.json file</param> public async Task UploadLive2D(string filepath) { var fileType = new MetadataChange(); //setup compressor ModelCompressor comp = new ModelCompressor(); string data = null; await Task.Run(() => { data = comp.CompressAsync(filepath).Result; }); StorageReference moc3Path = Storage_ref.Child("VRP/" + CurrentUser.UserId + "/Live2D/" + Path.GetFileNameWithoutExtension(filepath) + "_model.json"); isUploading = true; fileType.ContentType = "application/json"; await moc3Path.PutBytesAsync(System.Text.Encoding.UTF8.GetBytes(data), fileType).ContinueWith((Task <StorageMetadata> task) => { Debug.Log("start uploading"); if (task.IsFaulted || task.IsCanceled) { Debug.Log(task.Exception.ToString()); // Uh-oh, an error occurred! isUploading = false; } else { metadata = task.Result; Debug.Log("Finished uploading..."); } isUploading = false; }); }
/// <summary> /// Moad model information from de compressed data /// </summary> /// <param name="data">Compressed byte data</param> public void LoadModelFromCompressor(byte[] data) { //set compressor var compressor = new ModelCompressor(); var modelData = new CompressedLive2D(compressor.DeCompress(Encoding.UTF8.GetString(data))); if (modelData != null) { //Load models ToModel(modelData); } }
/// <summary> /// Moad model information from de compressed data /// </summary> /// <param name="data">Compressed data</param> public void LoadModelFromCompressor(string data) { //set compressor var compressor = new ModelCompressor(); var modelData = new CompressedLive2D(compressor.DeCompress(data)); if (modelData != null) { //Load models ToModel(modelData); } }
internal override void ApplyMigration(DbMigration migration, DbMigration lastMigration) { DebugCheck.NotNull(migration); var migrationMetadata = (IMigrationMetadata)migration; var compressor = new ModelCompressor(); var lastModel = GetLastModel(lastMigration, migrationMetadata.Id); var targetModel = compressor.Decompress(Convert.FromBase64String(migrationMetadata.Target)); if (migrationMetadata.Source != null) { var sourceModel = compressor.Decompress(Convert.FromBase64String(migrationMetadata.Source)); if (IsModelOutOfDate(sourceModel, lastMigration)) { base.AutoMigrate( migrationMetadata.Id.ToAutomaticMigrationId(), lastModel, sourceModel, downgrading: false); lastModel = sourceModel; } } var migrationSchema = GetDefaultSchema(migration); var historyModel = GetHistoryModel(migrationSchema); var systemOperations = Enumerable.Empty <MigrationOperation>(); if (ReferenceEquals(lastModel, _emptyModel.Value) && !base.HistoryExists()) { systemOperations = _modelDiffer.Diff(lastModel, historyModel); } else { var lastMigrationSchema = GetLastDefaultSchema(migrationMetadata.Id); if (!string.Equals(lastMigrationSchema, migrationSchema, StringComparison.Ordinal)) { var lastHistoryModel = GetHistoryModel(lastMigrationSchema); systemOperations = _modelDiffer.Diff(lastHistoryModel, historyModel); } } migration.Up(); ExecuteOperations(migrationMetadata.Id, targetModel, migration.Operations, systemOperations, false); }
private IEnumerable <string> GetHistorySchemas() { var modelCompressor = new ModelCompressor(); return (from migrationId in _migrationAssembly.MigrationIds let migrationMetadata = (IMigrationMetadata)_migrationAssembly.GetMigration(migrationId) from entitySet in modelCompressor .Decompress(Convert.FromBase64String(migrationMetadata.Target)) .Descendants(EdmXNames.Ssdl.EntitySetNames) where entitySet.IsSystem() select entitySet.SchemaAttribute()); }
internal ScaffoldedMigration Scaffold(string migrationName, string @namespace, bool ignoreChanges) { XDocument sourceModel = null; CheckLegacyCompatibility(() => sourceModel = _currentModel); string sourceMigrationId = null; sourceModel = sourceModel ?? (_historyRepository.GetLastModel(out sourceMigrationId) ?? _emptyModel.Value); var modelCompressor = new ModelCompressor(); var migrationOperations = ignoreChanges ? Enumerable.Empty <MigrationOperation>() : _modelDiffer.Diff(sourceModel, _currentModel, false) .ToList(); string migrationId; if (migrationName.IsValidMigrationId()) { migrationId = migrationName; migrationName = migrationName.MigrationName(); } else { migrationName = _migrationAssembly.UniquifyName(migrationName); migrationId = MigrationAssembly.CreateMigrationId(migrationName); } var generatedMigration = _configuration.CodeGenerator.Generate( migrationId, migrationOperations, (sourceModel == _emptyModel.Value) || (sourceModel == _currentModel) || !sourceMigrationId.IsAutomaticMigration() ? null : Convert.ToBase64String(modelCompressor.Compress(sourceModel)), Convert.ToBase64String(modelCompressor.Compress(_currentModel)), @namespace, migrationName); generatedMigration.MigrationId = migrationId; generatedMigration.Directory = _configuration.MigrationsDirectory; return(generatedMigration); }
internal override void ApplyMigration(DbMigration migration, DbMigration lastMigration) { var migrationMetadata = (IMigrationMetadata)migration; var compressor = new ModelCompressor(); var lastModel = GetLastModel(lastMigration, migrationMetadata.Id); var targetModel = compressor.Decompress(Convert.FromBase64String(migrationMetadata.Target)); if (migrationMetadata.Source != null) { var sourceModel = compressor.Decompress(Convert.FromBase64String(migrationMetadata.Source)); if (IsModelOutOfDate(sourceModel, lastMigration)) { base.AutoMigrate( migrationMetadata.Id.ToAutomaticMigrationId(), lastModel, sourceModel, downgrading: false); lastModel = sourceModel; } } bool?includeSystemOps = null; var isFirstMigration = ReferenceEquals(lastModel, _emptyModel.Value); if (isFirstMigration && !_historyRepository.IsShared()) { includeSystemOps = true; if (!targetModel.HasSystemOperations()) { // upgrade scenario, inject the history model AttachHistoryModel(targetModel); } } var systemOperations = _modelDiffer.Diff(lastModel, targetModel, includeSystemOps) .Where(o => o.IsSystem); migration.Up(); ExecuteOperations(migrationMetadata.Id, targetModel, migration.Operations.Concat(systemOperations), false); }
public DbMigrator CreateMigrator <TContext>(DbMigration migration) where TContext : DbContext { var modelCompressor = new ModelCompressor(); var generatedMigration = CodeGenerator .Generate( UtcNowGenerator.UtcNowAsMigrationIdTimestamp() + "_" + migration.GetType().Name, migration.GetOperations(), Convert.ToBase64String(modelCompressor.Compress(CreateContext <TContext>().GetModel())), Convert.ToBase64String(modelCompressor.Compress(CreateContext <TContext>().GetModel())), "System.Data.Entity.Migrations", migration.GetType().Name); return(new DbMigrator(CreateMigrationsConfiguration <TContext>(scaffoldedMigrations: generatedMigration))); }
internal ScaffoldedMigration Scaffold( string migrationName, string @namespace, bool ignoreChanges) { string migrationId1 = (string)null; bool flag = false; List <string> list = this.GetPendingMigrations().ToList <string>(); if (list.Any <string>()) { string str = list.Last <string>(); if (!str.EqualsIgnoreCase(migrationName) && !str.MigrationName().EqualsIgnoreCase(migrationName)) { throw Error.MigrationsPendingException((object)list.Join <string>((Func <string, string>)null, ", ")); } flag = true; migrationId1 = str; migrationName = str.MigrationName(); } XDocument sourceModel = (XDocument)null; this.CheckLegacyCompatibility((Action)(() => sourceModel = this._currentModel)); string migrationId2 = (string)null; string productVersion = (string)null; sourceModel = sourceModel ?? this._historyRepository.GetLastModel(out migrationId2, out productVersion, (string)null) ?? this._emptyModel.Value; IEnumerable <MigrationOperation> operations = ignoreChanges ? Enumerable.Empty <MigrationOperation>() : (IEnumerable <MigrationOperation>) this._modelDiffer.Diff(sourceModel, this._currentModel, this._modificationCommandTreeGenerator, this.SqlGenerator, productVersion, (string)null).ToList <MigrationOperation>(); if (!flag) { migrationName = this._migrationAssembly.UniquifyName(migrationName); migrationId1 = MigrationAssembly.CreateMigrationId(migrationName); } ModelCompressor modelCompressor = new ModelCompressor(); ScaffoldedMigration scaffoldedMigration = this._configuration.CodeGenerator.Generate(migrationId1, operations, sourceModel == this._emptyModel.Value || sourceModel == this._currentModel || !migrationId2.IsAutomaticMigration() ? (string)null : Convert.ToBase64String(modelCompressor.Compress(sourceModel)), Convert.ToBase64String(modelCompressor.Compress(this._currentModel)), @namespace, migrationName); scaffoldedMigration.MigrationId = migrationId1; scaffoldedMigration.Directory = this._configuration.MigrationsDirectory; scaffoldedMigration.IsRescaffold = flag; scaffoldedMigration.Resources.Add("DefaultSchema", (object)this._defaultSchema); return(scaffoldedMigration); }
internal ScaffoldedMigration Scaffold(string migrationName, string @namespace, bool ignoreChanges) { string migrationId = null; var rescaffolding = false; var pendingMigrations = GetPendingMigrations().ToList(); if (pendingMigrations.Any()) { var lastMigration = pendingMigrations.Last(); if (!lastMigration.EqualsIgnoreCase(migrationName) && !lastMigration.MigrationName().EqualsIgnoreCase(migrationName)) { throw Error.MigrationsPendingException(pendingMigrations.Join()); } rescaffolding = true; migrationId = lastMigration; migrationName = lastMigration.MigrationName(); } XDocument sourceModel = null; CheckLegacyCompatibility(() => sourceModel = _currentModel); string sourceMigrationId = null; sourceModel = sourceModel ?? (_historyRepository.GetLastModel(out sourceMigrationId) ?? _emptyModel.Value); var modelCompressor = new ModelCompressor(); var migrationOperations = ignoreChanges ? Enumerable.Empty <MigrationOperation>() : _modelDiffer.Diff(sourceModel, _currentModel, _modificationCommandTreeGenerator, SqlGenerator) .ToList(); if (!rescaffolding) { migrationName = _migrationAssembly.UniquifyName(migrationName); migrationId = MigrationAssembly.CreateMigrationId(migrationName); } var scaffoldedMigration = _configuration.CodeGenerator.Generate( migrationId, migrationOperations, (sourceModel == _emptyModel.Value) || (sourceModel == _currentModel) || !sourceMigrationId.IsAutomaticMigration() ? null : Convert.ToBase64String(modelCompressor.Compress(sourceModel)), Convert.ToBase64String(modelCompressor.Compress(_currentModel)), @namespace, migrationName); scaffoldedMigration.MigrationId = migrationId; scaffoldedMigration.Directory = _configuration.MigrationsDirectory; scaffoldedMigration.IsRescaffold = rescaffolding; scaffoldedMigration.Resources.Add(DefaultSchemaResourceKey, _defaultSchema); return(scaffoldedMigration); }