public static void GetFriends(EventHandler<FriendsListEventArgs> callback)
 {
     var serializer = new Hammock.Serialization.HammockDataContractJsonSerializer();
     RestClient client = new RestClient
     {
         Authority = baseUrl,
         Timeout = new TimeSpan(0, 0, 0, _timeOut),
         Serializer = serializer,
         Deserializer = serializer
     };
     RestRequest request = new RestRequest
                               {
                                   Path = "GetFriends" + "?timestamp=" + DateTime.Now.Ticks.ToString(),
                                   Timeout = new TimeSpan(0, 0, 0, _timeOut)
                               };
     friendscallback = callback;
     try
     {
         client.BeginRequest(request, new RestCallback<List<Friend>>(GetFriendsCallback));
     }
     catch (Exception ex)
     {
         friendscallback.Invoke(null, new FriendsListEventArgs() { Friends = null, Error = new WebException("Communication Error!", ex) });
     }
     
 }
 public static void PublishLocation(Friend friend, EventHandler<PublishLocationEventArgs> callback)
 {
     var serializer = new Hammock.Serialization.HammockDataContractJsonSerializer();
     RestClient client = new RestClient
     {
         Authority = baseUrl,
         Timeout = new TimeSpan(0, 0, 0, _timeOut),
         Serializer = serializer,
         Deserializer = serializer
     };
     RestRequest request = new RestRequest
     {
         Timeout = new TimeSpan(0, 0, 0, _timeOut),
         Method = WebMethod.Post,
         Path = "PublishLocation",
         Entity = friend
     };
     publishlocationcallback = callback;
     try
     {
         client.BeginRequest(request, new RestCallback<bool>(PublishLocationCallback));
     }
     catch (Exception ex)
     {
         publishlocationcallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = new WebException("Communication Error!", ex) });
     }
     
 }
        public static void PublishMyPicture(string userId, byte[] picture, EventHandler<PublishLocationEventArgs> callback)
        {
            var serializer = new Hammock.Serialization.HammockDataContractJsonSerializer();
            RestClient client = new RestClient
            {
                Authority = baseUrl,
                Timeout = new TimeSpan(0, 0, 0, _timeOut),
                Serializer = serializer,
                Deserializer = serializer
            };
            RestRequest request = new RestRequest
            {
                Timeout = new TimeSpan(0, 0, 0, _timeOut),
                Method = WebMethod.Post,
                Path = "UpdatePicture",
                Entity = new PictureInfo()
                             {
                                 UserId = userId,
                                 Picture = Convert.ToBase64String(picture)
                             }
            };
            publishmypicturecallback = callback;
            try
            {
                client.BeginRequest(request, new RestCallback<bool>(PublishMyPictureCallback));
            }
            catch (Exception ex)
            {
                publishmypicturecallback.Invoke(null, new PublishLocationEventArgs() { IsSuccess = false, Error = new WebException("Communication Error!", ex) });
            }

        }