using System;
using System.Collections.Generic;
class Foo {
public string GetSchedules(string request)
{
return Worker((c) => c[request]);
}
public string GetCountryList(string request)
{
return Worker((c) => c[request].ToUpper());
}
public string GetCarriers(string request)
{
return Worker((c) => c[request].ToLower());
}
private string Worker(Func<Dictionary<string,string>, string> f)
{
var d = new Dictionary<string, string>();
d.Add("1", "One");
d.Add("2", "Two");
d.Add("3", "Three");
return f(d);
}
}
public class Test
{
public static void Main()
{
var f = new Foo();
Console.WriteLine(f.GetSchedules("1"));
Console.WriteLine(f.GetCountryList("1"));
Console.WriteLine(f.GetCarriers("1"));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCmNsYXNzIEZvbyB7CiAgICBwdWJsaWMgc3RyaW5nIEdldFNjaGVkdWxlcyhzdHJpbmcgcmVxdWVzdCkKICAgIHsKICAgICAgICByZXR1cm4gV29ya2VyKChjKSA9PiBjW3JlcXVlc3RdKTsKICAgIH0KICAgIAogICAgcHVibGljIHN0cmluZyBHZXRDb3VudHJ5TGlzdChzdHJpbmcgcmVxdWVzdCkKICAgIHsKICAgICAgICByZXR1cm4gV29ya2VyKChjKSA9PiBjW3JlcXVlc3RdLlRvVXBwZXIoKSk7CiAgICB9CiAgICAKICAgIHB1YmxpYyBzdHJpbmcgR2V0Q2FycmllcnMoc3RyaW5nIHJlcXVlc3QpCiAgICB7CiAgICAgICAgcmV0dXJuIFdvcmtlcigoYykgPT4gY1tyZXF1ZXN0XS5Ub0xvd2VyKCkpOwogICAgfQogICAgCiAgICBwcml2YXRlIHN0cmluZyBXb3JrZXIoRnVuYzxEaWN0aW9uYXJ5PHN0cmluZyxzdHJpbmc+LCBzdHJpbmc+IGYpCiAgICB7CiAgICAgICAgdmFyIGQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oKTsKICAgICAgICBkLkFkZCgiMSIsICJPbmUiKTsKICAgICAgICBkLkFkZCgiMiIsICJUd28iKTsKICAgICAgICBkLkFkZCgiMyIsICJUaHJlZSIpOwogICAgICAgIHJldHVybiBmKGQpOwogICAgfQp9CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIGYgPSBuZXcgRm9vKCk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoZi5HZXRTY2hlZHVsZXMoIjEiKSk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoZi5HZXRDb3VudHJ5TGlzdCgiMSIpKTsKCQlDb25zb2xlLldyaXRlTGluZShmLkdldENhcnJpZXJzKCIxIikpOwoJfQp9Cg==