C# SDK Samples - Notes Operations

Get Notes
              
              
using System;

using System.Collections.Generic;

using System.Reflection;

using Com.Zoho.Crm.API;

using Com.Zoho.Crm.API.Attachments;

using Com.Zoho.Crm.API.Notes;

using Com.Zoho.Crm.API.Record;

using Com.Zoho.Crm.API.Users;

using Com.Zoho.Crm.API.Util;

using Newtonsoft.Json;

using static Com.Zoho.Crm.API.Notes.NotesOperations;

using ActionHandler = Com.Zoho.Crm.API.Notes.ActionHandler;

using ActionResponse = Com.Zoho.Crm.API.Notes.ActionResponse;

using ActionWrapper = Com.Zoho.Crm.API.Notes.ActionWrapper;

using APIException = Com.Zoho.Crm.API.Notes.APIException;

using BodyWrapper = Com.Zoho.Crm.API.Notes.BodyWrapper;

using Info = Com.Zoho.Crm.API.Notes.Info;

using ResponseHandler = Com.Zoho.Crm.API.Notes.ResponseHandler;

using ResponseWrapper = Com.Zoho.Crm.API.Notes.ResponseWrapper;

using SuccessResponse = Com.Zoho.Crm.API.Notes.SuccessResponse;

namespace Com.Zoho.Crm.Sample.Notes
{
    public class Note
    {
        /// 
        /// This method is used to get the list of notes and print the response.
        /// 
        public static void GetNotes()
        {
            //Get instance of NotesOperations Class
            NotesOperations notesOperations = new NotesOperations();
            
            //Get instance of ParameterMap Class
            ParameterMap paramInstance = new ParameterMap();
            
            paramInstance.Add(GetNotesParam.PAGE, 1);

            //paramInstance.Add(GetNotesParam.PER_PAGE, 1);

            paramInstance.Add(GetNotesParam.FIELDS, "Note_Title,Note_Content");

            //Get instance of HeaderMap Class
            HeaderMap headerInstance = new HeaderMap();

            DateTimeOffset ifModifiedSince = new DateTimeOffset(new DateTime(2020, 05, 15, 12, 0, 0, DateTimeKind.Local));

            headerInstance.Add(GetNotesHeader.IF_MODIFIED_SINCE, ifModifiedSince);
            
            //Call GetNotes method that takes paramInstance and headerInstance as parameters
            APIResponse<ResponseHandler> response = notesOperations.GetNotes(paramInstance, headerInstance);
            
            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 Note instances
                        List<Com.Zoho.Crm.API.Notes.Note> notes = responseWrapper.Data;
                    
                        foreach(Com.Zoho.Crm.API.Notes.Note note in notes)
                        {
                            //Get the owner User instance of each Note
                            User owner = note.Owner;
                            
                            //Check if owner is not null
                            if(owner != null)
                            {
                                //Get the name of the owner User
                                Console.WriteLine("Note Owner User-Name: " + owner.Name);
                                
                                //Get the ID of the owner User
                                Console.WriteLine("Note Owner User-ID: " + owner.Id);
                                
                                //Get the Email of the owner User
                                Console.WriteLine("Note Owner Email: " + owner.Email);
                            }
                            
                            //Get the ModifiedTime of each Module
                            Console.WriteLine("Note ModifiedTime: " + note.ModifiedTime);
                            
                            //Get the list of Attachment instance each Note
                            List<Attachment> attachments = note.Attachments;
                            
                            //Check if attachments is not null
                            if(attachments != null)
                            {
                                foreach(Attachment attachment in attachments)
                                {
                                    PrintAttachment(attachment);
                                }
                            }
                            
                            //Get the CreatedTime of each Note
                            Console.WriteLine("Note CreatedTime: " + note.CreatedTime);

                            //Get the parentId Record instance of each Note
                            Com.Zoho.Crm.API.Record.Record parentId = note.ParentId;
                            
                            //Check if parentId is not null
                            if(parentId != null)
                            {
                                if(parentId.GetKeyValue("name") != null)
                                {
                                    //Get the parent record Name of each Note
                                    Console.WriteLine("Note parent record Name: " + parentId.GetKeyValue("name"));
                                }
                                
                                //Get the parent record ID of each Note
                                Console.WriteLine("Note parent record ID: " + parentId.Id);
                            }
                            
                            //Get the Editable of each Note
                            Console.WriteLine("Note Editable: " + note.Editable);
                            
                            //Get the SeModule of each Note
                            Console.WriteLine("Note SeModule: " + note.SeModule);
                            
                            //Get the IsSharedToClient of each Note
                            Console.WriteLine("Note IsSharedToClient: " + note.IsSharedToClient);
                            
                            //Get the modifiedBy User instance of each Note
                            User modifiedBy = note.ModifiedBy;
                            
                            //Check if modifiedBy is not null
                            if(modifiedBy != null)
                            {
                                //Get the Name of the modifiedBy User
                                Console.WriteLine("Note Modified By User-Name: " + modifiedBy.Name);
                                
                                //Get the ID of the modifiedBy User
                                Console.WriteLine("Note Modified By User-ID: " + modifiedBy.Id);
                                
                                //Get the Email of the modifiedBy User
                                Console.WriteLine("Note Modified By User-Email: " + modifiedBy.Email);
                            }
                            
                            //Get the Size of each Note
                            Console.WriteLine("Note Size: " + note.Size);
                            
                            //Get the State of each Note
                            Console.WriteLine("Note State: " + note.State);
                            
                            //Get the VoiceNote of each Note
                            Console.WriteLine("Note VoiceNote: " + note.VoiceNote);
                            
                            //Get the Id of each Note
                            Console.WriteLine("Note Id: " + note.Id);
                            
                            //Get the createdBy User instance of each Note
                            User createdBy = note.CreatedBy;
                            
                            //Check if createdBy is not null
                            if(createdBy != null)
                            {
                                //Get the Name of the createdBy User
                                Console.WriteLine("Note Created By User-Name: " + createdBy.Name);
                                
                                //Get the ID of the createdBy User
                                Console.WriteLine("Note Created By User-ID: " + createdBy.Id);
                                
                                //Get the Email of the createdBy User
                                Console.WriteLine("Note Created By User-Email: " + createdBy.Email);
                            }
                            
                            //Get the NoteTitle of each Note
                            Console.WriteLine("Note NoteTitle: " + note.NoteTitle);
                            
                            //Get the NoteContent of each Note
                            Console.WriteLine("Note NoteContent: " + note.NoteContent);
                        }
                        
                        //Get the Object obtained Info instance
                        Info info = responseWrapper.Info;
                        
                        if(info != null)
                        {
                            if(info.PerPage != null)
                            {
                                //Get the PerPage of the Info
                                Console.WriteLine("Note Info PerPage: " + info.PerPage);
                            }
                            
                            if(info.Count != null)
                            {
                                //Get the Count of the Info
                                Console.WriteLine("Note Info Count: " + info.Count);
                            }
                            
                            if(info.Page != null)
                            {
                                //Get the Default of the Info
                                Console.WriteLine("Note Info Page: " + info.Page);
                            }
                            
                            if(info.MoreRecords != null)
                            {
                                //Get the Default of the Info
                                Console.WriteLine("Note Info MoreRecords: " + info.MoreRecords);
                            }
                        }
                        
                    }
                    //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);
                        }
                    }
                }
            }
        }
        
        private static void PrintAttachment(Attachment attachment)
        {
            //Get the Owner User instance of each attachment
            User owner = attachment.Owner;
            
            //Check if owner is not null
            if(owner != null)
            {
                //Get the Name of the Owner
                Console.WriteLine("Note Attachment Owner User-Name: " + owner.Name);
                
                //Get the ID of the Owner
                Console.WriteLine("Note Attachment Owner User-ID: " + owner.Id);
                
                //Get the Email of the Owner
                Console.WriteLine("Note Attachment Owner User-Email: " + owner.Email);
            }
            
            //Get the modified time of each attachment
            Console.WriteLine("Note Attachment Modified Time: " + attachment.ModifiedTime);
            
            //Get the name of the File
            Console.WriteLine("Note Attachment File Name: " + attachment.FileName);
            
            //Get the created time of each attachment
            Console.WriteLine("Note Attachment Created Time: " + attachment.CreatedTime);
            
            //Get the Attachment file size
            Console.WriteLine("Note Attachment File Size: " + attachment.Size);

            //Get the parentId Record instance of each attachment
            Com.Zoho.Crm.API.Record.Record parentId = attachment.ParentId;
            
            //Check if parentId is not null
            if(parentId != null)
            {	
                //Get the parent record Name of each attachment
                Console.WriteLine("Note Attachment parent record Name: " + parentId.GetKeyValue("name"));
                
                //Get the parent record ID of each attachment
                Console.WriteLine("Note Attachment parent record ID: " + parentId.Id);
            }
            
            //Get the attachment is Editable
            Console.WriteLine("Note Attachment is Editable: " + attachment.Editable);
            
            //Get the file ID of each attachment
            Console.WriteLine("Note Attachment File ID: " + attachment.FileId);
            
            //Get the type of each attachment
            Console.WriteLine("Note Attachment File Type: " + attachment.Type);
            
            //Get the seModule of each attachment
            Console.WriteLine("Note Attachment seModule: " + attachment.SeModule);
            
            //Get the modifiedBy User instance of each attachment
            User modifiedBy = attachment.ModifiedBy;
            
            //Check if modifiedBy is not null
            if(modifiedBy != null)
            {
                //Get the Name of the modifiedBy User
                Console.WriteLine("Note Attachment Modified By User-Name: " + modifiedBy.Name);
                
                //Get the ID of the modifiedBy User
                Console.WriteLine("Note Attachment Modified By User-ID: " + modifiedBy.Id);
                
                //Get the Email of the modifiedBy User
                Console.WriteLine("Note Attachment Modified By User-Email: " + modifiedBy.Email);
            }
            
            //Get the state of each attachment
            Console.WriteLine("Note Attachment State: " + attachment.State);
            
            //Get the ID of each attachment
            Console.WriteLine("Note Attachment ID: " + attachment.Id);
            
            //Get the createdBy User instance of each attachment
            User createdBy = attachment.CreatedBy;
            
            //Check if createdBy is not null
            if(createdBy != null)
            {
                //Get the name of the createdBy User
                Console.WriteLine("Note Attachment Created By User-Name: " + createdBy.Name);
                
                //Get the ID of the createdBy User
                Console.WriteLine("Note Attachment Created By User-ID: " + createdBy.Id);
                
                //Get the Email of the createdBy User
                Console.WriteLine("Note Attachment Created By User-Email: " + createdBy.Email);
            }
            
            //Get the linkUrl of each attachment
            Console.WriteLine("Note Attachment LinkUrl: " + attachment.LinkUrl);
        }
    }
}
 
