Example #1
0
        static Agent <string> StartAgentFor
            (string ccyPair, Agent <FxRateResponse> sendResponse)
        => Agent.Start <Option <decimal>, string>(None, async(optRate, recipient) =>
        {
            decimal rate = await optRate.Map(Async)
                           .GetOrElse(() => Yahoo.GetRate(ccyPair));

            sendResponse.Tell(new FxRateResponse
            {
                CcyPair   = ccyPair,
                Rate      = rate,
                Recipient = recipient,
            });

            return(Some(rate));
        });