public BitfinexOfferStatusResponse GetOfferStatus(int offerId)
        {
            var statusPost = new BitfinexOfferStatusPost();
            statusPost.Request = OfferStatusRequestUrl;
            statusPost.Nonce = Common.UnixTimeStampUtc().ToString();

            statusPost.OfferId = offerId;

            var client = GetRestClient(statusPost.Request);
            var response = GetRestResponse(client, statusPost);
            var offerStatuslResponseObj = JsonConvert.DeserializeObject<BitfinexOfferStatusResponse>(response.Content);
            OfferStatusMsg(offerStatuslResponseObj);

            Logger.Log.InfoFormat("Status of offerId: {0}. Exchange response: {1}", offerId, offerStatuslResponseObj.ToString());

            return offerStatuslResponseObj;
        }
        /// <summary>
        /// Note: bug with bitfinex Canceloffer - the object returned will still say offer is alive and not cancelled.
        /// If you execute a 'GetOfferStatus' after the cancel is alive will be true (aka the offer will show up as cancelled. 
        /// </summary>
        /// <param name="offerId"></param>
        /// <returns></returns>
        public BitfinexOfferStatusResponse CancelOffer(int offerId)
        {
            var cancelPost = new BitfinexOfferStatusPost();
            cancelPost.Request = CancelOfferRequestUrl;
            cancelPost.Nonce = Common.UnixTimeStampUtc().ToString();

            cancelPost.OfferId = offerId;

            var client = GetRestClient(cancelPost.Request);
            var response = GetRestResponse(client, cancelPost);
            var orderCancelResponseObj = JsonConvert.DeserializeObject<BitfinexOfferStatusResponse>(response.Content);
            CancelOfferMsg(orderCancelResponseObj);

            Logger.Log.InfoFormat("Cancelling offerId: {0}. Exchange response: {1}", offerId, orderCancelResponseObj.ToString());

            return orderCancelResponseObj;
        }