public async Task <Unit> Handle(SendOutageRepairCrewCommand request, CancellationToken cancellationToken)
        {
            Logger.LogInformation($"[OutageLifecycleCommandHandler::SendOutageRepairCrewCommand] Sending outage repair crew command for outage: {request.OutageId}");

            try
            {
                var sendRepairCrewClient = CrewSendingClient.CreateClient();
                await sendRepairCrewClient.SendRepairCrew(request.OutageId);
            }
            catch (Exception ex)
            {
                Logger.LogError("[OutageLifecycleCommandHandler::SendOutageRepairCrewCommand] OutageLifecycleCommandHandler failed on SendOutageRepairCrew handler.", ex);
                throw;
            }

            return(new Unit());
        }
        public Task <Unit> Handle(SendOutageRepairCrewCommand request, CancellationToken cancellationToken)
        {
            return(Task.Run <Unit>(() =>
            {
                _logger.LogInfo($"[OutageLifecycleCommandHandler::SendOutageRepairCrewCommand] Sending outage repair crew command for outage: {request.OutageId}");


                using (OutageLifecycleUICommandingProxy commandingProxy = _proxyFactory.CreateProxy <OutageLifecycleUICommandingProxy, IOutageLifecycleUICommandingContract>(EndpointNames.OutageLifecycleUICommandingEndpoint))
                {
                    try
                    {
                        commandingProxy.SendRepairCrew(request.OutageId);
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError("[OutageLifecycleCommandHandler::SendOutageRepairCrewCommand] OutageLifecycleCommandHandler failed on SendOutageRepairCrew handler.", ex);
                        throw;
                    }
                }

                return Task.FromResult(new Unit());
            }, cancellationToken));
        }