code guidelines

This commit is contained in:
Paul Schneider 2020-10-09 19:35:39 +01:00
commit 492427f4b8
82 changed files with 470 additions and 375 deletions

View file

@ -13,12 +13,14 @@ using Yavsc.Models.FileSystem;
namespace Yavsc.ViewModels.Streaming
{
public class LiveCastClient {
public class LiveCastClient
{
public string UserName { get; set; }
public WebSocket Socket { get; set; }
}
public class LiveEntryViewModel {
public class LiveEntryViewModel
{
public string UserName { get; set; }
public string FlowId { get; set; }
}
@ -29,22 +31,21 @@ namespace Yavsc.ViewModels.Streaming
public WebSocket Socket { get; set; }
public ConcurrentDictionary<string, WebSocket> Listeners { get; set; } = new ConcurrentDictionary<string, WebSocket>();
public CancellationTokenSource TokenSource { get; set; } = new CancellationTokenSource();
public CancellationTokenSource TokenSource { get; set; } = new CancellationTokenSource();
public void Dispose()
{
}
public async Task<FileRecievedInfo> ReceiveUserFile(ApplicationUser user, ILogger logger, string root, Queue<ArraySegment<byte>> queue, string destFileName, string contentType, Func<bool> isEndOfInput)
public async Task<FileRecievedInfo> ReceiveUserFile(ApplicationUser user, ILogger logger, string root, Queue<ArraySegment<byte>> queue, string destFileName, Func<bool> isEndOfInput)
{
// TODO lock user's disk usage for this scope,
// TODO lock user's disk usage for this scope,
// this process is not safe at concurrent access.
long usage = user.DiskUsage;
var item = new FileRecievedInfo
{
FileName = AbstractFileSystemHelpers.FilterFileName(destFileName),
MimeType = contentType,
DestDir = root
};
var fi = new FileInfo(Path.Combine(root, item.FileName));
@ -52,36 +53,39 @@ namespace Yavsc.ViewModels.Streaming
{
item.Overriden = true;
usage -= fi.Length;
}
}
logger.LogInformation("Opening the file");
using (var dest = fi.Open(FileMode.Create, FileAccess.Write, FileShare.Read))
{
logger.LogInformation("Appening to file");
while (!isEndOfInput() || queue.Count>0)
while (!isEndOfInput() || queue.Count > 0)
{
if (queue.Count > 0)
{
if (queue.Count>0) {
var buffer = queue.Dequeue();
logger.LogInformation($"writing {buffer.Array.Length} bytes...");
var buffer = queue.Dequeue();
await dest.WriteAsync(buffer.Array, buffer.Offset, buffer.Count);
logger.LogInformation($"done.");
usage += buffer.Count;
}
if (usage >= user.DiskQuota) break;
if (queue.Count==0 && !isEndOfInput()) {
await Task.Delay(100);
}
logger.LogInformation($"writing {buffer.Array.Length} bytes...");
await dest.WriteAsync(buffer.Array, buffer.Offset, buffer.Count);
logger.LogInformation($"done.");
usage += buffer.Count;
}
user.DiskUsage = usage;
dest.Close();
if (usage >= user.DiskQuota) break;
if (queue.Count == 0 && !isEndOfInput())
{
await Task.Delay(100);
}
}
user.DiskUsage = usage;
dest.Close();
}
if (usage >= user.DiskQuota) {
if (usage >= user.DiskQuota)
{
item.QuotaOffensed = true;
}
user.DiskUsage = usage;
return item;
}
}
}