C# SDK Samples - Modules Operations
Get Modules
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 all the modules and print the response.
///
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> fields = relatedListProperties.Fields;
//Check if fields is not null
if(fields != null)
{
foreach(Object fieldName in fields)
{
//Get the Field Name
Console.WriteLine("Module RelatedListProperties Fields: " + fieldName);
}
}
//Get the Name of RelatedListProperties
Console.WriteLine("Module RelatedListProperties SortOrder: " + relatedListProperties.SortOrder);
}
//Get List of properties field APIName
List<string> properties = module.Properties;
//Check if properties is not null
if(properties != null)
{
foreach(Object fieldName in properties)
{
//Get the Field Name
Console.WriteLine("Module Properties Fields: " + fieldName);
}
}
//Get the PerPage of each Module
Console.WriteLine("Module PerPage: " + module.PerPage);
//Get the Visibility of each Module
Console.WriteLine("Module Visibility: " + module.Visibility);
//Get the Convertable of each Module
Console.WriteLine("Module Convertable: " + module.Convertable);
//Get the Editable of each Module
Console.WriteLine("Module Editable: " + module.Editable);
//Get the EmailtemplateSupport of each Module
Console.WriteLine("Module EmailtemplateSupport: " + module.EmailtemplateSupport);
//Get the list of Profile instance each Module
List<Com.Zoho.Crm.API.Profiles.Profile> profiles = module.Profiles;
//Check if profiles is not null
if(profiles != null)
{
foreach(Com.Zoho.Crm.API.Profiles.Profile profile in profiles)
{
//Get the Name of each Profile
Console.WriteLine("Module Profile Name: " + profile.Name);
//Get the Id of each Profile
Console.WriteLine("Module Profile Id: " + profile.Id);
}
}
//Get the FilterSupported of each Module
Console.WriteLine("Module FilterSupported: " + module.FilterSupported);
//Get the DisplayField of each Module
Console.WriteLine("Module DisplayField: " + module.DisplayField);
//Get List of SearchLayoutFields APIName
List<string> searchLayoutFields = module.SearchLayoutFields;
//Check if searchLayoutFields is not null
if(searchLayoutFields != null)
{
foreach(Object fieldName in searchLayoutFields)
{
//Get the Field Name
Console.WriteLine("Module SearchLayoutFields Fields: " + fieldName);
}
}
if(module.KanbanViewSupported != null)
{
//Get the KanbanViewSupported of each Module
Console.WriteLine("Module KanbanViewSupported: " + module.KanbanViewSupported);
}
//Get the ShowAsTab of each Module
Console.WriteLine("Module ShowAsTab: " + module.ShowAsTab);
//Get the WebLink of each Module
Console.WriteLine("Module WebLink: " + module.WebLink);
//Get the SequenceNumber of each Module
Console.WriteLine("Module SequenceNumber: " + module.SequenceNumber);
//Get the SingularLabel of each Module
Console.WriteLine("Module SingularLabel: " + module.SingularLabel);
//Get the Viewable of each Module
Console.WriteLine("Module Viewable: " + module.Viewable);
//Get the APISupported of each Module
Console.WriteLine("Module APISupported: " + module.APISupported);
//Get the APIName of each Module
Console.WriteLine("Module APIName: " + module.APIName);
//Get the QuickCreate of each Module
Console.WriteLine("Module QuickCreate: " + module.QuickCreate);
//Get the modifiedBy User instance of each Module
User modifiedBy = module.ModifiedBy;
//Check if modifiedBy is not null
if(modifiedBy != null)
{
//Get the name of the modifiedBy User
Console.WriteLine("Module Modified By User-Name: " + modifiedBy.Name);
//Get the ID of the modifiedBy User
Console.WriteLine("Module Modified By User-ID: " + modifiedBy.Id);
}
//Get the GeneratedType of each Module
Console.WriteLine("Module GeneratedType: " + module.GeneratedType.Value);
//Get the FeedsRequired of each Module
Console.WriteLine("Module FeedsRequired: " + module.FeedsRequired);
//Get the ScoringSupported of each Module
Console.WriteLine("Module ScoringSupported: " + module.ScoringSupported);
//Get the WebformSupported of each Module
Console.WriteLine("Module WebformSupported: " + module.WebformSupported);
//Get the list of Argument instance each Module
List<Argument> arguments = module.Arguments;
//Check if arguments is not null
if(arguments != null)
{
foreach(Argument argument in arguments)
{
//Get the Name of each Argument
Console.WriteLine("Module Argument Name: " + argument.Name);
//Get the Value of each Argument
Console.WriteLine("Module Argument Value: " + argument.Value);
}
}
//Get the ModuleName of each Module
Console.WriteLine("Module ModuleName: " + module.ModuleName);
//Get the BusinessCardFieldLimit of each Module
Console.WriteLine("Module BusinessCardFieldLimit: " + module.BusinessCardFieldLimit);
//Get the CustomView instance of each Module
API.CustomViews.CustomView customView = module.CustomView;
//Check if customView is not null
if(customView != null)
{
PrintCustomView(customView);
}
//Get the parentModule Module instance of each Module
Module parentModule = module.ParentModule;
//Check if arguments is not null
if(parentModule != null && parentModule.APIName != null)
{
//Get the Name of Parent Module
Console.WriteLine("Module Parent Module Name: " + parentModule.APIName);
//Get the Value of Parent Module
Console.WriteLine("Module Parent Module Id: " + parentModule.Id);
}
}
}
//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: " );
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}) : <Indexed>", prop.Name, prop.PropertyType.Name);
}
}
}
}
}
private static void PrintCustomView(API.CustomViews.CustomView customView)
{
//Get the DisplayValue of the CustomView
Console.WriteLine("Module CustomView DisplayValue: " + customView.DisplayValue);
//Get the SharedType of the CustomView
Console.WriteLine("Module CustomView SharedType: " + customView.SharedType);
//Get the SystemName of the CustomView
Console.WriteLine("Module CustomView SystemName: " + customView.SystemName);
// Get the Criteria instance of the CustomView
Criteria criteria = customView.Criteria;
//Check if criteria is not null
if(criteria != null)
{
PrintCriteria(criteria);
}
//Get the list of SharedDetails instance of the CustomView
List<SharedDetails> sharedDetails = customView.SharedDetails;
if(sharedDetails != null)
{
foreach(SharedDetails sharedDetail in sharedDetails)
{
//Get the Name of the each SharedDetails
Console.WriteLine("Module SharedDetails Name: " + sharedDetail.Name);
//Get the ID of the each SharedDetails
Console.WriteLine("Module SharedDetails ID: " + sharedDetail.Id);
//Get the Type of the each SharedDetails
Console.WriteLine("Module SharedDetails Type: " + sharedDetail.Type);
//Get the Subordinates of the each SharedDetails
Console.WriteLine("Module SharedDetails Subordinates: " + sharedDetail.Subordinates);
}
}
//Get the SortBy of the CustomView
Console.WriteLine("Module CustomView SortBy: " + customView.SortBy);
//Get the Offline of the CustomView
Console.WriteLine("Module CustomView Offline: " + customView.Offline);
//Get the Default of the CustomView
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);
}
}
}
}
Get a Module
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 GetModules()
{
//Get instance of ModulesOperations Class
ModulesOperations moduleOperations = new ModulesOperations();
HeaderMap headerInstance = new HeaderMap();
DateTimeOffset ifModifiedSince = new DateTimeOffset(new DateTime(2020, 05, 15, 12, 0, 0, DateTimeKind.Local));
headerInstance.Add(GetModulesHeader.IF_MODIFIED_SINCE, ifModifiedSince);
//Call GetModules method that takes headerInstance as parameters
APIResponse<ResponseHandler> response = moduleOperations.GetModules(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 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);
//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 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 Visibility of each Module
Console.WriteLine("Module Visibility: " + module.Visibility);
//Get the Convertable of each Module
Console.WriteLine("Module Convertable: " + module.Convertable);
//Get the Editable of each Module
Console.WriteLine("Module Editable: " + module.Editable);
//Get the EmailtemplateSupport of each Module
Console.WriteLine("Module EmailtemplateSupport: " + module.EmailtemplateSupport);
//Get the list of Profile instance each Module
List<Com.Zoho.Crm.API.Profiles.Profile> profiles = module.Profiles;
//Check if profiles is not null
if(profiles != null)
{
foreach(Com.Zoho.Crm.API.Profiles.Profile profile in profiles)
{
//Get the Name of each Profile
Console.WriteLine("Module Profile Name: " + profile.Name);
//Get the Id of each Profile
Console.WriteLine("Module Profile Id: " + profile.Id);
}
}
//Get the FilterSupported of each Module
Console.WriteLine("Module FilterSupported: " + module.FilterSupported);
//Get the ShowAsTab of each Module
Console.WriteLine("Module ShowAsTab: " + module.ShowAsTab);
//Get the WebLink of each Module
Console.WriteLine("Module WebLink: " + module.WebLink);
//Get the SequenceNumber of each Module
Console.WriteLine("Module SequenceNumber: " + module.SequenceNumber);
//Get the SingularLabel of each Module
Console.WriteLine("Module SingularLabel: " + module.SingularLabel);
//Get the Viewable of each Module
Console.WriteLine("Module Viewable: " + module.Viewable);
//Get the APISupported of each Module
Console.WriteLine("Module APISupported: " + module.APISupported);
//Get the APIName of each Module
Console.WriteLine("Module APIName: " + module.APIName);
//Get the QuickCreate of each Module
Console.WriteLine("Module QuickCreate: " + module.QuickCreate);
//Get the modifiedBy User instance of each Module
User modifiedBy = module.ModifiedBy;
//Check if modifiedBy is not null
if(modifiedBy != null)
{
//Get the name of the modifiedBy User
Console.WriteLine("Module Modified By User-Name: " + modifiedBy.Name);
//Get the ID of the modifiedBy User
Console.WriteLine("Module Modified By User-ID: " + modifiedBy.Id);
}
//Get the GeneratedType of each Module
Console.WriteLine("Module GeneratedType: " + module.GeneratedType.Value);
//Get the FeedsRequired of each Module
Console.WriteLine("Module FeedsRequired: " + module.FeedsRequired);
//Get the ScoringSupported of each Module
Console.WriteLine("Module ScoringSupported: " + module.ScoringSupported);
//Get the WebformSupported of each Module
Console.WriteLine("Module WebformSupported: " + module.WebformSupported);
//Get the list of Argument instance each Module
List<Argument> arguments = module.Arguments;
//Check if arguments is not null
if(arguments != null)
{
foreach(Argument argument in arguments)
{
//Get the Name of each Argument
Console.WriteLine("Module Argument Name: " + argument.Name);
//Get the Value of each Argument
Console.WriteLine("Module Argument Value: " + argument.Value);
}
}
//Get the ModuleName of each Module
Console.WriteLine("Module ModuleName: " + module.ModuleName);
//Get the BusinessCardFieldLimit of each Module
Console.WriteLine("Module BusinessCardFieldLimit: " + module.BusinessCardFieldLimit);
//Get the parentModule Module instance of each Module
Module parentModule = module.ParentModule;
//Check if arguments is not null
if(parentModule != null && parentModule.APIName != null)
{
//Get the Name of Parent Module
Console.WriteLine("Module Parent Module Name: " + parentModule.APIName);
//Get the Value of Parent Module
Console.WriteLine("Module Parent Module Id: " + parentModule.Id);
}
}
}
//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 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);
}
}
}
Update the Module by its Module API 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 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 = 34770610026014;
//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}) : <Indexed>", prop.Name, prop.PropertyType.Name);
}
}
}
}
}
}
}
Update a Module by its ID
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 = 34770610026014;
//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}) : <Indexed>", prop.Name, prop.PropertyType.Name);
}
}
}
}
}
}
}