C# SDK Samples - Modules Operations
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API;
using Com.Zoho.Crm.API.CustomViews;
using Com.Zoho.Crm.API.Modules;
using Com.Zoho.Crm.API.Profiles;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using static Com.Zoho.Crm.API.Modules.ModulesOperations;
using ActionHandler = Com.Zoho.Crm.API.Modules.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Modules.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Modules.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Modules.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Modules.BodyWrapper;
using Module = Com.Zoho.Crm.API.Modules.Module;
using ResponseHandler = Com.Zoho.Crm.API.Modules.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Modules.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Modules.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Modules
{
public class Modules
{
///
/// This method is used to get metadata about single module with it's API Name and print the response.
///
/// The API Name of the module to obtain metadata
public static void GetModule(string moduleAPIName)
{
//example
//string moduleAPIName = "Leads";
//Get instance of ModulesOperations Class
ModulesOperations moduleOperations = new ModulesOperations();
//Call GetModule method that takes moduleAPIName as parameter
APIResponse<ResponseHandler> response = moduleOperations.GetModule(moduleAPIName);
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 Module instances
List<Module> modules = responseWrapper.Modules;
foreach(Module module in modules)
{
//Get the Name of each Module
Console.WriteLine("Module Name: " + module.Name);
//Get the GlobalSearchSupported of each Module
Console.WriteLine("Module GlobalSearchSupported: " + module.GlobalSearchSupported);
if(module.KanbanView != null)
{
//Get the KanbanView of each Module
Console.WriteLine("Module KanbanView: " + module.KanbanView);
}
//Get the Deletable of each Module
Console.WriteLine("Module Deletable: " + module.Deletable);
//Get the Description of each Module
Console.WriteLine("Module Description: " + module.Description);
//Get the Creatable of each Module
Console.WriteLine("Module Creatable: " + module.Creatable);
//Get the FilterStatus of each Module
Console.WriteLine("Module FilterStatus: " + module.FilterStatus);
//Get the InventoryTemplateSupported of each Module
Console.WriteLine("Module InventoryTemplateSupported: " + module.InventoryTemplateSupported);
if(module.ModifiedTime != null)
{
//Get the ModifiedTime of each Module
Console.WriteLine("Module ModifiedTime: " + module.ModifiedTime);
}
//Get the PluralLabel of each Module
Console.WriteLine("Module PluralLabel: " + module.PluralLabel);
//Get the PresenceSubMenu of each Module
Console.WriteLine("Module PresenceSubMenu: " + module.PresenceSubMenu);
//Get the TriggersSupported of each Module
Console.WriteLine("Module TriggersSupported: " + module.TriggersSupported);
//Get the Id of each Module
Console.WriteLine("Module Id: " + module.Id);
//Get the RelatedListProperties instance of each Module
RelatedListProperties relatedListProperties = module.RelatedListProperties;
//Check if relatedListProperties is not null
if(relatedListProperties != null)
{
//Get the SortBy of each RelatedListProperties
Console.WriteLine("Module RelatedListProperties SortBy: " + relatedListProperties.SortBy);
//Get List of fields APIName
List<string>
Console.WriteLine("Module CustomView Default: " + customView.Default);
//Get the SystemDefined of the CustomView
Console.WriteLine("Module CustomView SystemDefined: " + customView.SystemDefined);
//Get the Name of the CustomView
Console.WriteLine("Module CustomView Name: " + customView.Name);
//Get the ID of the CustomView
Console.WriteLine("Module CustomView ID: " + customView.Id);
//Get the Category of the CustomView
Console.WriteLine("Module CustomView Category: " + customView.Category);
//Get the list of string
List<string> fields = customView.Fields;
if(fields != null)
{
foreach(string field in fields)
{
Console.WriteLine(field);
}
}
if(customView.Favorite != null)
{
//Get the Favorite of the CustomView
Console.WriteLine("Module CustomView Favorite: " + customView.Favorite);
}
if(customView.SortOrder != null)
{
//Get the SortOrder of the CustomView
Console.WriteLine("Module CustomView SortOrder: " + customView.SortOrder);
}
}
private static void PrintCriteria(Criteria criteria)
{
if(criteria.Comparator != null)
{
//Get the Comparator of the Criteria
Console.WriteLine("Module CustomView Criteria Comparator: " + criteria.Comparator.Value);
}
//Get the Field of the Criteria
Console.WriteLine("Module CustomView Criteria Field: " + criteria.Field);
if(criteria.Value != null)
{
//Get the Value of the Criteria
Console.WriteLine("Module CustomView Criteria Value: " + criteria.Value);
}
// Get the List of Criteria instance of each Criteria
List<Criteria> criteriaGroup = criteria.Group;
if(criteriaGroup != null)
{
foreach(Criteria criteria1 in criteriaGroup)
{
PrintCriteria(criteria1);
}
}
//Get the Group Operator of the Criteria
Console.WriteLine("Module CustomView Criteria Group Operator: " + criteria.GroupOperator);
}
}
}
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API;
using Com.Zoho.Crm.API.CustomViews;
using Com.Zoho.Crm.API.Modules;
using Com.Zoho.Crm.API.Profiles;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using static Com.Zoho.Crm.API.Modules.ModulesOperations;
using ActionHandler = Com.Zoho.Crm.API.Modules.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Modules.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Modules.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Modules.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Modules.BodyWrapper;
using Module = Com.Zoho.Crm.API.Modules.Module;
using ResponseHandler = Com.Zoho.Crm.API.Modules.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Modules.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Modules.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Modules
{
public class Modules
{
///
/// This method is used to update module details using module APIName and print the response.
///
/// The API Name of the module to update
public static void UpdateModuleByAPIName(string moduleAPIName)
{
//example
//string moduleAPIName = "Leads";
//Get instance of ModulesOperations Class
ModulesOperations moduleOperations = new ModulesOperations();
List<Module> modules = new List<Module>();
List<Com.Zoho.Crm.API.Profiles.Profile> profiles = new List<Com.Zoho.Crm.API.Profiles.Profile>();
//Get instance of Profile Class
Com.Zoho.Crm.API.Profiles.Profile profile = new Com.Zoho.Crm.API.Profiles.Profile();
//To set the Profile Id
profile.Id = 347706126014;
//profile.Delete = true;
profiles.Add(profile);
Module module = new Module();
module.Profiles = profiles;
modules.Add(module);
BodyWrapper request = new BodyWrapper();
request.Modules = modules;
//Call UpdateModuleByAPIName method that takes moduleAPIName and BodyWrapper instance as parameter
APIResponse<ActionHandler> response = moduleOperations.UpdateModuleByAPIName(moduleAPIName, request);
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.Modules;
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: " );
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);
}
}
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}) : ", prop.Name, prop.PropertyType.Name);
}
}
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API;
using Com.Zoho.Crm.API.CustomViews;
using Com.Zoho.Crm.API.Modules;
using Com.Zoho.Crm.API.Profiles;
using Com.Zoho.Crm.API.Users;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using static Com.Zoho.Crm.API.Modules.ModulesOperations;
using ActionHandler = Com.Zoho.Crm.API.Modules.ActionHandler;
using ActionResponse = Com.Zoho.Crm.API.Modules.ActionResponse;
using ActionWrapper = Com.Zoho.Crm.API.Modules.ActionWrapper;
using APIException = Com.Zoho.Crm.API.Modules.APIException;
using BodyWrapper = Com.Zoho.Crm.API.Modules.BodyWrapper;
using Module = Com.Zoho.Crm.API.Modules.Module;
using ResponseHandler = Com.Zoho.Crm.API.Modules.ResponseHandler;
using ResponseWrapper = Com.Zoho.Crm.API.Modules.ResponseWrapper;
using SuccessResponse = Com.Zoho.Crm.API.Modules.SuccessResponse;
namespace Com.Zoho.Crm.Sample.Modules
{
public class Modules
{
///
/// This method is used to update module details using module Id and print the response.
///
/// The Id of the module to obtain metadata
public static void UpdateModuleById(long moduleId)
{
//example
//long moduleId = 34770613905003;
//Get instance of ModulesOperations Class
ModulesOperations moduleOperations = new ModulesOperations();
List<Module> modules = new List<Module>();
List<Com.Zoho.Crm.API.Profiles.Profile> profiles = new List<Com.Zoho.Crm.API.Profiles.Profile>();
//Get instance of Profile Class
Com.Zoho.Crm.API.Profiles.Profile profile = new Com.Zoho.Crm.API.Profiles.Profile();
profile.Id = 3477061000000026014;
//profile.Delete = true;
profiles.Add(profile);
Module module = new Module();
module.Profiles = profiles;
module.APIName = "apiName1";
modules.Add(module);
BodyWrapper request = new BodyWrapper();
request.Modules = modules;
//Call UpdateModuleByAPIName method that takes moduleAPIName and BodyWrapper instance as parameter
APIResponse<ActionHandler> response = moduleOperations.UpdateModuleById(moduleId, request);
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.Modules;
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: " );
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);
}
}
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}) : ", prop.Name, prop.PropertyType.Name);
}
}
}
}
}
}
}