Create Notes
              
              
using System;

using System.Collections.Generic;

using System.Reflection;

using Com.Zoho.Crm.API;

using Com.Zoho.Crm.API.Attachments;

using Com.Zoho.Crm.API.Notes;

using Com.Zoho.Crm.API.Record;

using Com.Zoho.Crm.API.Users;

using Com.Zoho.Crm.API.Util;

using Newtonsoft.Json;

using static Com.Zoho.Crm.API.Notes.NotesOperations;

using ActionHandler = Com.Zoho.Crm.API.Notes.ActionHandler;

using ActionResponse = Com.Zoho.Crm.API.Notes.ActionResponse;

using ActionWrapper = Com.Zoho.Crm.API.Notes.ActionWrapper;

using APIException = Com.Zoho.Crm.API.Notes.APIException;

using BodyWrapper = Com.Zoho.Crm.API.Notes.BodyWrapper;

using Info = Com.Zoho.Crm.API.Notes.Info;

using ResponseHandler = Com.Zoho.Crm.API.Notes.ResponseHandler;

using ResponseWrapper = Com.Zoho.Crm.API.Notes.ResponseWrapper;

using SuccessResponse = Com.Zoho.Crm.API.Notes.SuccessResponse;

namespace Com.Zoho.Crm.Sample.Notes
{
    public class Note
    {
        /// 
        /// This method is used to add new notes and print the response.
        /// 
        public static void CreateNotes()
        {	
            //Get instance of NotesOperations Class
            NotesOperations notesOperations = new NotesOperations();
            
            //Get instance of BodyWrapper Class that will contain the request body
            BodyWrapper bodyWrapper = new BodyWrapper();
            
            //List of Note instances
            List<Com.Zoho.Crm.API.Notes.Note> notes = new List<Com.Zoho.Crm.API.Notes.Note>();
            
            for(int i = 1; i <= 5; i++)
            {
                //Get instance of Note Class
                Com.Zoho.Crm.API.Notes.Note note = new Com.Zoho.Crm.API.Notes.Note();

                //Set Note_Title of the Note
                note.NoteTitle = "Contacted";

                //Set NoteContent of the Note
                note.NoteContent = "Need to do further tracking";

                //Get instance of Record Class
                Com.Zoho.Crm.API.Record.Record parentRecord = new Com.Zoho.Crm.API.Record.Record();
                
                //Set ID of the Record
                parentRecord.Id = 34770616920152;

                //Set ParentId of the Note
                note.ParentId = parentRecord;

                //Set SeModule of the Record
                note.SeModule = "Leads";

                //Add Note instance to the list
                notes.Add(note);
            }
            
            //Set the list to notes in BodyWrapper instance
            bodyWrapper.Data = notes;
            
            //Call CreateNotes method that takes BodyWrapper instance as parameter 
            APIResponse<ActionHandler> response = notesOperations.CreateNotes(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.Data;
                        
                        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 Notes
              
              
using System;

using System.Collections.Generic;

using System.Reflection;

using Com.Zoho.Crm.API;

using Com.Zoho.Crm.API.Attachments;

using Com.Zoho.Crm.API.Notes;

using Com.Zoho.Crm.API.Record;

using Com.Zoho.Crm.API.Users;

using Com.Zoho.Crm.API.Util;

using Newtonsoft.Json;

using static Com.Zoho.Crm.API.Notes.NotesOperations;

using ActionHandler = Com.Zoho.Crm.API.Notes.ActionHandler;

using ActionResponse = Com.Zoho.Crm.API.Notes.ActionResponse;

using ActionWrapper = Com.Zoho.Crm.API.Notes.ActionWrapper;

using APIException = Com.Zoho.Crm.API.Notes.APIException;

using BodyWrapper = Com.Zoho.Crm.API.Notes.BodyWrapper;

using Info = Com.Zoho.Crm.API.Notes.Info;

using ResponseHandler = Com.Zoho.Crm.API.Notes.ResponseHandler;

using ResponseWrapper = Com.Zoho.Crm.API.Notes.ResponseWrapper;

using SuccessResponse = Com.Zoho.Crm.API.Notes.SuccessResponse;

namespace Com.Zoho.Crm.Sample.Notes
{
    public class Note
    {
        /// 
        /// This method is used to update an existing note and print the response.
        /// 
        public static void UpdateNotes()
        {
            //Get instance of NotesOperations Class
            NotesOperations notesOperations = new NotesOperations();
            
            //Get instance of BodyWrapper Class that will contain the request body
            BodyWrapper bodyWrapper = new BodyWrapper();
            
            //List of Note instances
            List<Com.Zoho.Crm.API.Notes.Note> notes = new List<Com.Zoho.Crm.API.Notes.Note>();

            //Get instance of Note Class
            Com.Zoho.Crm.API.Notes.Note note = new Com.Zoho.Crm.API.Notes.Note();

            note.Id = 34770617376024;

            //Set Note_Title of the Note
            note.NoteTitle = "Contacted12";

            //Set NoteContent of the Note
            note.NoteContent = "Need to do further tracking12";

            //Add Note instance to the list
            notes.Add(note);

            note = new Com.Zoho.Crm.API.Notes.Note();

            note.Id = 34770617376023;

            //Set Note_Title of the Note
            note.NoteTitle = "Contacted13";

            //Set NoteContent of the Note
            note.NoteContent = "Need to do further tracking13";

            //Add Note instance to the list
            notes.Add(note);

            //Set the list to notes in BodyWrapper instance
            bodyWrapper.Data = notes;
            
            //Call UpdateNotes method that takes BodyWrapper instance as parameter 
            APIResponse<ActionHandler> response = notesOperations.UpdateNotes(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.Data;
                        
                        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: " );
                                
                                if(exception.Details != null)
                                {
                                    //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);
                        }
                    }
                }
            }
        }
    }
}
 
Delete Notes
              
              
using System;

using System.Collections.Generic;

using System.Reflection;

using Com.Zoho.Crm.API;

using Com.Zoho.Crm.API.Attachments;

using Com.Zoho.Crm.API.Notes;

using Com.Zoho.Crm.API.Record;

using Com.Zoho.Crm.API.Users;

using Com.Zoho.Crm.API.Util;

using Newtonsoft.Json;

using static Com.Zoho.Crm.API.Notes.NotesOperations;

using ActionHandler = Com.Zoho.Crm.API.Notes.ActionHandler;

using ActionResponse = Com.Zoho.Crm.API.Notes.ActionResponse;

using ActionWrapper = Com.Zoho.Crm.API.Notes.ActionWrapper;

using APIException = Com.Zoho.Crm.API.Notes.APIException;

using BodyWrapper = Com.Zoho.Crm.API.Notes.BodyWrapper;

using Info = Com.Zoho.Crm.API.Notes.Info;

using ResponseHandler = Com.Zoho.Crm.API.Notes.ResponseHandler;

using ResponseWrapper = Com.Zoho.Crm.API.Notes.ResponseWrapper;

using SuccessResponse = Com.Zoho.Crm.API.Notes.SuccessResponse;

namespace Com.Zoho.Crm.Sample.Notes
{
    public class Note
    {
        /// 
        /// This method is used to delete notes in bulk and print the response.
        /// 
        /// The List of Note IDs to be deleted
        public static void DeleteNotes(List<long> notesId)
        {
            //example 
            //List<long> notesId = new List<long>() { 34770616153001, 34770616153002, 34770616154005 };

            //Get instance of NotesOperations Class
            NotesOperations notesOperations = new NotesOperations();
            
            //Get instance of ParameterMap Class
            ParameterMap paramInstance = new ParameterMap();
            
            foreach(long id in notesId)
            {
                paramInstance.Add(DeleteNotesParam.IDS, id);
            }
            
            //Call DeleteNotes method that takes paramInstance as parameter 
            APIResponse<ActionHandler> response = notesOperations.DeleteNotes(paramInstance);
            
            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.Data;
                        
                        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: " );
                                
                                if(exception.Details != null)
                                {
                                    //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);
                        }
                    }
                }
            }
        }
    }
}
 
Get a Note
              
              
using System;

using System.Collections.Generic;

using System.Reflection;

using Com.Zoho.Crm.API;

using Com.Zoho.Crm.API.Attachments;

using Com.Zoho.Crm.API.Notes;

using Com.Zoho.Crm.API.Record;

using Com.Zoho.Crm.API.Users;

using Com.Zoho.Crm.API.Util;

using Newtonsoft.Json;

using static Com.Zoho.Crm.API.Notes.NotesOperations;

using ActionHandler = Com.Zoho.Crm.API.Notes.ActionHandler;

using ActionResponse = Com.Zoho.Crm.API.Notes.ActionResponse;

using ActionWrapper = Com.Zoho.Crm.API.Notes.ActionWrapper;

using APIException = Com.Zoho.Crm.API.Notes.APIException;

using BodyWrapper = Com.Zoho.Crm.API.Notes.BodyWrapper;

using Info = Com.Zoho.Crm.API.Notes.Info;

using ResponseHandler = Com.Zoho.Crm.API.Notes.ResponseHandler;

using ResponseWrapper = Com.Zoho.Crm.API.Notes.ResponseWrapper;

using SuccessResponse = Com.Zoho.Crm.API.Notes.SuccessResponse;

namespace Com.Zoho.Crm.Sample.Notes
{
    public class Note
    {
        /// 
        /// This method is used to get the note and print the response.
        /// 
        /// The ID of the Note to be obtained
        public static void GetNote(long noteId)
        {
            //example
            //long noteId = 34770616153005;
            
            //Get instance of NotesOperations Class
            NotesOperations notesOperations = new NotesOperations();

            //Get instance of ParameterMap Class
            ParameterMap paramInstance = new ParameterMap();

            paramInstance.Add(GetNoteParam.FIELDS, "Note_Title,Note_Content");

            //Get instance of HeaderMap Class
            HeaderMap headerInstance = new HeaderMap();

            DateTimeOffset ifModifiedSince = new DateTimeOffset(new DateTime(2020, 05, 15, 12, 0, 0, DateTimeKind.Local));

            headerInstance.Add(GetNoteHeader.IF_MODIFIED_SINCE, ifModifiedSince);

            //Call GetNote method that takes noteId as parameter
            APIResponse<ResponseHandler> response = notesOperations.GetNote(noteId, paramInstance, headerInstance);
            
            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 Note instances
                        List<Com.Zoho.Crm.API.Notes.Note> notes = responseWrapper.Data;
                    
                        foreach(Com.Zoho.Crm.API.Notes.Note note in notes)
                        {
                            //Get the owner User instance of each Note
                            User owner = note.Owner;
                            
                            //Check if owner is not null
                            if(owner != null)
                            {
                                //Get the name of the owner User
                                Console.WriteLine("Note Owner User-Name: " + owner.Name);
                                
                                //Get the ID of the owner User
                                Console.WriteLine("Note Owner User-ID: " + owner.Id);
                                
                                //Get the Email of the owner User
                                Console.WriteLine("Note Owner Email: " + owner.Email);
                            }
                            
                            //Get the ModifiedTime of each Module
                            Console.WriteLine("Note ModifiedTime: " + note.ModifiedTime);
                            
                            //Get the list of Attachment instance each Note
                            List<Attachment> attachments = note.Attachments;
                            
                            //Check if attachments is not null
                            if(attachments != null)
                            {
                                foreach(Attachment attachment in attachments)
                                {
                                    PrintAttachment(attachment);
                                }
                            }
                            
                            //Get the CreatedTime of each Note
                            Console.WriteLine("Note CreatedTime: " + note.CreatedTime);

                            //Get the parentId Record instance of each Note
                            Com.Zoho.Crm.API.Record.Record parentId = note.ParentId;
                            
                            //Check if parentId is not null
                            if(parentId != null)
                            {
                                if(parentId.GetKeyValue("name") != null)
                                {
                                    //Get the parent record Name of each Note
                                    Console.WriteLine("Note parent record Name: " + parentId.GetKeyValue("name"));
                                }
                                
                                //Get the parent record ID of each Note
                                Console.WriteLine("Note parent record ID: " + parentId.Id);
                            }
                            
                            //Get the Editable of each Note
                            Console.WriteLine("Note Editable: " + note.Editable);
                            
                            //Get the SeModule of each Note
                            Console.WriteLine("Note SeModule: " + note.SeModule);
                            
                            //Get the IsSharedToClient of each Note
                            Console.WriteLine("Note IsSharedToClient: " + note.IsSharedToClient);
                            
                            //Get the modifiedBy User instance of each Note
                            User modifiedBy = note.ModifiedBy;
                            
                            //Check if modifiedBy is not null
                            if(modifiedBy != null)
                            {
                                //Get the Name of the modifiedBy User
                                Console.WriteLine("Note Modified By User-Name: " + modifiedBy.Name);
                                
                                //Get the ID of the modifiedBy User
                                Console.WriteLine("Note Modified By User-ID: " + modifiedBy.Id);
                                
                                //Get the Email of the modifiedBy User
                                Console.WriteLine("Note Modified By User-Email: " + modifiedBy.Email);
                            }
                            
                            //Get the Size of each Note
                            Console.WriteLine("Note Size: " + note.Size);
                            
                            //Get the State of each Note
                            Console.WriteLine("Note State: " + note.State);
                            
                            //Get the VoiceNote of each Note
                            Console.WriteLine("Note VoiceNote: " + note.VoiceNote);
                            
                            //Get the Id of each Note
                            Console.WriteLine("Note Id: " + note.Id);
                            
                            //Get the createdBy User instance of each Note
                            User createdBy = note.CreatedBy;
                            
                            //Check if createdBy is not null
                            if(createdBy != null)
                            {
                                //Get the Name of the createdBy User
                                Console.WriteLine("Note Created By User-Name: " + createdBy.Name);
                                
                                //Get the ID of the createdBy User
                                Console.WriteLine("Note Created By User-ID: " + createdBy.Id);
                                
                                //Get the Email of the createdBy User
                                Console.WriteLine("Note Created By User-Email: " + createdBy.Email);
                            }
                            
                            //Get the NoteTitle of each Note
                            Console.WriteLine("Note NoteTitle: " + note.NoteTitle);
                            
                            //Get the NoteContent of each Note
                            Console.WriteLine("Note NoteContent: " + note.NoteContent);
                        }
                    }
                    //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 Note
              
              
using System;

using System.Collections.Generic;

using System.Reflection;

using Com.Zoho.Crm.API;

using Com.Zoho.Crm.API.Attachments;

using Com.Zoho.Crm.API.Notes;

using Com.Zoho.Crm.API.Record;

using Com.Zoho.Crm.API.Users;

using Com.Zoho.Crm.API.Util;

using Newtonsoft.Json;

using static Com.Zoho.Crm.API.Notes.NotesOperations;

using ActionHandler = Com.Zoho.Crm.API.Notes.ActionHandler;

using ActionResponse = Com.Zoho.Crm.API.Notes.ActionResponse;

using ActionWrapper = Com.Zoho.Crm.API.Notes.ActionWrapper;

using APIException = Com.Zoho.Crm.API.Notes.APIException;

using BodyWrapper = Com.Zoho.Crm.API.Notes.BodyWrapper;

using Info = Com.Zoho.Crm.API.Notes.Info;

using ResponseHandler = Com.Zoho.Crm.API.Notes.ResponseHandler;

using ResponseWrapper = Com.Zoho.Crm.API.Notes.ResponseWrapper;

using SuccessResponse = Com.Zoho.Crm.API.Notes.SuccessResponse;

namespace Com.Zoho.Crm.Sample.Notes
{
    public class Note
    {
        /// 
        /// This method is used to update an existing note and print the response.
        /// 
        /// The ID of the Note to be obtained
        public static void UpdateNote(long noteId)
        {
            //example
            //long noteId = 34770616153005;
            
            //Get instance of NotesOperations Class
            NotesOperations notesOperations = new NotesOperations();
            
            //Get instance of BodyWrapper Class that will contain the request body
            BodyWrapper bodyWrapper = new BodyWrapper();
            
            //List of Note instances
            List<Com.Zoho.Crm.API.Notes.Note> notes = new List<Com.Zoho.Crm.API.Notes.Note>();
            
            Com.Zoho.Crm.API.Notes.Note note = new Com.Zoho.Crm.API.Notes.Note();
            
            //Set Note_Title of the Note
            note.NoteTitle = "Contacted12";
            
            //Set NoteContent of the Note
            note.NoteContent = "Need to do further tracking12";

            //Get instance of Record Class
            API.Record.Record parentRecord = new API.Record.Record();
            
            //Set ID of the Record
            parentRecord.Id = 34770616920152;

            //Set ParentId of the Note
            note.ParentId = parentRecord;

            note.SeModule = "Leads";

            //Add Note instance to the list
            notes.Add(note);
            
            //Set the list to notes in BodyWrapper instance
            bodyWrapper.Data = notes;

            //Call updateNote method that takes noteId and BodyWrapper instance as parameter 
            APIResponse<ActionHandler> response = notesOperations.UpdateNote(noteId, 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.Data;
                        
                        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: " );
                                
                                if(exception.Details != null)
                                {
                                    //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);
                        }
                    }
                }
            }
        }
    }
}
 
