public static async Task Media_SaveFrontendIcon(GrpcChannel channel, SaveFrontendIconRequest request) { try { using (FileStream fs = File.OpenRead(Path.GetFileName(request.FilePath))) { using (MemoryStream ms = new MemoryStream()) { fs.CopyTo(ms); var client = new Media.MediaClient(channel); var reply = await client.SaveFrontendIconAsync(new SaveFrontendIconRequest { FilePath = request.FilePath, FileData = Google.Protobuf.ByteString.CopyFrom(ms.ToArray()), Req = new REQ { Guid = Guid.NewGuid().ToString("N") } }, deadline : DateTime.Now.AddMinutes(2)); Console.WriteLine("Response: " + JsonSerializer.Serialize(reply.Res)); } } } catch (Exception ex) { Console.WriteLine(ex); } }
public MediaClient(EndpointAddress epa, string username, string password) { var httpBinding = new HttpTransportBindingElement { AuthenticationScheme = AuthenticationSchemes.Digest }; var messageElement = new TextMessageEncodingBindingElement { MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None) }; var bind = new CustomBinding(messageElement, httpBinding); Client = new Media.MediaClient(bind, epa); if (!string.IsNullOrWhiteSpace(username) && !string.IsNullOrWhiteSpace(password)) { var behavior = new PasswordDigestBehavior(username, password); Client.Endpoint.EndpointBehaviors.Add(behavior); } }