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);
        }
Exemplo n.º 2
0
        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);
        }