internal static BaseCurrencyAdjustmentsList getBaseCurrencyAdjustmentList(HttpResponseMessage responce)
        {
            var baseCurrencyAdjustmentList = new BaseCurrencyAdjustmentsList();
            var jsonObj =
                JsonConvert.DeserializeObject <Dictionary <string, object> >(responce.Content.ReadAsStringAsync().Result);

            if (jsonObj.ContainsKey("base_currency_adjustments"))
            {
                var baseCurrencyAdjArray =
                    JsonConvert.DeserializeObject <List <object> >(jsonObj["base_currency_adjustments"].ToString());
                foreach (var baseCurrencyAdjObj in baseCurrencyAdjArray)
                {
                    var baseCurrencyAdj = new BaseCurrencyAdjustment();
                    baseCurrencyAdj =
                        JsonConvert.DeserializeObject <BaseCurrencyAdjustment>(baseCurrencyAdjObj.ToString());
                    baseCurrencyAdjustmentList.Add(baseCurrencyAdj);
                }
            }
            if (jsonObj.ContainsKey("page_context"))
            {
                var pageContext = new PageContext();
                pageContext = JsonConvert.DeserializeObject <PageContext>(jsonObj["page_context"].ToString());
                baseCurrencyAdjustmentList.page_context = pageContext;
            }
            return(baseCurrencyAdjustmentList);
        }
        /// <summary>
        /// Creates the base currency adjustment for the specified information.
        /// </summary>
        /// <param name="new_base_currency_adjustment_info">The new_base_currency_adjustment_info is the BaseCurrencyAdjustment object which contains the currency_id,adjustment_date,exchange_rate and notes as mandatory parameters.</param>
        /// <param name="parameters">The parameters contains the following key value pair<br></br>
        /// <table>
        /// <tr><td>account_ids*</td><td>ID of the accounts for which base currency adjustments need to be posted.</td></tr>
        /// </table>
        /// </param>
        /// <returns>BaseCurrencyAdjustment.</returns>
        public BaseCurrencyAdjustment Create(BaseCurrencyAdjustment new_base_currency_adjustment_info, Dictionary <object, object> parameters)
        {
            string url  = baseAddress;
            var    json = JsonConvert.SerializeObject(new_base_currency_adjustment_info);

            parameters.Add("JSONString", json);
            var responce = ZohoHttpClient.post(url, getQueryParameters(parameters));

            return(BaseCurrencyAdjustmentParser.getBaseCurrencyAdjustment(responce));
        }
        internal static BaseCurrencyAdjustment getBaseCurrencyAdjustment(HttpResponseMessage responce)
        {
            var baseCurrencyAdjustment = new BaseCurrencyAdjustment();
            var jsonObj = JsonConvert.DeserializeObject <Dictionary <string, object> >(responce.Content.ReadAsStringAsync().Result);

            if (jsonObj.ContainsKey("data"))
            {
                baseCurrencyAdjustment = JsonConvert.DeserializeObject <BaseCurrencyAdjustment>(jsonObj["data"].ToString());
            }
            return(baseCurrencyAdjustment);
        }
Example #4
0
 static void Main(string[] args)
 {
     try
     {
         var service = new ZohoBooks();
         service.initialize("{authtoken}", "{organizationId}");
         var baseCurrencyAdjustmentApi = service.GetBaseCurrencyAdjustmentsApi();
         var parameters = new Dictionary <object, object>();
         parameters.Add("filter_by", "Date.All");
         var baseCurrencyAdjustmentsList = baseCurrencyAdjustmentApi.GetBaseCurrencyAdjustments(parameters);
         var adjustments = baseCurrencyAdjustmentsList;
         Console.WriteLine("------------------Adjustment List---------------------");
         foreach (var adjustment in adjustments)
         {
             Console.WriteLine("{0},{1},{2}", adjustment.base_currency_adjustment_id, adjustment.currency_code, adjustment.exchange_rate);
         }
         var baseAdjust = baseCurrencyAdjustmentApi.Get(adjustments[0].base_currency_adjustment_id);
         Console.WriteLine("----------------specific Adjustment----------------");
         Console.WriteLine("{0},{1},{2}", baseAdjust.base_currency_adjustment_id, baseAdjust.currency_code, baseAdjust.exchange_rate);
         var accounts = baseAdjust.accounts;
         foreach (var account in accounts)
         {
             Console.WriteLine("{0},{1},{2}", account.account_name, account.adjusted_balance, account.gain_or_loss_formatted);
         }
         var parameters1 = new Dictionary <object, object>();
         parameters1.Add("currency_id", adjustments[0].currency_id);
         parameters1.Add("adjustment_date", adjustments[0].adjustment_date);
         parameters1.Add("exchange_rate", adjustments[0].exchange_rate);
         parameters1.Add("notes", adjustments[0].notes);
         var baseAdjust1 = baseCurrencyAdjustmentApi.GetBaseCurrencyAdjustmentAccounts(parameters1);
         Console.WriteLine("----------------specific Adjustment accounts----------------");
         Console.WriteLine("{0},{1},{2}", baseAdjust.base_currency_adjustment_id, baseAdjust.currency_code, baseAdjust.exchange_rate);
         var accounts1 = baseAdjust.accounts;
         foreach (var account in accounts1)
         {
             Console.WriteLine("{0},{1},{2}", account.account_name, account.adjusted_balance, account.gain_or_loss_formatted);
         }
         var parameters2 = new Dictionary <object, object>();
         parameters2.Add("account_ids", accounts1[0].account_id);
         var newAdjustInfo = new BaseCurrencyAdjustment()
         {
             currency_id     = baseAdjust1.currency_id,
             adjustment_date = "2014-11-14",
             exchange_rate   = 35,
             notes           = "notes",
         };
         var newAdjust = baseCurrencyAdjustmentApi.Create(newAdjustInfo, parameters2);
         Console.WriteLine("----------------New Adjustment----------------");
         Console.WriteLine("{0},{1},{2}", newAdjust.base_currency_adjustment_id, newAdjust.currency_code, newAdjust.exchange_rate);
         var accounts2 = newAdjust.accounts;
         foreach (var account in accounts2)
         {
             Console.WriteLine("{0},{1},{2}", account.account_name, account.adjusted_balance, account.gain_or_loss_formatted);
         }
         var deleteMsg = baseCurrencyAdjustmentApi.Delete(newAdjust.base_currency_adjustment_id);
         Console.WriteLine("----------------Delete Adjustment----------------");
         Console.WriteLine(deleteMsg);
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
     Console.ReadKey();
 }