コード例 #1
0
        public async Task <ResponseStatus> AudioUpdatesAvailable(NotificationRequest request, ServerCallContext context)
        {
            logger.LogInformation($"New examination audio update available! Action: {request.Action}. Name: {Path.GetFileNameWithoutExtension(request.FileName)}. Start updating.");
            try
            {
                switch (request.Action)
                {
                case NotificationAction.Add:
                {
                    var centralGazooFtpConfiguration = new FtpConfigurationModel
                    {
                        Host     = request.FtpIp,
                        Port     = request.FtpPort,
                        Login    = request.FtpLogin,
                        Password = request.FtpPassword
                    };

                    await remoteFileService.DownloadFileAsync(centralGazooFtpConfiguration, request.FileName);

                    break;
                }

                case NotificationAction.Delete:
                    localFileService.DeleteFile(CreateFilePath(request.FileName));
                    break;

                case NotificationAction.Update:
                    localFileService.RenameFile(CreateFilePath(request.OldFileName), CreateFilePath(request.FileName));
                    break;

                default:
                    break;
                }
                logger.LogInformation($"Updating examination audio: {Path.GetFileNameWithoutExtension(request.FileName)} finished successfully!");
                return(new ResponseStatus()
                {
                    NotificationStatus = NotificationStatus.Successful
                });
            }
            catch (RpcException ex)
            {
                logger.LogError(ex, $"Error was occured while updating examination audio file: {Path.GetFileNameWithoutExtension(request.FileName)}.");
                return(new ResponseStatus()
                {
                    NotificationStatus = NotificationStatus.Failure
                });
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"Error was occured while updating examination audio file: {Path.GetFileNameWithoutExtension(request.FileName)}.");
                return(new ResponseStatus()
                {
                    NotificationStatus = NotificationStatus.Failure
                });
            }
        }
コード例 #2
0
 public Ftp(FtpConfigurationModel ftpConfigurationModel)
 {
     _ftpConfigurationModel = ftpConfigurationModel;
 }