public async Task <WorkerClientVersion> UpdateWorkerClient(byte[] clientData) { var memoryStream = new MemoryStream(clientData); var clientUpdate = new WorkerClientVersion(int.Parse((await _workerVersionsRepository.GetLatestWorkerClient())?.Version ?? "0") + 1); using (var md5 = MD5.Create()) clientUpdate.Hash = BitConverter.ToString(md5.ComputeHash(memoryStream)).Replace("-", "").ToLower(); memoryStream.Position = 0; clientUpdate.Location = await _fileStorageAdapter.UploadFile($"WorkerClient_v{clientUpdate.Version}.zip", memoryStream, _storageContainerName); if (string.IsNullOrEmpty(clientUpdate.Location)) { return(null); } await _workerVersionsRepository.InsertWorkerClientVersion(clientUpdate); return(clientUpdate); }
public async Task <WorkerClientVersion> InsertWorkerClientVersion(WorkerClientVersion workerClientVersion) { await _connection.ExecuteAsync("INSERT INTO [dbo].[WorkerClientVersions] ([Version], [ReleaseDate],[Location], [Hash]) VALUES (@Version, @ReleaseDate, @Location, @Hash)", new { workerClientVersion.Version, workerClientVersion.ReleaseDate, workerClientVersion.Location, workerClientVersion.Hash }); return(workerClientVersion); }