Delete a Note
              
              
using System;

using System.Collections.Generic;

using System.Reflection;

using Com.Zoho.Crm.API;

using Com.Zoho.Crm.API.Attachments;

using Com.Zoho.Crm.API.Notes;

using Com.Zoho.Crm.API.Record;

using Com.Zoho.Crm.API.Users;

using Com.Zoho.Crm.API.Util;

using Newtonsoft.Json;

using static Com.Zoho.Crm.API.Notes.NotesOperations;

using ActionHandler = Com.Zoho.Crm.API.Notes.ActionHandler;

using ActionResponse = Com.Zoho.Crm.API.Notes.ActionResponse;

using ActionWrapper = Com.Zoho.Crm.API.Notes.ActionWrapper;

using APIException = Com.Zoho.Crm.API.Notes.APIException;

using BodyWrapper = Com.Zoho.Crm.API.Notes.BodyWrapper;

using Info = Com.Zoho.Crm.API.Notes.Info;

using ResponseHandler = Com.Zoho.Crm.API.Notes.ResponseHandler;

using ResponseWrapper = Com.Zoho.Crm.API.Notes.ResponseWrapper;

using SuccessResponse = Com.Zoho.Crm.API.Notes.SuccessResponse;

namespace Com.Zoho.Crm.Sample.Notes
{
    public class Note
    {
        /// 
        /// This method is used to delete single Note with ID and print the response.
        /// 
        /// The ID of the Note to be deleted
        public static void DeleteNote(long noteId)
        {
            //example
            //long noteId = 34770616153005;
            
            //Get instance of NotesOperations Class
            NotesOperations notesOperations = new NotesOperations();
            
            //Call DeleteNote method that takes noteId as parameter 
            APIResponse<ActionHandler> response = notesOperations.DeleteNote(noteId);
            
            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.Data;
                        
                        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: " );
                                
                                if(exception.Details != null)
                                {
                                    //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);
                        }
                    }
                }
            }
        }
    }
}