Skip to content
Snippets Groups Projects
Commit f3c0cc77 authored by Janis Daniel Dähne's avatar Janis Daniel Dähne
Browse files

- commented out migration code

parent a6c608c0
No related branches found
No related tags found
Loading
......@@ -312,666 +312,666 @@ namespace ClientServer.Controllers.Core
}
[HttpGet("migrate/markdown")]
public void MigrateMarkdownFiles()
{
var basePath = Files.GetUploadFilePath(UploadDirType.MarkdownAssets);
var exDescriptions = _context.ExerciseDescriptions
.Include(p => p.Assets)
.Where(p => p.Assets.Count > 0)
.ToList()
;
int count = 0;
foreach (var exerciseDescription in exDescriptions)
{
foreach (var descriptionAsset in exerciseDescription.Assets)
{
//create the real file
try
{
using (var transaction = _context.Database.BeginTransaction())
{
try
{
var fileRef = new FileReferenceMarkdownAsset()
{
OriginalName = descriptionAsset.DisplayName,
CreatedAt = (DateTime) _context.Entry(descriptionAsset)
.Property(YapexDbContext.CreatedAt)
.CurrentValue,
LastUpdatedAt = (DateTime) _context.Entry(descriptionAsset)
.Property(YapexDbContext.LastUpdatedAt).CurrentValue,
MimeType = descriptionAsset.MimeType,
SizeInBytes = descriptionAsset.Content.Length,
Hash = "",
};
var conn = new ExerciseDescriptionWithFileAsAssetReference()
{
ExerciseDescription = exerciseDescription,
FileReferenceMarkdownAsset = fileRef
};
_context.ExerciseDescriptionWithFileAsAssetReferences.Add(conn);
_context.SaveChanges();
if (fileRef.Id <= 0)
{
throw new Exception("fileRef must be tracked in db context");
}
try
{
var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
if (info.Exists)
{
throw new Exception("file already exists");
}
using (var stream = new FileStream(info.FullName, FileMode.Create))
{
stream.Write(descriptionAsset.Content, 0, descriptionAsset.Content.Length);
using (var md5 = MD5.Create())
{
var result = md5.ComputeHash(descriptionAsset.Content);
fileRef.Hash = String.Join(String.Empty,
result.Select(p => p.ToString("x2")));
}
}
}
catch (Exception e)
{
Console.WriteLine(
$"[ERROR] error creating file name: {descriptionAsset.DisplayName}");
Console.WriteLine(e.Message);
throw;
}
_context.SaveChanges();
transaction.Commit();
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e);
throw;
}
}
count++;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
Response.WriteAsync("OK -" + count);
}
[HttpGet("migrate/ex/markdown")]
public void MigrateMarkdownExerciseDescriptionContent()
{
var allDescriptions = _context.ExerciseDescriptions
.Include(p => p.AssetReferences)
.ThenInclude(p => p.FileReferenceMarkdownAsset)
.Include(p => p.Assets)
.ToList();
int count = 0;
int count2 = 0;
using (var transaction = _context.Database.BeginTransaction())
{
try
{
foreach (var exerciseDescription in allDescriptions)
{
if (exerciseDescription.Content.Contains(Constants.MarkdownAssetFileUrlPrefix))
{
foreach (var asset in exerciseDescription.Assets)
{
//find asset ref
var assetRef = exerciseDescription.AssetReferences.FirstOrDefault(p =>
p.FileReferenceMarkdownAsset.OriginalName == asset.DisplayName &&
p.FileReferenceMarkdownAsset.SizeInBytes == asset.Content.Length);
if (assetRef == null)
{
throw new Exception($"could not find asset ref for asset id {asset.Id} for ex desc {exerciseDescription.Id}");
}
exerciseDescription.Content = exerciseDescription.Content.Replace(asset.AssetUrl,
Constants.MarkdownAssetFileUrlPrefix + assetRef.FileReferenceMarkdownAssetId);
count2++;
}
count++;
}
}
_context.SaveChanges();
transaction.Commit();
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e);
throw;
}
}
Response.WriteAsync($"OK - {count} - ${count2}");
}
[HttpGet("migrate/tests")]
public void MigrateTestFiles()
{
var basePath = Files.GetUploadFilePath(UploadDirType.TestAssets);
var testsWithAssets = _context.Tests
.Include(p => p.TestAssets)
.Where(p => p.TestAssets.Count > 0)
.ToList()
;
int count = 0;
foreach (var testWithAsset in testsWithAssets)
{
foreach (var testAsset in testWithAsset.TestAssets)
{
//create the real file
try
{
using (var transaction = _context.Database.BeginTransaction())
{
try
{
var fileRef = new FileReferenceTestAsset()
{
OriginalName = testAsset.DisplayName,
CreatedAt = (DateTime) _context.Entry(testAsset)
.Property(YapexDbContext.CreatedAt)
.CurrentValue,
LastUpdatedAt = (DateTime) _context.Entry(testAsset)
.Property(YapexDbContext.LastUpdatedAt).CurrentValue,
MimeType = testAsset.MimeType,
SizeInBytes = testAsset.Content.Length,
Hash = "",
};
var conn = new TestWithFileAsAssetReference()
{
Test = testWithAsset,
FileReferenceTestAsset = fileRef
};
_context.TestWithFileAsAssetReferences.Add(conn);
_context.SaveChanges();
if (fileRef.Id <= 0)
{
throw new Exception("fileRef must be tracked in db context");
}
try
{
var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
if (info.Exists)
{
throw new Exception($"file already exists: {info.FullName}");
}
using (var stream = new FileStream(info.FullName, FileMode.Create))
{
stream.Write(testAsset.Content, 0, testAsset.Content.Length);
using (var md5 = MD5.Create())
{
var result = md5.ComputeHash(testAsset.Content);
fileRef.Hash = String.Join(String.Empty,
result.Select(p => p.ToString("x2")));
}
}
}
catch (Exception e)
{
Console.WriteLine(
$"[ERROR] error creating file name: {testAsset.DisplayName}");
Console.WriteLine(e.Message);
throw;
}
_context.SaveChanges();
transaction.Commit();
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e);
throw;
}
}
count++;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
Response.WriteAsync("OK -" + count);
}
[HttpGet("migrate/custom/tests")]
public void MigrateCustomTestAssets()
{
var basePath = Files.GetUploadFilePath(UploadDirType.UserAssets);
var testsWithAssets = _context.CustomTest
.Include(p => p.TestAssets)
.Where(p => p.TestAssets.Count > 0)
.ToList()
;
int count = 0;
foreach (var customTest in testsWithAssets)
{
foreach (var customTestAsset in customTest.TestAssets)
{
//create the real file
try
{
using (var transaction = _context.Database.BeginTransaction())
{
try
{
var fileRef = new FileReferenceUserFileAsset()
{
OriginalName = customTestAsset.DisplayName,
CreatedAt = (DateTime) _context.Entry(customTestAsset)
.Property(YapexDbContext.CreatedAt)
.CurrentValue,
LastUpdatedAt = (DateTime) _context.Entry(customTestAsset)
.Property(YapexDbContext.LastUpdatedAt).CurrentValue,
MimeType = customTestAsset.MimeType,
SizeInBytes = customTestAsset.Content.Length,
Hash = "",
};
var conn = new CustomTestWithFileAsAssetReference()
{
CustomTest = customTest,
FileReferenceUserFileAsset = fileRef
};
_context.CustomTestWithFileAsAssetReferences.Add(conn);
_context.SaveChanges();
if (fileRef.Id <= 0)
{
throw new Exception("fileRef must be tracked in db context");
}
try
{
var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
if (info.Exists)
{
throw new Exception($"file already exists: {info.FullName}");
}
using (var stream = new FileStream(info.FullName, FileMode.Create))
{
stream.Write(customTestAsset.Content, 0, customTestAsset.Content.Length);
using (var md5 = MD5.Create())
{
var result = md5.ComputeHash(customTestAsset.Content);
fileRef.Hash = String.Join(String.Empty,
result.Select(p => p.ToString("x2")));
}
}
}
catch (Exception e)
{
Console.WriteLine(
$"[ERROR] error creating file name: {customTestAsset.DisplayName}");
Console.WriteLine(e.Message);
throw;
}
_context.SaveChanges();
transaction.Commit();
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e);
throw;
}
}
count++;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
Response.WriteAsync("OK -" + count);
}
[HttpGet("migrate/custom/project/description")]
public void MigrateCustomProjectDescriptionAssets()
{
var basePath = Files.GetUploadFilePath(UploadDirType.UserAssets);
var customProjectDescriptions = _context.CustomProjectDescriptions
.Include(p => p.Assets)
.Where(p => p.Assets.Count > 0)
.ToList()
;
int count = 0;
foreach (var customProjectDescription in customProjectDescriptions)
{
foreach (var customAsset in customProjectDescription.Assets)
{
//create the real file
try
{
using (var transaction = _context.Database.BeginTransaction())
{
try
{
var fileRef = new FileReferenceUserFileAsset()
{
OriginalName = customAsset.DisplayName,
CreatedAt = (DateTime) _context.Entry(customAsset)
.Property(YapexDbContext.CreatedAt)
.CurrentValue,
LastUpdatedAt = (DateTime) _context.Entry(customAsset)
.Property(YapexDbContext.LastUpdatedAt).CurrentValue,
MimeType = customAsset.MimeType,
SizeInBytes = customAsset.Content.Length,
Hash = "",
};
var conn = new CustomProjectDescriptionWithFileAsAssetReference()
{
CustomProjectDescription = customProjectDescription,
FileReferenceUserFileAsset = fileRef
};
_context.CustomProjectDescriptionWithFileAsAssetReferences.Add(conn);
_context.SaveChanges();
if (fileRef.Id <= 0)
{
throw new Exception("fileRef must be tracked in db context");
}
try
{
var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
if (info.Exists)
{
throw new Exception($"file already exists: {info.FullName}");
}
using (var stream = new FileStream(info.FullName, FileMode.Create))
{
stream.Write(customAsset.Content, 0, customAsset.Content.Length);
using (var md5 = MD5.Create())
{
var result = md5.ComputeHash(customAsset.Content);
fileRef.Hash = String.Join(String.Empty,
result.Select(p => p.ToString("x2")));
}
}
}
catch (Exception e)
{
Console.WriteLine(
$"[ERROR] error creating file name: {customAsset.DisplayName}");
Console.WriteLine(e.Message);
throw;
}
_context.SaveChanges();
transaction.Commit();
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e);
throw;
}
}
count++;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
Response.WriteAsync("OK -" + count);
}
[HttpGet("migrate/custom/project/markdown")]
public void MigrateMarkdownCustomProjectDescriptionContent()
{
var allDescriptions = _context.CustomProjectDescriptions
.Include(p => p.AssetReferences)
.ThenInclude(p => p.FileReferenceUserFileAsset)
.Include(p => p.Assets)
.ToList();
int count = 0;
int count2 = 0;
using (var transaction = _context.Database.BeginTransaction())
{
try
{
foreach (var customProjectDescription in allDescriptions)
{
if (customProjectDescription.Content.Contains(Constants.MarkdownAssetFileUrlPrefix))
{
foreach (var asset in customProjectDescription.Assets)
{
//find asset ref
var assetRef = customProjectDescription.AssetReferences.FirstOrDefault(p =>
p.FileReferenceUserFileAsset.OriginalName == asset.DisplayName &&
p.FileReferenceUserFileAsset.SizeInBytes == asset.Content.Length);
if (assetRef == null)
{
throw new Exception($"could not find asset ref for asset id {asset.Id} for ex desc {customProjectDescription.Id}");
}
customProjectDescription.Content = customProjectDescription.Content.Replace(asset.AssetUrl,
Constants.MarkdownAssetFileUrlPrefix + assetRef.FileReferenceUserFileAssetId);
count2++;
}
count++;
}
}
_context.SaveChanges();
transaction.Commit();
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e);
throw;
}
}
Response.WriteAsync($"OK - {count} - ${count2}");
}
[HttpGet("migrate/custom/project/tests")]
public void MigrateCustomProjectTestAssets()
{
var basePath = Files.GetUploadFilePath(UploadDirType.UserAssets);
var testsWithAssets = _context.CustomProjectTests
.Include(p => p.TestAssets)
.Where(p => p.TestAssets.Count > 0)
.ToList()
;
int count = 0;
foreach (var customProjectTest in testsWithAssets)
{
foreach (var customProjectTestAsset in customProjectTest.TestAssets)
{
//create the real file
try
{
using (var transaction = _context.Database.BeginTransaction())
{
try
{
var fileRef = new FileReferenceUserFileAsset()
{
OriginalName = customProjectTestAsset.DisplayName,
CreatedAt = (DateTime) _context.Entry(customProjectTestAsset)
.Property(YapexDbContext.CreatedAt)
.CurrentValue,
LastUpdatedAt = (DateTime) _context.Entry(customProjectTestAsset)
.Property(YapexDbContext.LastUpdatedAt).CurrentValue,
MimeType = customProjectTestAsset.MimeType,
SizeInBytes = customProjectTestAsset.Content.Length,
Hash = "",
};
var conn = new CustomProjectTestWithFileAsAssetReference()
{
CustomProjectTest = customProjectTest,
FileReferenceUserFileAsset = fileRef
};
_context.CustomProjectTestWithFileAsAssetReferences.Add(conn);
_context.SaveChanges();
if (fileRef.Id <= 0)
{
throw new Exception("fileRef must be tracked in db context");
}
try
{
var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
if (info.Exists)
{
throw new Exception($"file already exists: {info.FullName}");
}
using (var stream = new FileStream(info.FullName, FileMode.Create))
{
stream.Write(customProjectTestAsset.Content, 0, customProjectTestAsset.Content.Length);
using (var md5 = MD5.Create())
{
var result = md5.ComputeHash(customProjectTestAsset.Content);
fileRef.Hash = String.Join(String.Empty,
result.Select(p => p.ToString("x2")));
}
}
}
catch (Exception e)
{
Console.WriteLine(
$"[ERROR] error creating file name: {customProjectTestAsset.DisplayName}");
Console.WriteLine(e.Message);
throw;
}
_context.SaveChanges();
transaction.Commit();
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e);
throw;
}
}
count++;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
Response.WriteAsync("OK -" + count);
}
// [HttpGet("migrate/markdown")]
// public void MigrateMarkdownFiles()
// {
// var basePath = Files.GetUploadFilePath(UploadDirType.MarkdownAssets);
//
// var exDescriptions = _context.ExerciseDescriptions
// .Include(p => p.Assets)
// .Where(p => p.Assets.Count > 0)
// .ToList()
// ;
//
// int count = 0;
// foreach (var exerciseDescription in exDescriptions)
// {
// foreach (var descriptionAsset in exerciseDescription.Assets)
// {
// //create the real file
//
// try
// {
// using (var transaction = _context.Database.BeginTransaction())
// {
// try
// {
// var fileRef = new FileReferenceMarkdownAsset()
// {
// OriginalName = descriptionAsset.DisplayName,
// CreatedAt = (DateTime) _context.Entry(descriptionAsset)
// .Property(YapexDbContext.CreatedAt)
// .CurrentValue,
// LastUpdatedAt = (DateTime) _context.Entry(descriptionAsset)
// .Property(YapexDbContext.LastUpdatedAt).CurrentValue,
// MimeType = descriptionAsset.MimeType,
// SizeInBytes = descriptionAsset.Content.Length,
// Hash = "",
// };
//
// var conn = new ExerciseDescriptionWithFileAsAssetReference()
// {
// ExerciseDescription = exerciseDescription,
// FileReferenceMarkdownAsset = fileRef
// };
//
// _context.ExerciseDescriptionWithFileAsAssetReferences.Add(conn);
// _context.SaveChanges();
//
// if (fileRef.Id <= 0)
// {
// throw new Exception("fileRef must be tracked in db context");
// }
//
// try
// {
// var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
//
// if (info.Exists)
// {
// throw new Exception("file already exists");
// }
//
// using (var stream = new FileStream(info.FullName, FileMode.Create))
// {
// stream.Write(descriptionAsset.Content, 0, descriptionAsset.Content.Length);
//
// using (var md5 = MD5.Create())
// {
// var result = md5.ComputeHash(descriptionAsset.Content);
// fileRef.Hash = String.Join(String.Empty,
// result.Select(p => p.ToString("x2")));
// }
// }
// }
// catch (Exception e)
// {
// Console.WriteLine(
// $"[ERROR] error creating file name: {descriptionAsset.DisplayName}");
// Console.WriteLine(e.Message);
// throw;
// }
//
//
// _context.SaveChanges();
// transaction.Commit();
// }
// catch (Exception e)
// {
// transaction.Rollback();
// Console.WriteLine(e);
// throw;
// }
// }
//
// count++;
// }
// catch (Exception e)
// {
// Console.WriteLine(e);
// throw;
// }
// }
// }
//
//
// Response.WriteAsync("OK -" + count);
// }
//
//
// [HttpGet("migrate/ex/markdown")]
// public void MigrateMarkdownExerciseDescriptionContent()
// {
// var allDescriptions = _context.ExerciseDescriptions
// .Include(p => p.AssetReferences)
// .ThenInclude(p => p.FileReferenceMarkdownAsset)
// .Include(p => p.Assets)
// .ToList();
//
//
// int count = 0;
// int count2 = 0;
//
// using (var transaction = _context.Database.BeginTransaction())
// {
// try
// {
// foreach (var exerciseDescription in allDescriptions)
// {
// if (exerciseDescription.Content.Contains(Constants.MarkdownAssetFileUrlPrefix))
// {
//
// foreach (var asset in exerciseDescription.Assets)
// {
// //find asset ref
//
// var assetRef = exerciseDescription.AssetReferences.FirstOrDefault(p =>
// p.FileReferenceMarkdownAsset.OriginalName == asset.DisplayName &&
// p.FileReferenceMarkdownAsset.SizeInBytes == asset.Content.Length);
//
// if (assetRef == null)
// {
// throw new Exception($"could not find asset ref for asset id {asset.Id} for ex desc {exerciseDescription.Id}");
// }
//
// exerciseDescription.Content = exerciseDescription.Content.Replace(asset.AssetUrl,
// Constants.MarkdownAssetFileUrlPrefix + assetRef.FileReferenceMarkdownAssetId);
// count2++;
// }
//
// count++;
//
// }
// }
//
// _context.SaveChanges();
// transaction.Commit();
// }
// catch (Exception e)
// {
// transaction.Rollback();
// Console.WriteLine(e);
// throw;
// }
// }
//
//
// Response.WriteAsync($"OK - {count} - ${count2}");
// }
//
//
// [HttpGet("migrate/tests")]
// public void MigrateTestFiles()
// {
// var basePath = Files.GetUploadFilePath(UploadDirType.TestAssets);
//
// var testsWithAssets = _context.Tests
// .Include(p => p.TestAssets)
// .Where(p => p.TestAssets.Count > 0)
// .ToList()
// ;
//
// int count = 0;
// foreach (var testWithAsset in testsWithAssets)
// {
// foreach (var testAsset in testWithAsset.TestAssets)
// {
// //create the real file
//
// try
// {
// using (var transaction = _context.Database.BeginTransaction())
// {
// try
// {
// var fileRef = new FileReferenceTestAsset()
// {
// OriginalName = testAsset.DisplayName,
// CreatedAt = (DateTime) _context.Entry(testAsset)
// .Property(YapexDbContext.CreatedAt)
// .CurrentValue,
// LastUpdatedAt = (DateTime) _context.Entry(testAsset)
// .Property(YapexDbContext.LastUpdatedAt).CurrentValue,
// MimeType = testAsset.MimeType,
// SizeInBytes = testAsset.Content.Length,
// Hash = "",
// };
//
// var conn = new TestWithFileAsAssetReference()
// {
// Test = testWithAsset,
// FileReferenceTestAsset = fileRef
// };
//
// _context.TestWithFileAsAssetReferences.Add(conn);
// _context.SaveChanges();
//
// if (fileRef.Id <= 0)
// {
// throw new Exception("fileRef must be tracked in db context");
// }
//
// try
// {
// var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
//
// if (info.Exists)
// {
// throw new Exception($"file already exists: {info.FullName}");
// }
//
// using (var stream = new FileStream(info.FullName, FileMode.Create))
// {
// stream.Write(testAsset.Content, 0, testAsset.Content.Length);
//
// using (var md5 = MD5.Create())
// {
// var result = md5.ComputeHash(testAsset.Content);
// fileRef.Hash = String.Join(String.Empty,
// result.Select(p => p.ToString("x2")));
// }
// }
// }
// catch (Exception e)
// {
// Console.WriteLine(
// $"[ERROR] error creating file name: {testAsset.DisplayName}");
// Console.WriteLine(e.Message);
// throw;
// }
//
//
// _context.SaveChanges();
// transaction.Commit();
// }
// catch (Exception e)
// {
// transaction.Rollback();
// Console.WriteLine(e);
// throw;
// }
// }
//
// count++;
// }
// catch (Exception e)
// {
// Console.WriteLine(e);
// throw;
// }
// }
// }
//
//
// Response.WriteAsync("OK -" + count);
// }
//
//
// [HttpGet("migrate/custom/tests")]
// public void MigrateCustomTestAssets()
// {
// var basePath = Files.GetUploadFilePath(UploadDirType.UserAssets);
//
// var testsWithAssets = _context.CustomTest
// .Include(p => p.TestAssets)
// .Where(p => p.TestAssets.Count > 0)
// .ToList()
// ;
//
// int count = 0;
//
// foreach (var customTest in testsWithAssets)
// {
// foreach (var customTestAsset in customTest.TestAssets)
// {
// //create the real file
//
// try
// {
// using (var transaction = _context.Database.BeginTransaction())
// {
// try
// {
// var fileRef = new FileReferenceUserFileAsset()
// {
// OriginalName = customTestAsset.DisplayName,
// CreatedAt = (DateTime) _context.Entry(customTestAsset)
// .Property(YapexDbContext.CreatedAt)
// .CurrentValue,
// LastUpdatedAt = (DateTime) _context.Entry(customTestAsset)
// .Property(YapexDbContext.LastUpdatedAt).CurrentValue,
// MimeType = customTestAsset.MimeType,
// SizeInBytes = customTestAsset.Content.Length,
// Hash = "",
// };
//
// var conn = new CustomTestWithFileAsAssetReference()
// {
// CustomTest = customTest,
// FileReferenceUserFileAsset = fileRef
// };
//
// _context.CustomTestWithFileAsAssetReferences.Add(conn);
// _context.SaveChanges();
//
// if (fileRef.Id <= 0)
// {
// throw new Exception("fileRef must be tracked in db context");
// }
//
// try
// {
// var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
//
// if (info.Exists)
// {
// throw new Exception($"file already exists: {info.FullName}");
// }
//
// using (var stream = new FileStream(info.FullName, FileMode.Create))
// {
// stream.Write(customTestAsset.Content, 0, customTestAsset.Content.Length);
//
// using (var md5 = MD5.Create())
// {
// var result = md5.ComputeHash(customTestAsset.Content);
// fileRef.Hash = String.Join(String.Empty,
// result.Select(p => p.ToString("x2")));
// }
// }
// }
// catch (Exception e)
// {
// Console.WriteLine(
// $"[ERROR] error creating file name: {customTestAsset.DisplayName}");
// Console.WriteLine(e.Message);
// throw;
// }
//
//
// _context.SaveChanges();
// transaction.Commit();
// }
// catch (Exception e)
// {
// transaction.Rollback();
// Console.WriteLine(e);
// throw;
// }
// }
//
// count++;
// }
// catch (Exception e)
// {
// Console.WriteLine(e);
// throw;
// }
// }
//
// }
//
// Response.WriteAsync("OK -" + count);
//
// }
//
//
// [HttpGet("migrate/custom/project/description")]
// public void MigrateCustomProjectDescriptionAssets()
// {
// var basePath = Files.GetUploadFilePath(UploadDirType.UserAssets);
//
// var customProjectDescriptions = _context.CustomProjectDescriptions
// .Include(p => p.Assets)
// .Where(p => p.Assets.Count > 0)
// .ToList()
// ;
//
// int count = 0;
//
// foreach (var customProjectDescription in customProjectDescriptions)
// {
// foreach (var customAsset in customProjectDescription.Assets)
// {
// //create the real file
//
// try
// {
// using (var transaction = _context.Database.BeginTransaction())
// {
// try
// {
// var fileRef = new FileReferenceUserFileAsset()
// {
// OriginalName = customAsset.DisplayName,
// CreatedAt = (DateTime) _context.Entry(customAsset)
// .Property(YapexDbContext.CreatedAt)
// .CurrentValue,
// LastUpdatedAt = (DateTime) _context.Entry(customAsset)
// .Property(YapexDbContext.LastUpdatedAt).CurrentValue,
// MimeType = customAsset.MimeType,
// SizeInBytes = customAsset.Content.Length,
// Hash = "",
// };
//
// var conn = new CustomProjectDescriptionWithFileAsAssetReference()
// {
// CustomProjectDescription = customProjectDescription,
// FileReferenceUserFileAsset = fileRef
// };
//
// _context.CustomProjectDescriptionWithFileAsAssetReferences.Add(conn);
// _context.SaveChanges();
//
// if (fileRef.Id <= 0)
// {
// throw new Exception("fileRef must be tracked in db context");
// }
//
// try
// {
// var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
//
// if (info.Exists)
// {
// throw new Exception($"file already exists: {info.FullName}");
// }
//
// using (var stream = new FileStream(info.FullName, FileMode.Create))
// {
// stream.Write(customAsset.Content, 0, customAsset.Content.Length);
//
// using (var md5 = MD5.Create())
// {
// var result = md5.ComputeHash(customAsset.Content);
// fileRef.Hash = String.Join(String.Empty,
// result.Select(p => p.ToString("x2")));
// }
// }
// }
// catch (Exception e)
// {
// Console.WriteLine(
// $"[ERROR] error creating file name: {customAsset.DisplayName}");
// Console.WriteLine(e.Message);
// throw;
// }
//
//
// _context.SaveChanges();
// transaction.Commit();
// }
// catch (Exception e)
// {
// transaction.Rollback();
// Console.WriteLine(e);
// throw;
// }
// }
//
// count++;
// }
// catch (Exception e)
// {
// Console.WriteLine(e);
// throw;
// }
// }
//
// }
//
// Response.WriteAsync("OK -" + count);
//
// }
//
// [HttpGet("migrate/custom/project/markdown")]
// public void MigrateMarkdownCustomProjectDescriptionContent()
// {
//
// var allDescriptions = _context.CustomProjectDescriptions
// .Include(p => p.AssetReferences)
// .ThenInclude(p => p.FileReferenceUserFileAsset)
// .Include(p => p.Assets)
// .ToList();
//
//
// int count = 0;
// int count2 = 0;
//
// using (var transaction = _context.Database.BeginTransaction())
// {
// try
// {
// foreach (var customProjectDescription in allDescriptions)
// {
// if (customProjectDescription.Content.Contains(Constants.MarkdownAssetFileUrlPrefix))
// {
//
// foreach (var asset in customProjectDescription.Assets)
// {
// //find asset ref
//
// var assetRef = customProjectDescription.AssetReferences.FirstOrDefault(p =>
// p.FileReferenceUserFileAsset.OriginalName == asset.DisplayName &&
// p.FileReferenceUserFileAsset.SizeInBytes == asset.Content.Length);
//
// if (assetRef == null)
// {
// throw new Exception($"could not find asset ref for asset id {asset.Id} for ex desc {customProjectDescription.Id}");
// }
//
// customProjectDescription.Content = customProjectDescription.Content.Replace(asset.AssetUrl,
// Constants.MarkdownAssetFileUrlPrefix + assetRef.FileReferenceUserFileAssetId);
// count2++;
// }
//
// count++;
//
// }
// }
//
// _context.SaveChanges();
// transaction.Commit();
// }
// catch (Exception e)
// {
// transaction.Rollback();
// Console.WriteLine(e);
// throw;
// }
// }
//
//
// Response.WriteAsync($"OK - {count} - ${count2}");
// }
//
// [HttpGet("migrate/custom/project/tests")]
// public void MigrateCustomProjectTestAssets()
// {
// var basePath = Files.GetUploadFilePath(UploadDirType.UserAssets);
//
// var testsWithAssets = _context.CustomProjectTests
// .Include(p => p.TestAssets)
// .Where(p => p.TestAssets.Count > 0)
// .ToList()
// ;
//
// int count = 0;
//
// foreach (var customProjectTest in testsWithAssets)
// {
// foreach (var customProjectTestAsset in customProjectTest.TestAssets)
// {
// //create the real file
//
// try
// {
// using (var transaction = _context.Database.BeginTransaction())
// {
// try
// {
// var fileRef = new FileReferenceUserFileAsset()
// {
// OriginalName = customProjectTestAsset.DisplayName,
// CreatedAt = (DateTime) _context.Entry(customProjectTestAsset)
// .Property(YapexDbContext.CreatedAt)
// .CurrentValue,
// LastUpdatedAt = (DateTime) _context.Entry(customProjectTestAsset)
// .Property(YapexDbContext.LastUpdatedAt).CurrentValue,
// MimeType = customProjectTestAsset.MimeType,
// SizeInBytes = customProjectTestAsset.Content.Length,
// Hash = "",
// };
//
// var conn = new CustomProjectTestWithFileAsAssetReference()
// {
// CustomProjectTest = customProjectTest,
// FileReferenceUserFileAsset = fileRef
// };
//
// _context.CustomProjectTestWithFileAsAssetReferences.Add(conn);
// _context.SaveChanges();
//
// if (fileRef.Id <= 0)
// {
// throw new Exception("fileRef must be tracked in db context");
// }
//
// try
// {
// var info = new FileInfo(Path.Combine(basePath, fileRef.Id.ToString()));
//
// if (info.Exists)
// {
// throw new Exception($"file already exists: {info.FullName}");
// }
//
// using (var stream = new FileStream(info.FullName, FileMode.Create))
// {
// stream.Write(customProjectTestAsset.Content, 0, customProjectTestAsset.Content.Length);
//
// using (var md5 = MD5.Create())
// {
// var result = md5.ComputeHash(customProjectTestAsset.Content);
// fileRef.Hash = String.Join(String.Empty,
// result.Select(p => p.ToString("x2")));
// }
// }
// }
// catch (Exception e)
// {
// Console.WriteLine(
// $"[ERROR] error creating file name: {customProjectTestAsset.DisplayName}");
// Console.WriteLine(e.Message);
// throw;
// }
//
//
// _context.SaveChanges();
// transaction.Commit();
// }
// catch (Exception e)
// {
// transaction.Rollback();
// Console.WriteLine(e);
// throw;
// }
// }
//
// count++;
// }
// catch (Exception e)
// {
// Console.WriteLine(e);
// throw;
// }
// }
//
// }
//
// Response.WriteAsync("OK -" + count);
//
// }
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment