C# SDK Samples - Currencies Operations

Get Currencies
              
              
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API.Currencies;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using ActionHandler = Com.Zoho.Crm.API.Currencies.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Currencies.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Currencies.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Currencies.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Currencies.BodyWrapper;
using ResponseHandler = Com.Zoho.Crm.API.Currencies.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Currencies.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Currencies.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Currencies
{
    public class Currency
    {
        /// 
        /// This method is used to get all the available currencies in your organization.
        /// 
        public static void GetCurrencies()
        {
            //Get instance of CurrenciesOperations Class
            CurrenciesOperations currenciesOperations = new CurrenciesOperations();
            
            //Call GetCurrencies method 
            APIResponse<ResponseHandler> response = currenciesOperations.GetCurrencies();
            
            if(response != null)
            {
                //Get the status code from response
                Console.WriteLine("Status Code: " + response.StatusCode);
                
                if(new List<int>() { 204, 304 }.Contains(response.StatusCode))
                {
                    Console.WriteLine(response.StatusCode == 204? "No Content" : "Not Modified");

                    return;
                }
                
                //Check if expected response is received
                if(response.IsExpected)
                {
                    //Get object from response
                    ResponseHandler responseHandler = response.Object;
                    
                    if(responseHandler is ResponseWrapper)
                    {
                        //Get the received ResponseWrapper instance
                        ResponseWrapper responseWrapper = (ResponseWrapper) responseHandler;
                        
                        //Get the list of obtained Currency instances
                        List<Com.Zoho.Crm.API.Currencies.Currency> currenciesList = responseWrapper.Currencies;
                        
                        foreach(Com.Zoho.Crm.API.Currencies.Currency currency in currenciesList)
                        {	
                            //Get the Symbol of each currency
                            Console.WriteLine("Currency Symbol: " + currency.Symbol);
                            
                            //Get the CreatedTime of each currency
                            Console.WriteLine("Currency CreatedTime: " + currency.CreatedTime);
                            
                            //Get the currency is IsActive
                            Console.WriteLine("Currency IsActive: " + currency.IsActive);
                            
                            //Get the ExchangeRate of each currency
                            Console.WriteLine("Currency ExchangeRate: " + currency.ExchangeRate);
                            
                            //Get the format instance of each currency
                            Format format = currency.Format;
                            
                            //Check if format is not null
                            if(format != null)
                            {
                                //Get the DecimalSeparator of the Format
                                Console.WriteLine("Currency Format DecimalSeparator: " + format.DecimalSeparator.Value);
                                
                                //Get the ThousandSeparator of the Format
                                Console.WriteLine("Currency Format ThousandSeparator: " + format.ThousandSeparator.Value);
                                
                                //Get the DecimalPlaces of the Format
                                Console.WriteLine("Currency Format DecimalPlaces: " + format.DecimalPlaces.Value);
                            }
                            
                            //Get the createdBy User instance of each currency
                            User createdBy = currency.CreatedBy;
                            
                            //Check if createdBy is not null
                            if(createdBy != null)
                            {
                                //Get the Name of the createdBy User
                                Console.WriteLine("Currency CreatedBy User-Name: " + createdBy.Name);
                                
                                //Get the ID of the createdBy User
                                Console.WriteLine("Currency CreatedBy User-ID: " + createdBy.Id);
                            }
                            
                            //Get the PrefixSymbol of each currency
                            Console.WriteLine("Currency PrefixSymbol: " + currency.PrefixSymbol);
                            
                            //Get the IsBase of each currency
                            Console.WriteLine("Currency IsBase: " + currency.IsBase);
                            
                            //Get the ModifiedTime of each currency
                            Console.WriteLine("Currency ModifiedTime: " + currency.ModifiedTime);
                            
                            //Get the Name of each currency
                            Console.WriteLine("Currency Name: " + currency.Name);
                            
                            //Get the modifiedBy User instance of each currency
                            User modifiedBy = currency.ModifiedBy;
                            
                            //Check if modifiedBy is not null
                            if(modifiedBy != null)
                            {
                                //Get the Name of the modifiedBy User
                                Console.WriteLine("Currency ModifiedBy User-Name: " + modifiedBy.Name);
                                
                                //Get the ID of the modifiedBy User
                                Console.WriteLine("Currency ModifiedBy User-ID: " + modifiedBy.Id);
                            }
                            
                            //Get the Id of each currency
                            Console.WriteLine("Currency Id: " + currency.Id);
                            
                            //Get the IsoCode of each currency
                            Console.WriteLine("Currency IsoCode: " + currency.IsoCode);
                        }
                    }
                    //Check if the request returned an exception
                    else if(responseHandler is APIException)
                    {
                        //Get the received APIException instance
                        APIException exception = (APIException) responseHandler;
                        
                        //Get the Status
                        Console.WriteLine("Status: " + exception.Status.Value);
                        
                        //Get the Code
                        Console.WriteLine("Code: " + exception.Code.Value);
                        
                        Console.WriteLine("Details: " );
                        
                        //Get the details map
                        foreach(KeyValuePair<string, object> entry in exception.Details)
                        {
                            //Get each value in the map
                            Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                        }
                        
                        //Get the Message
                        Console.WriteLine("Message: " + exception.Message.Value);
                    }
                }
                else
                { //If response is not as expected

                    //Get model object from response
                    Model responseObject = response.Model;

                    //Get the response object's class
                    Type type = responseObject.GetType();

                    //Get all declared fields of the response class
                    Console.WriteLine("Type is: {0}", type.Name);

                    PropertyInfo[] props = type.GetProperties();

                    Console.WriteLine("Properties (N = {0}):", props.Length);

                    foreach (var prop in props)
                    {
                        if (prop.GetIndexParameters().Length == 0)
                        {
                            Console.WriteLine("{0} ({1}) : {2}", prop.Name, prop.PropertyType.Name, prop.GetValue(responseObject));
                        }
                        else
                        {
                            Console.WriteLine("{0} ({1}) : <Indexed>", prop.Name, prop.PropertyType.Name);
                        }
                    }
                }
            }
        }
    }
}
 
Add Currencies
              
              
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API.Currencies;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using ActionHandler = Com.Zoho.Crm.API.Currencies.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Currencies.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Currencies.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Currencies.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Currencies.BodyWrapper;
using ResponseHandler = Com.Zoho.Crm.API.Currencies.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Currencies.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Currencies.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Currencies
{
    public class Currency
    {
        /// 
        /// This method is used to add new currencies to your organization.
        /// 
        public static void AddCurrencies()
        {		
            //Get instance of CurrenciesOperations Class
            CurrenciesOperations currenciesOperations = new CurrenciesOperations();
            
            //Get instance of BodyWrapper Class that will contain the request body
            BodyWrapper bodyWrapper = new BodyWrapper();
            
            //List of Currency instances
            List<Com.Zoho.Crm.API.Currencies.Currency> currencies = new List<Com.Zoho.Crm.API.Currencies.Currency>();

            //Get instance of Currency Class
            Com.Zoho.Crm.API.Currencies.Currency currency = new Com.Zoho.Crm.API.Currencies.Currency();
            
            //To set the position of the ISO code in the currency.
            //true: Display ISO code before the currency value.
            //false: Display ISO code after the currency value.
            currency.PrefixSymbol = true;

            //To set the name of the currency.
            currency.Name = "Angolan Kwanza - AOA";

            //To set the ISO code of the currency.
            currency.IsoCode = "AOA";

            //To set the symbol of the currency.
            currency.Symbol = "Kz";

            //To set the rate at which the currency has to be exchanged for home currency.
            currency.ExchangeRate = "20.0000";

            //To set the status of the currency.
            //true: The currency is active.
            //false: The currency is inactive.
            currency.IsActive = true;
            
            Format format = new Format();
            
            //It can be a Period or Comma, depending on the currency.
            format.DecimalSeparator = new Choice<string>("Period");
            
            //It can be a Period, Comma, or Space, depending on the currency.
            format.ThousandSeparator = new Choice<string>("Comma");
        
            //To set the number of decimal places allowed for the currency. It can be 0, 2, or 3.
            format.DecimalPlaces = new Choice<string>("2");
            
            //To set the format of the currency
            currency.Format = format;
            
            currencies.Add(currency);
            
            //Set the list to Currency in BodyWrapper instance
            bodyWrapper.Currencies = currencies;
            
            //Call AddCurrencies method that takes BodyWrapper instance as parameter 
            APIResponse<ActionHandler> response = currenciesOperations.AddCurrencies(bodyWrapper);
            
            if(response != null)
            {
                //Get the status code from response
                Console.WriteLine("Status Code: " + response.StatusCode);
                
                //Check if expected response is received
                if(response.IsExpected)
                {
                    //Get object from response
                    ActionHandler actionHandler = response.Object;
                    
                    if(actionHandler is ActionWrapper)
                    {
                        //Get the received ActionWrapper instance
                        ActionWrapper actionWrapper = (ActionWrapper) actionHandler;
                        
                        //Get the list of obtained ActionResponse instances
                        List<ActionResponse> actionResponses = actionWrapper.Currencies;
                        
                        foreach(ActionResponse actionResponse in actionResponses)
                        {
                            //Check if the request is successful
                            if(actionResponse is SuccessResponse)
                            {
                                //Get the received SuccessResponse instance
                                SuccessResponse successResponse = (SuccessResponse)actionResponse;
                                
                                //Get the Status
                                Console.WriteLine("Status: " + successResponse.Status.Value);
                                
                                //Get the Code
                                Console.WriteLine("Code: " + successResponse.Code.Value);
                                
                                Console.WriteLine("Details: " );
                                
                                //Get the details map
                                foreach(KeyValuePair<string, object> entry in successResponse.Details)
                                {
                                    //Get each value in the map
                                    Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                                }
                                
                                //Get the Message
                                Console.WriteLine("Message: " + successResponse.Message.Value);
                            }
                            //Check if the request returned an exception
                            else if(actionResponse is APIException)
                            {
                                //Get the received APIException instance
                                APIException exception = (APIException) actionResponse;
                                
                                //Get the Status
                                Console.WriteLine("Status: " + exception.Status.Value);
                                
                                //Get the Code
                                Console.WriteLine("Code: " + exception.Code.Value);
                                
                                Console.WriteLine("Details: " );
                                
                                //Get the details map
                                foreach(KeyValuePair<string, object> entry in exception.Details)
                                {
                                    //Get each value in the map
                                    Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                                }
                                
                                //Get the Message
                                Console.WriteLine("Message: " + exception.Message.Value);
                            }
                        }
                    }
                    //Check if the request returned an exception
                    else if(actionHandler is APIException)
                    {
                        //Get the received APIException instance
                        APIException exception = (APIException) actionHandler;
                        
                        //Get the Status
                        Console.WriteLine("Status: " + exception.Status.Value);
                        
                        //Get the Code
                        Console.WriteLine("Code: " + exception.Code.Value);
                        
                        Console.WriteLine("Details: " );
                        
                        //Get the details map
                        foreach(KeyValuePair<string, object> entry in exception.Details)
                        {
                            //Get each value in the map
                            Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                        }
                        
                        //Get the Message
                        Console.WriteLine("Message: " + exception.Message.Value);
                    }
                }
                else
                { //If response is not as expected

                    //Get model object from response
                    Model responseObject = response.Model;

                    //Get the response object's class
                    Type type = responseObject.GetType();

                    //Get all declared fields of the response class
                    Console.WriteLine("Type is: {0}", type.Name);

                    PropertyInfo[] props = type.GetProperties();

                    Console.WriteLine("Properties (N = {0}):", props.Length);

                    foreach (var prop in props)
                    {
                        if (prop.GetIndexParameters().Length == 0)
                        {
                            Console.WriteLine("{0} ({1}) : {2}", prop.Name, prop.PropertyType.Name, prop.GetValue(responseObject));
                        }
                        else
                        {
                            Console.WriteLine("{0} ({1}) : <Indexed>", prop.Name, prop.PropertyType.Name);
                        }
                    }
                }
            }
        }
    }
}
 
Update Currencies
              
              
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API.Currencies;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using ActionHandler = Com.Zoho.Crm.API.Currencies.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Currencies.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Currencies.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Currencies.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Currencies.BodyWrapper;
using ResponseHandler = Com.Zoho.Crm.API.Currencies.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Currencies.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Currencies.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Currencies
{
    public class Currency
    {
        /// 
        /// This method is used to update currency details.
        /// 
        public static void UpdateCurrencies()
        {
            //Get instance of CurrenciesOperations Class
            CurrenciesOperations currenciesOperations = new CurrenciesOperations();
            
            //Get instance of BodyWrapper Class that will contain the request body
            BodyWrapper bodyWrapper = new BodyWrapper();
            
            //List of Currency instances
            List<Com.Zoho.Crm.API.Currencies.Currency> currencies = new List<Com.Zoho.Crm.API.Currencies.Currency>();

            //Get instance of Currency Class
            Com.Zoho.Crm.API.Currencies.Currency currency = new Com.Zoho.Crm.API.Currencies.Currency();
            
            //To set the position of the ISO code in the currency.
            //true: Display ISO code before the currency value.
            //false: Display ISO code after the currency value.
            currency.PrefixSymbol = true;

            //To set currency Id
            currency.Id = 3477061040001;

            //To set the rate at which the currency has to be exchanged for home currency.
            currency.ExchangeRate = "5.00";
            
            //To set the status of the currency.
            //true: The currency is active.
            //false: The currency is inactive.
            currency.IsActive = true;
            
            Format format = new Format();

            //It can be a Period or Comma, depending on the currency.
            format.DecimalSeparator = new Choice<string>("Period");

            //It can be a Period, Comma, or Space, depending on the currency.
            format.ThousandSeparator = new Choice<string>("Comma");

            //To set the number of decimal places allowed for the currency. It can be 0, 2, or 3.
            format.DecimalPlaces = new Choice<string>("2");

            //To set the format of the currency
            currency.Format = format;

            //Add Currency instance to the list
            currencies.Add(currency);
            
            //Set the list to Currency in BodyWrapper instance
            bodyWrapper.Currencies = currencies;
            
            //Call UpdateCurrencies method that takes BodyWrapper instance as parameter 
            APIResponse<ActionHandler> response = currenciesOperations.UpdateCurrencies(bodyWrapper);
            
            if(response != null)
            {
                //Get the status code from response
                Console.WriteLine("Status Code: " + response.StatusCode);
                
                //Check if expected response is received
                if(response.IsExpected)
                {
                    //Get object from response
                    ActionHandler actionHandler = response.Object;
                    
                    if(actionHandler is ActionWrapper)
                    {
                        //Get the received ActionWrapper instance
                        ActionWrapper actionWrapper = (ActionWrapper) actionHandler;
                        
                        //Get the list of obtained ActionResponse instances
                        List<ActionResponse> actionResponses = actionWrapper.Currencies;
                        
                        foreach(ActionResponse actionResponse in actionResponses)
                        {
                            //Check if the request is successful
                            if(actionResponse is SuccessResponse)
                            {
                                //Get the received SuccessResponse instance
                                SuccessResponse successResponse = (SuccessResponse)actionResponse;
                                
                                //Get the Status
                                Console.WriteLine("Status: " + successResponse.Status.Value);
                                
                                //Get the Code
                                Console.WriteLine("Code: " + successResponse.Code.Value);
                                
                                Console.WriteLine("Details: " );
                                
                                //Get the details map
                                foreach(KeyValuePair<string, object> entry in successResponse.Details)
                                {
                                    //Get each value in the map
                                    Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                                }
                                
                                //Get the Message
                                Console.WriteLine("Message: " + successResponse.Message.Value);
                            }
                            //Check if the request returned an exception
                            else if(actionResponse is APIException)
                            {
                                //Get the received APIException instance
                                APIException exception = (APIException) actionResponse;
                                
                                //Get the Status
                                Console.WriteLine("Status: " + exception.Status.Value);
                                
                                //Get the Code
                                Console.WriteLine("Code: " + exception.Code.Value);
                                
                                Console.WriteLine("Details: " );
                                
                                //Get the details map
                                foreach(KeyValuePair<string, object> entry in exception.Details)
                                {
                                    //Get each value in the map
                                    Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                                }
                                
                                //Get the Message
                                Console.WriteLine("Message: " + exception.Message.Value);
                            }
                        }
                    }
                    //Check if the request returned an exception
                    else if(actionHandler is APIException)
                    {
                        //Get the received APIException instance
                        APIException exception = (APIException) actionHandler;
                        
                        //Get the Status
                        Console.WriteLine("Status: " + exception.Status.Value);
                        
                        //Get the Code
                        Console.WriteLine("Code: " + exception.Code.Value);
                        
                        Console.WriteLine("Details: " );
                        
                        //Get the details map
                        foreach(KeyValuePair<string, object> entry in exception.Details)
                        {
                            //Get each value in the map
                            Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                        }
                        
                        //Get the Message
                        Console.WriteLine("Message: " + exception.Message.Value);
                    }
                }
                else
                { //If response is not as expected

                    //Get model object from response
                    Model responseObject = response.Model;

                    //Get the response object's class
                    Type type = responseObject.GetType();

                    //Get all declared fields of the response class
                    Console.WriteLine("Type is: {0}", type.Name);

                    PropertyInfo[] props = type.GetProperties();

                    Console.WriteLine("Properties (N = {0}):", props.Length);

                    foreach (var prop in props)
                    {
                        if (prop.GetIndexParameters().Length == 0)
                        {
                            Console.WriteLine("{0} ({1}) : {2}", prop.Name, prop.PropertyType.Name, prop.GetValue(responseObject));
                        }
                        else
                        {
                            Console.WriteLine("{0} ({1}) : <Indexed>", prop.Name, prop.PropertyType.Name);
                        }
                    }
                }
            }
        }
    }
}
 
Enable Multiple Currencies
              
              
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API.Currencies;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using ActionHandler = Com.Zoho.Crm.API.Currencies.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Currencies.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Currencies.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Currencies.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Currencies.BodyWrapper;
using ResponseHandler = Com.Zoho.Crm.API.Currencies.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Currencies.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Currencies.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Currencies
{
    public class Currency
    {
        /// 
        /// This method is used to enable multiple currencies for your organization.
        /// 
        public static void EnableMultipleCurrencies()
        {
            //Get instance of CurrenciesOperations Class
            CurrenciesOperations currenciesOperations = new CurrenciesOperations();
            
            //Get instance of BaseCurrencyWrapper Class that will contain the request body
            BaseCurrencyWrapper bodyWrapper = new BaseCurrencyWrapper();
            
            //Get instance of Currency Class
            Com.Zoho.Crm.API.Currencies.Currency currency = new Com.Zoho.Crm.API.Currencies.Currency();
            
            //To set the position of the ISO code in the base currency.
            //true: Display ISO code before the currency value.
            //false: Display ISO code after the currency value.
            //currency.PrefixSymbol = true;
            
            //To set the name of the base currency.
            currency.Name = "Algerian Dinar-ADN";
            
            //To set the ISO code of the base currency.
            currency.IsoCode = "DZD";
            
            //To set the symbol of the base currency.
            currency.Symbol = "Af";
            
            //To set the rate at which the currency has to be exchanged for home base currency.
            currency.ExchangeRate = "1.00";
            
            //To set the status of the base currency.
            //true: The currency is active.
            //false: The currency is inactive.
            currency.IsActive = true;
            
            Format format = new Format();
            
            //It can be a Period or Comma, depending on the base currency.
            format.DecimalSeparator = new Choice<string>("Period");
            
            //It can be a Period, Comma, or Space, depending on the base currency.  
            format.ThousandSeparator = new Choice<string>("Comma");
        
            //To set the number of decimal places allowed for the base currency. It can be 0, 2, or 3.
            format.DecimalPlaces = new Choice<string>("2");
            
            //To set the format of the base currency
            currency.Format = format;
            
            //Set the Currency in BodyWrapper instance
            bodyWrapper.BaseCurrency = currency;
            
            //Call EnableMultipleCurrencies method that takes BodyWrapper instance as parameter 
            APIResponse<BaseCurrencyActionHandler> response = currenciesOperations.EnableMultipleCurrencies(bodyWrapper);
            
            if(response != null)
            {
                //Get the status code from response
                Console.WriteLine("Status Code: " + response.StatusCode);
                
                //Check if expected response is received
                if(response.IsExpected)
                {
                    //Get object from response
                    BaseCurrencyActionHandler baseCurrencyActionHandler = response.Object;
                    
                    if(baseCurrencyActionHandler is BaseCurrencyActionWrapper)
                    {
                        //Get the received BaseCurrencyActionWrapper instance
                        BaseCurrencyActionWrapper baseCurrencyActionWrapper = (BaseCurrencyActionWrapper) baseCurrencyActionHandler;
                        
                        //Get the received obtained ActionResponse instances
                        ActionResponse actionResponse = baseCurrencyActionWrapper.BaseCurrency;
                        
                        //Check if the request is successful
                        if(actionResponse is SuccessResponse)
                        {
                            //Get the received SuccessResponse instance
                            SuccessResponse successResponse = (SuccessResponse)actionResponse;
                            
                            //Get the Status
                            Console.WriteLine("Status: " + successResponse.Status.Value);
                            
                            //Get the Code
                            Console.WriteLine("Code: " + successResponse.Code.Value);
                            
                            Console.WriteLine("Details: " );
                            
                            //Get the details map
                            foreach(KeyValuePair<string, object> entry in successResponse.Details)
                            {
                                //Get each value in the map
                                Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                            }
                            
                            //Get the Message
                            Console.WriteLine("Message: " + successResponse.Message.Value);
                        }
                        //Check if the request returned an exception
                        else if(actionResponse is APIException)
                        {
                            //Get the received APIException instance
                            APIException exception = (APIException) actionResponse;
                            
                            //Get the Status
                            Console.WriteLine("Status: " + exception.Status.Value);
                            
                            //Get the Code
                            Console.WriteLine("Code: " + exception.Code.Value);
                            
                            Console.WriteLine("Details: " );
                            
                            //Get the details map
                            foreach(KeyValuePair<string, object> entry in exception.Details)
                            {
                                //Get each value in the map
                                Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                            }
                            
                            //Get the Message
                            Console.WriteLine("Message: " + exception.Message.Value);
                        }
                    }
                    //Check if the request returned an exception
                    else if(baseCurrencyActionHandler is APIException)
                    {
                        //Get the received APIException instance
                        APIException exception = (APIException) baseCurrencyActionHandler;
                        
                        //Get the Status
                        Console.WriteLine("Status: " + exception.Status.Value);
                        
                        //Get the Code
                        Console.WriteLine("Code: " + exception.Code.Value);
                        
                        Console.WriteLine("Details: " );
                        
                        //Get the details map
                        foreach(KeyValuePair<string, object> entry in exception.Details)
                        {
                            //Get each value in the map
                            Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                        }
                        
                        //Get the Message
                        Console.WriteLine("Message: " + exception.Message.Value);
                    }
                }
                else
                { //If response is not as expected

                    //Get model object from response
                    Model responseObject = response.Model;

                    //Get the response object's class
                    Type type = responseObject.GetType();

                    //Get all declared fields of the response class
                    Console.WriteLine("Type is: {0}", type.Name);

                    PropertyInfo[] props = type.GetProperties();

                    Console.WriteLine("Properties (N = {0}):", props.Length);

                    foreach (var prop in props)
                    {
                        if (prop.GetIndexParameters().Length == 0)
                        {
                            Console.WriteLine("{0} ({1}) : {2}", prop.Name, prop.PropertyType.Name, prop.GetValue(responseObject));
                        }
                        else
                        {
                            Console.WriteLine("{0} ({1}) : <Indexed>", prop.Name, prop.PropertyType.Name);
                        }
                    }
                }
            }
        }
    }
}
 
Update the Base Currency
              
              
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API.Currencies;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using ActionHandler = Com.Zoho.Crm.API.Currencies.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Currencies.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Currencies.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Currencies.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Currencies.BodyWrapper;
using ResponseHandler = Com.Zoho.Crm.API.Currencies.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Currencies.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Currencies.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Currencies
{
    public class Currency
    {
        /// 
        /// This method is used to update base currency details.
        /// 
        public static void UpdateBaseCurrency()
        {
            //Get instance of CurrenciesOperations Class
            CurrenciesOperations currenciesOperations = new CurrenciesOperations();
            
            //Get instance of BaseCurrencyWrapper Class that will contain the request body
            BaseCurrencyWrapper bodyWrapper = new BaseCurrencyWrapper();
            
            //Get instance of Currency Class
            Com.Zoho.Crm.API.Currencies.Currency currency = new Com.Zoho.Crm.API.Currencies.Currency();
            
            //To set the position of the ISO code in the base currency.
            //true: Display ISO code before the currency value.
            //false: Display ISO code after the currency value.
            currency.PrefixSymbol = true;
            
            //To set the symbol of the base currency.
            currency.Symbol = "Af";
            
            //To set the rate at which the currency has to be exchanged for home base currency.
            currency.ExchangeRate = "1.00";

            //To set currency Id
            currency.Id = 3477061008002;

            Format format = new Format();
            
            //It can be a Period or Comma, depending on the base currency.
            format.DecimalSeparator = new Choice<string>("Period");
            
            //It can be a Period, Comma, or Space, depending on the base currency.
            format.ThousandSeparator = new Choice<string>("Comma");

            //To set the number of decimal places allowed for the base currency. It can be 0, 2, or 3.
            format.DecimalPlaces = new Choice<string>("2");

            //To set the format of the base currency
            currency.Format = format;

            //Set the Currency in BodyWrapper instance
            bodyWrapper.BaseCurrency = currency;
            
            //Call UpdateBaseCurrency method that takes BodyWrapper instance as parameter 
            APIResponse<BaseCurrencyActionHandler> response = currenciesOperations.UpdateBaseCurrency(bodyWrapper);
            
            if(response != null)
            {
                //Get the status code from response
                Console.WriteLine("Status Code: " + response.StatusCode);
                
                //Check if expected response is received
                if(response.IsExpected)
                {
                    //Get object from response
                    BaseCurrencyActionHandler baseCurrencyActionHandler = response.Object;
                    
                    if(baseCurrencyActionHandler is BaseCurrencyActionWrapper)
                    {
                        //Get the received BaseCurrencyActionWrapper instance
                        BaseCurrencyActionWrapper baseCurrencyActionWrapper = (BaseCurrencyActionWrapper) baseCurrencyActionHandler;
                        
                        //Get the ActionResponse instance
                        ActionResponse actionResponse = baseCurrencyActionWrapper.BaseCurrency;
                        
                        //Check if the request is successful
                        if(actionResponse is SuccessResponse)
                        {
                            //Get the received SuccessResponse instance
                            SuccessResponse successResponse = (SuccessResponse)actionResponse;
                        
                            //Get the Status
                            Console.WriteLine("Status: " + successResponse.Status.Value);
                            
                            //Get the Code
                            Console.WriteLine("Code: " + successResponse.Code.Value);
                            
                            Console.WriteLine("Details: " );
                            
                            //Get the details map
                            foreach(KeyValuePair<string, object> entry in successResponse.Details)
                            {
                                //Get each value in the map
                                Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                            }
                            
                            //Get the Message
                            Console.WriteLine("Message: " + successResponse.Message.Value);
                        }
                        //Check if the request returned an exception
                        else if(actionResponse is APIException)
                        {
                            //Get the received APIException instance
                            APIException exception = (APIException) actionResponse;
                            
                            //Get the Status
                            Console.WriteLine("Status: " + exception.Status.Value);
                            
                            //Get the Code
                            Console.WriteLine("Code: " + exception.Code.Value);
                            
                            Console.WriteLine("Details: " );
                            
                            //Get the details map
                            foreach(KeyValuePair<string, object> entry in exception.Details)
                            {
                                //Get each value in the map
                                Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                            }
                            
                            //Get the Message
                            Console.WriteLine("Message: " + exception.Message.Value);
                        }
                    }
                    //Check if the request returned an exception
                    else if(baseCurrencyActionHandler is APIException)
                    {
                        //Get the received APIException instance
                        APIException exception = (APIException) baseCurrencyActionHandler;
                        
                        //Get the Status
                        Console.WriteLine("Status: " + exception.Status.Value);
                        
                        //Get the Code
                        Console.WriteLine("Code: " + exception.Code.Value);
                        
                        Console.WriteLine("Details: " );
                        
                        //Get the details map
                        foreach(KeyValuePair<string, object> entry in exception.Details)
                        {
                            //Get each value in the map
                            Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                        }
                        
                        //Get the Message
                        Console.WriteLine("Message: " + exception.Message.Value);
                    }
                }
                else
                { //If response is not as expected

                    //Get model object from response
                    Model responseObject = response.Model;

                    //Get the response object's class
                    Type type = responseObject.GetType();

                    //Get all declared fields of the response class
                    Console.WriteLine("Type is: {0}", type.Name);

                    PropertyInfo[] props = type.GetProperties();

                    Console.WriteLine("Properties (N = {0}):", props.Length);

                    foreach (var prop in props)
                    {
                        if (prop.GetIndexParameters().Length == 0)
                        {
                            Console.WriteLine("{0} ({1}) : {2}", prop.Name, prop.PropertyType.Name, prop.GetValue(responseObject));
                        }
                        else
                        {
                            Console.WriteLine("{0} ({1}) : <Indexed>", prop.Name, prop.PropertyType.Name);
                        }
                    }
                }
            }
        }
    }
}
 
Get a Currency
              
              
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API.Currencies;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using ActionHandler = Com.Zoho.Crm.API.Currencies.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Currencies.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Currencies.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Currencies.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Currencies.BodyWrapper;
using ResponseHandler = Com.Zoho.Crm.API.Currencies.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Currencies.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Currencies.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Currencies
{
    public class Currency
    {
        /// 
        /// This method is used to get the details of a specific currency.
        /// 
        /// Specify the unique ID of the currency.
        public static void GetCurrency(long currencyId)
        {
            //example
            //long currencyId = 3477061011001;
            
            //Get instance of CurrenciesOperations Class
            CurrenciesOperations currenciesOperations = new CurrenciesOperations();
            
            //Call GetCurrency method that takes currencyId as parameter 
            APIResponse<ResponseHandler> response = currenciesOperations.GetCurrency(currencyId);
            
            if(response != null)
            {
                //Get the status code from response
                Console.WriteLine("Status Code: " + response.StatusCode);
                
                if(new List<int>() { 204, 304 }.Contains(response.StatusCode))
                {
                    Console.WriteLine(response.StatusCode == 204? "No Content" : "Not Modified");
                    return;
                }
                
                //Check if expected response is received
                if(response.IsExpected)
                {
                    //Get object from response
                    ResponseHandler responseHandler = response.Object;
                    
                    if(responseHandler is ResponseWrapper)
                    {
                        ResponseWrapper responseWrapper = (ResponseWrapper) responseHandler;
                        
                        //Get the obtained Currency instance
                        List<Com.Zoho.Crm.API.Currencies.Currency> currenciesList = responseWrapper.Currencies;
                        
                        foreach(Com.Zoho.Crm.API.Currencies.Currency currency in currenciesList)
                        {	
                            //Get the Symbol of each currency
                            Console.WriteLine("Currency Symbol: " + currency.Symbol);
                            
                            //Get the CreatedTime of each currency
                            Console.WriteLine("Currency CreatedTime: " + currency.CreatedTime);
                            
                            //Get the currency is IsActive
                            Console.WriteLine("Currency IsActive: " + currency.IsActive);
                            
                            //Get the ExchangeRate of each currency
                            Console.WriteLine("Currency ExchangeRate: " + currency.ExchangeRate);
                            
                            //Get the format Format instance of each currency
                            Format format = currency.Format;
                            
                            //Check if format is not null
                            if(format != null)
                            {
                                //Get the DecimalSeparator of the Format
                                Console.WriteLine("Currency Format DecimalSeparator: " + format.DecimalSeparator.Value);
                                
                                //Get the ThousandSeparator of the Format
                                Console.WriteLine("Currency Format ThousandSeparator: " + format.ThousandSeparator.Value);
                                
                                //Get the DecimalPlaces of the Format
                                Console.WriteLine("Currency Format DecimalPlaces: " + format.DecimalPlaces.Value);
                            }
                            
                            //Get the createdBy User instance of each currency
                            User createdBy = currency.CreatedBy;
                            
                            //Check if createdBy is not null
                            if(createdBy != null)
                            {
                                //Get the Name of the createdBy User
                                Console.WriteLine("Currency CreatedBy User-Name: " + createdBy.Name);
                                
                                //Get the ID of the createdBy User
                                Console.WriteLine("Currency CreatedBy User-ID: " + createdBy.Id);
                            }
                            
                            //Get the PrefixSymbol of each currency
                            Console.WriteLine("Currency PrefixSymbol: " + currency.PrefixSymbol);
                            
                            //Get the IsBase of each currency
                            Console.WriteLine("Currency IsBase: " + currency.IsBase);
                            
                            //Get the ModifiedTime of each currency
                            Console.WriteLine("Currency ModifiedTime: " + currency.ModifiedTime);
                            
                            //Get the Name of each currency
                            Console.WriteLine("Currency Name: " + currency.Name);
                            
                            //Get the modifiedBy User instance of each currency
                            User modifiedBy = currency.ModifiedBy;
                            
                            //Check if modifiedBy is not null
                            if(modifiedBy != null)
                            {
                                //Get the Name of the modifiedBy User
                                Console.WriteLine("Currency ModifiedBy User-Name: " + modifiedBy.Name);
                                
                                //Get the ID of the modifiedBy User
                                Console.WriteLine("Currency ModifiedBy User-ID: " + modifiedBy.Id);
                            }
                            
                            //Get the Id of each currency
                            Console.WriteLine("Currency Id: " + currency.Id);
                            
                            //Get the IsoCode of each currency
                            Console.WriteLine("Currency IsoCode: " + currency.IsoCode);
                        }
                    }
                    //Check if the request returned an exception
                    else if(responseHandler is APIException)
                    {
                        //Get the received APIException instance
                        APIException exception = (APIException) responseHandler;
                        
                        //Get the Status
                        Console.WriteLine("Status: " + exception.Status.Value);
                        
                        //Get the Code
                        Console.WriteLine("Code: " + exception.Code.Value);
                        
                        Console.WriteLine("Details: " );
                        
                        //Get the details map
                        foreach(KeyValuePair<string, object> entry in exception.Details)
                        {
                            //Get each value in the map
                            Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                        }
                        
                        //Get the Message
                        Console.WriteLine("Message: " + exception.Message.Value);
                    }
                }
                else
                { //If response is not as expected

                    //Get model object from response
                    Model responseObject = response.Model;

                    //Get the response object's class
                    Type type = responseObject.GetType();

                    //Get all declared fields of the response class
                    Console.WriteLine("Type is: {0}", type.Name);

                    PropertyInfo[] props = type.GetProperties();

                    Console.WriteLine("Properties (N = {0}):", props.Length);

                    foreach (var prop in props)
                    {
                        if (prop.GetIndexParameters().Length == 0)
                        {
                            Console.WriteLine("{0} ({1}) : {2}", prop.Name, prop.PropertyType.Name, prop.GetValue(responseObject));
                        }
                        else
                        {
                            Console.WriteLine("{0} ({1}) : <Indexed>", prop.Name, prop.PropertyType.Name);
                        }
                    }
                }
            }
        }
    }
}
 
Update a Currency
              
              
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API.Currencies;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using ActionHandler = Com.Zoho.Crm.API.Currencies.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Currencies.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Currencies.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Currencies.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Currencies.BodyWrapper;
using ResponseHandler = Com.Zoho.Crm.API.Currencies.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Currencies.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Currencies.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Currencies
{
    public class Currency
    {
        /// 
        /// This method is used to update currency details.
        /// 
        /// Specify the unique ID of the currency.
        public static void UpdateCurrency(long currencyId)
        {
            //example
            //long currencyId = 3477061011001;
            
            //Get instance of CurrenciesOperations Class
            CurrenciesOperations currenciesOperations = new CurrenciesOperations();
            
            //Get instance of BodyWrapper Class that will contain the request body
            BodyWrapper bodyWrapper = new BodyWrapper();
            
            //List of Currency instances
            List<Com.Zoho.Crm.API.Currencies.Currency> currencies = new List<Com.Zoho.Crm.API.Currencies.Currency>();
            
            //Get instance of Currency Class
            Com.Zoho.Crm.API.Currencies.Currency currency = new Com.Zoho.Crm.API.Currencies.Currency();
            
            //To set the position of the ISO code in the currency.
            //true: Display ISO code before the currency value.
            //false: Display ISO code after the currency value.
            currency.PrefixSymbol = true;
            
            //To set the rate at which the currency has to be exchanged for home currency.
            currency.ExchangeRate = "5.00";
            
            //To set the status of the currency.
            //true: The currency is active.
            //false: The currency is inactive.
            currency.IsActive = true;
            
            Format format = new Format();
            
            //It can be a Period or Comma, depending on the currency.
            format.DecimalSeparator = new Choice<string>("Period");
            
            //It can be a Period, Comma, or Space, depending on the currency.
            format.ThousandSeparator = new Choice<string>("Comma");

            //To set the number of decimal places allowed for the currency. It can be 0, 2, or 3.
            format.DecimalPlaces = new Choice<string>("2");

            //To set the format of the currency
            currency.Format = format;
            
            currencies.Add(currency);
            
            //Set the list to Currency in BodyWrapper instance
            bodyWrapper.Currencies = currencies;

            //Call UpdateCurrency method that takes currencyId and BodyWrapper instance as parameters 
            APIResponse<ActionHandler>response = currenciesOperations.UpdateCurrency(currencyId, bodyWrapper);
            
            if(response != null)
            {
                //Get the status code from response
                Console.WriteLine("Status Code: " + response.StatusCode);
                
                //Check if expected response is received
                if(response.IsExpected)
                {
                    //Get object from response
                    ActionHandler actionHandler = response.Object;
                    
                    if(actionHandler is ActionWrapper)
                    {
                        //Get the received ActionWrapper instance
                        ActionWrapper actionWrapper = (ActionWrapper) actionHandler;
                        
                        //Get the list of obtained ActionResponse instances
                        List<ActionResponse> actionResponses = actionWrapper.Currencies;
                        
                        foreach(ActionResponse actionResponse in actionResponses)
                        {
                            //Check if the request is successful
                            if(actionResponse is SuccessResponse)
                            {
                                //Get the received SuccessResponse instance
                                SuccessResponse successResponse = (SuccessResponse)actionResponse;
                                
                                //Get the Status
                                Console.WriteLine("Status: " + successResponse.Status.Value);
                                
                                //Get the Code
                                Console.WriteLine("Code: " + successResponse.Code.Value);
                                
                                Console.WriteLine("Details: " );
                                
                                //Get the details map
                                foreach(KeyValuePair<string, object> entry in successResponse.Details)
                                {
                                    //Get each value in the map
                                    Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                                }
                                
                                //Get the Message
                                Console.WriteLine("Message: " + successResponse.Message.Value);
                            }
                            //Check if the request returned an exception
                            else if(actionResponse is APIException)
                            {
                                //Get the received APIException instance
                                APIException exception = (APIException) actionResponse;
                                
                                //Get the Status
                                Console.WriteLine("Status: " + exception.Status.Value);
                                
                                //Get the Code
                                Console.WriteLine("Code: " + exception.Code.Value);
                                
                                Console.WriteLine("Details: " );
                                
                                //Get the details map
                                foreach(KeyValuePair<string, object> entry in exception.Details)
                                {
                                    //Get each value in the map
                                    Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                                }
                                
                                //Get the Message
                                Console.WriteLine("Message: " + exception.Message.Value);
                            }
                        }
                    }
                    //Check if the request returned an exception
                    else if(actionHandler is APIException)
                    {
                        //Get the received APIException instance
                        APIException exception = (APIException) actionHandler;
                        
                        //Get the Status
                        Console.WriteLine("Status: " + exception.Status.Value);
                        
                        //Get the Code
                        Console.WriteLine("Code: " + exception.Code.Value);
                        
                        Console.WriteLine("Details: " );
                        
                        //Get the details map
                        foreach(KeyValuePair<string, object> entry in exception.Details)
                        {
                            //Get each value in the map
                            Console.WriteLine(entry.Key + ": " + JsonConvert.SerializeObject(entry.Value));
                        }
                        
                        //Get the Message
                        Console.WriteLine("Message: " + exception.Message.Value);
                    }
                }
                else
                { //If response is not as expected

                    //Get model object from response
                    Model responseObject = response.Model;

                    //Get the response object's class
                    Type type = responseObject.GetType();

                    //Get all declared fields of the response class
                    Console.WriteLine("Type is: {0}", type.Name);

                    PropertyInfo[] props = type.GetProperties();

                    Console.WriteLine("Properties (N = {0}):", props.Length);

                    foreach (var prop in props)
                    {
                        if (prop.GetIndexParameters().Length == 0)
                        {
                            Console.WriteLine("{0} ({1}) : {2}", prop.Name, prop.PropertyType.Name, prop.GetValue(responseObject));
                        }
                        else
                        {
                            Console.WriteLine("{0} ({1}) : <Indexed>", prop.Name, prop.PropertyType.Name);
                        }
                    }
                }
            }
        }
    }
}