public Task <RUserProfileServiceResponse> DeleteProfileAsync(RUserProfileServiceRequest request, CancellationToken ct) { return(ProfileWorkerAsync(NamedPipeServerStreamFactory.DeletorName, Resources.Error_ProfileDeletionFailedIO, request, ct)); }
private async Task <RUserProfileServiceResponse> ProfileWorkerAsync(string name, string log, RUserProfileServiceRequest request, CancellationToken ct) { using (var client = new NamedPipeClientStream(name)) { try { await client.ConnectAsync(ct); var jsonReq = JsonConvert.SerializeObject(request); var data = Encoding.Unicode.GetBytes(jsonReq.ToString()); await client.WriteAsync(data, 0, data.Length, ct); await client.FlushAsync(ct); var responseRaw = new byte[1024]; var bytesRead = await client.ReadAsync(responseRaw, 0, responseRaw.Length, ct); var jsonResp = Encoding.Unicode.GetString(responseRaw, 0, bytesRead); return(Json.DeserializeObject <RUserProfileServiceResponse>(jsonResp)); } catch (Exception ex) when(!ex.IsCriticalException()) { _logger.LogError(log, request.Username); return(RUserProfileServiceResponse.Blank); } } }
public Task <RUserProfileServiceResponse> CreateProfileAsync(RUserProfileServiceRequest request, CancellationToken ct) => ProfileWorkerAsync(NamedPipeServerStreamFactory.CreatorName, Resources.Error_ProfileCreationFailedIO, request, ct);