示例#1
0
        public override Task <RecordingModel> GetRecordingFile(RecordingLookupModel request, ServerCallContext context)
        {
            RecordingModel output = new RecordingModel();

            var Recording = _appDbContext.Recordings.FirstOrDefault(r => r.Id == request.RecordingId);

            if (Recording == null)
            {
                throw new Exception("Brak wpisu w bazie");
            }
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\recordings", Recording.RecordingPath);

            using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
            {
                byte[] RecordingData = System.IO.File.ReadAllBytes(filePath);

                fileStream.Read(RecordingData, 0, System.Convert.ToInt32(fileStream.Length));


                output.RefordingFile = ByteString.CopyFrom(RecordingData);
            }

            output.Id        = Recording.Id;
            output.Name      = Recording.Name;
            output.Extension = Path.GetExtension(filePath);

            return(Task.FromResult(output));
        }
示例#2
0
        static async Task Main(string[] args)
        {
            var channel         = GrpcChannel.ForAddress("https://*****:*****@"C:\path", fileName);

            System.IO.File.WriteAllBytes(filePath, recording.RefordingFile.ToByteArray());


            Console.WriteLine($"{ recording.Name }");


            Console.ReadLine();
        }