C# SDK Samples - Notification Operations
Enable Notifications
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API;
using Com.Zoho.Crm.API.Notification;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using static Com.Zoho.Crm.API.Notification.NotificationOperations;
namespace Com.Zoho.Crm.Sample.Notification
{
public class Notification
{
///
/// This method is used to Enable Notifications and print the response.
///
public static void EnableNotifications()
{
//Get instance of NotificationOperations Class
NotificationOperations notificationOperations = new NotificationOperations();
//Get instance of BodyWrapper Class that will contain the request body
BodyWrapper bodyWrapper = new BodyWrapper();
//List of Notification instances
List<API.Notification.Notification> notifications = new List<API.Notification.Notification>();
//Get instance of Notification Class
API.Notification.Notification notification = new API.Notification.Notification();
//Set channel Id of the Notification
notification.ChannelId = 1006800211;
List<string> events = new List<string>();
events.Add("Deals.all");
//To subscribe based on particular operations on given modules.
notification.Events = events;
//To set the expiry time for instant notifications.
notification.ChannelExpiry = new DateTimeOffset(new DateTime(2021, 05, 15, 12, 0, 0, DateTimeKind.Local));
//To ensure that the notification is sent from Zoho CRM, by sending back the given value in notification URL body.
//By using this value, user can validate the notifications.
notification.Token = "TOKEN_FOR_VERIFICATION_OF_10068002";
//URL to be notified (POST request)
notification.NotifyUrl = "https://www.zohoapis.com";
//Add Notification instance to the list
notifications.Add(notification);
//Get instance of Notification Class
API.Notification.Notification notification2 = new API.Notification.Notification();
//Set channel Id of the Notification
notification2.ChannelId = 1006800211;
List<string> events2 = new List<string>();
events2.Add("Accounts.all");
//To subscribe based on particular operations on given modules.
notification2.Events = events2;
//To set the expiry time for instant notifications.
notification2.ChannelExpiry = new DateTimeOffset(new DateTime(2021, 05, 15, 12, 0, 0, DateTimeKind.Local));
//To ensure that the notification is sent from Zoho CRM, by sending back the given value in notification URL body.
//By using this value, user can validate the notifications.
notification2.Token = "TOKEN_FOR_VERIFICATION_OF_10068002";
//URL to be notified (POST request)
notification2.NotifyUrl = "https://www.zohoapis.com";
//Add Notification instance to the list
notifications.Add(notification2);
//Set the list to notifications in BodyWrapper instance
bodyWrapper.Watch = notifications;
//Call enableNotifications method that takes BodyWrapper instance as parameter
APIResponse<ActionHandler> response = notificationOperations.EnableNotifications(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.Watch;
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)
{
if (entry.Value is IList && ((IList)entry.Value).Count > 0)
{
IList dataList = (IList)entry.Value;
if (dataList.Count > 0 && dataList[0] is API.Notification.Notification)
{
List<API.Notification.Notification> eventList = (List<API.Notification.Notification>)dataList;
foreach (API.Notification.Notification event1 in eventList)
{
//Get the ChannelExpiry of each Notification
Console.WriteLine("Notification ChannelExpiry: " + event1.ChannelExpiry);
//Get the ResourceUri each Notification
Console.WriteLine("Notification ResourceUri: " + event1.ResourceUri);
//Get the ResourceId each Notification
Console.WriteLine("Notification ResourceId: " + event1.ResourceId);
//Get the ResourceName each Notification
Console.WriteLine("Notification ResourceName: " + event1.ResourceName);
//Get the ChannelId each Notification
Console.WriteLine("Notification ChannelId: " + event1.ChannelId);
}
}
}
else
{
//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);
}
}
}
}
}
}
Get Notification Details
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API;
using Com.Zoho.Crm.API.Notification;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using static Com.Zoho.Crm.API.Notification.NotificationOperations;
namespace Com.Zoho.Crm.Sample.Notification
{
public class Notification
{
///
/// This method is used to get all the Notification and print the response.
///
public static void GetNotificationDetails()
{
//Get instance of NotificationOperations Class
NotificationOperations notificationOperations = new NotificationOperations();
ParameterMap paramInstance = new ParameterMap();
paramInstance.Add(GetNotificationDetailsParam.CHANNEL_ID, 1006800211);
paramInstance.Add(GetNotificationDetailsParam.MODULE, "Deals");
paramInstance.Add(GetNotificationDetailsParam.PAGE, 1);
paramInstance.Add(GetNotificationDetailsParam.PER_PAGE, 2);
//Call getNotificationDetails method
APIResponse<ResponseHandler> response = notificationOperations.GetNotificationDetails(paramInstance);
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 Notification instances
List<API.Notification.Notification> notifications = responseWrapper.Watch;
foreach (API.Notification.Notification notification in notifications)
{
//Get the NotifyOnRelatedAction of each Notification
Console.WriteLine("Notification NotifyOnRelatedAction: " + notification.NotifyOnRelatedAction);
//Get the ChannelExpiry of each Notification
Console.WriteLine("Notification ChannelExpiry: " + notification.ChannelExpiry);
//Get the ResourceUri each Notification
Console.WriteLine("Notification ResourceUri: " + notification.ResourceUri);
//Get the ResourceId each Notification
Console.WriteLine("Notification ResourceId: " + notification.ResourceId);
//Get the NotifyUrl each Notification
Console.WriteLine("Notification NotifyUrl: " + notification.NotifyUrl);
//Get the ResourceName each Notification
Console.WriteLine("Notification ResourceName: " + notification.ResourceName);
//Get the ChannelId each Notification
Console.WriteLine("Notification ChannelId: " + notification.ChannelId);
//Get the events List of each Notification
List<string> fields = notification.Events;
//Check if fields is not null
if (fields != null)
{
foreach (string fieldName in fields)
{
//Get the Events
Console.WriteLine("Notification Events: " + fieldName);
}
}
//Get the Token each Notification
Console.WriteLine("Notification Token: " + notification.Token);
}
//Get the Object obtained Info instance
Info info = responseWrapper.Info;
//Check if info is not null
if (info != null)
{
if (info.PerPage != null)
{
//Get the PerPage of the Info
Console.WriteLine("Record Info PerPage: " + info.PerPage.ToString());
}
if (info.Count != null)
{
//Get the Count of the Info
Console.WriteLine("Record Info Count: " + info.Count.ToString());
}
if (info.Page != null)
{
//Get the Page of the Info
Console.WriteLine("Record Info Page: " + info.Page.ToString());
}
if (info.MoreRecords != null)
{
//Get the MoreRecords of the Info
Console.WriteLine("Record Info MoreRecords: " + info.MoreRecords.ToString());
}
}
}
//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.StatusCode != 204)
{//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 Notifications
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API;
using Com.Zoho.Crm.API.Notification;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using static Com.Zoho.Crm.API.Notification.NotificationOperations;
namespace Com.Zoho.Crm.Sample.Notification
{
public class Notification
{
///
/// This method is used to update Notifications and print the response.
///
public static void UpdateNotifications()
{
//Get instance of NotificationOperations Class
NotificationOperations notificationOperations = new NotificationOperations();
//Get instance of BodyWrapper Class that will contain the request body
BodyWrapper bodyWrapper = new BodyWrapper();
//List of Notification instances
List<API.Notification.Notification> notificationList = new List<API.Notification.Notification>();
//Get instance of Notification Class
API.Notification.Notification notification = new API.Notification.Notification();
//Set ChannelId to the Notification instance
notification.ChannelId = 1006800211;
List<string> events = new List<string>();
events.Add("Accounts.all");
//To subscribe based on particular operations on given modules.
notification.Events = events;
//Set name to the Notification instance
//notification.ChannelExpiry = DateTimeOffset.Now;
//To ensure that the notification is sent from Zoho CRM, by sending back the given value in notification URL body.
//By using this value, user can validate the notifications.
//notification.Token = "TOKEN_FOR_VERIFICATION_OF_10068002";
//URL to be notified (POST request)
notification.NotifyUrl = "https://www.zohoapis.com";
//Add Notification instance to the list
notificationList.Add(notification);
//Set the list to notification in BodyWrapper instance
bodyWrapper.Watch = notificationList;
//Call updateNotifications method that takes BodyWrapper instance as parameter
APIResponse<ActionHandler> response = notificationOperations.UpdateNotifications(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.Watch;
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)
{
if (entry.Value is IList && ((IList)entry.Value).Count > 0)
{
IList dataList = (IList)entry.Value;
if (dataList.Count > 0 && dataList[0] is API.Notification.Notification)
{
List<API.Notification.Notification> eventList = (List<API.Notification.Notification>)dataList;
foreach (API.Notification.Notification event1 in eventList)
{
//Get the ChannelExpiry of each Notification
Console.WriteLine("Notification ChannelExpiry: " + event1.ChannelExpiry);
//Get the ResourceUri each Notification
Console.WriteLine("Notification ResourceUri: " + event1.ResourceUri);
//Get the ResourceId each Notification
Console.WriteLine("Notification ResourceId: " + event1.ResourceId);
//Get the ResourceName each Notification
Console.WriteLine("Notification ResourceName: " + event1.ResourceName);
//Get the ChannelId each Notification
Console.WriteLine("Notification ChannelId: " + event1.ChannelId);
}
}
}
else
{
//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 Specific Information of a Notification
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API;
using Com.Zoho.Crm.API.Notification;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using static Com.Zoho.Crm.API.Notification.NotificationOperations;
namespace Com.Zoho.Crm.Sample.Notification
{
public class Notification
{
///
/// This method is used to update single Notification and print the response.
///
public static void UpdateNotification()
{
//Get instance of NotificationOperations Class
NotificationOperations notificationOperations = new NotificationOperations();
//Get instance of BodyWrapper Class that will contain the request body
BodyWrapper bodyWrapper = new BodyWrapper();
//List of Notification instances
List<API.Notification.Notification> notificationList = new List<API.Notification.Notification>();
//Get instance of Notification Class
API.Notification.Notification notification = new API.Notification.Notification();
//Set ChannelId to the Notification instance
notification.ChannelId = 1006800211;
List<string> events = new List<string>();
events.Add("Deals.all");
//To subscribe based on particular operations on given modules.
notification.Events = events;
//Set name to the Notification instance
notification.ChannelExpiry = DateTimeOffset.Now;
//To ensure that the notification is sent from Zoho CRM, by sending back the given value in notification URL body.
//By using this value, user can validate the notifications.
notification.Token = "TOKEN_FOR_VERIFICATION_OF_10068002";
//URL to be notified (POST request)
notification.NotifyUrl = "https://www.zohoapis.com";
//Add Notification instance to the list
notificationList.Add(notification);
//Set the list to notification in BodyWrapper instance
bodyWrapper.Watch = notificationList;
//Call updateNotification method that takes BodyWrapper instance as parameters
APIResponse<ActionHandler> response = notificationOperations.UpdateNotification(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.Watch;
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)
{
if (entry.Value is IList && ((IList)entry.Value).Count > 0)
{
IList dataList = (IList)entry.Value;
if (dataList.Count > 0 && dataList[0] is API.Notification.Notification)
{
List<API.Notification.Notification> eventList = (List<API.Notification.Notification>)dataList;
foreach (API.Notification.Notification event1 in eventList)
{
//Get the ChannelExpiry of each Notification
Console.WriteLine("Notification ChannelExpiry: " + event1.ChannelExpiry);
//Get the ResourceUri each Notification
Console.WriteLine("Notification ResourceUri: " + event1.ResourceUri);
//Get the ResourceId each Notification
Console.WriteLine("Notification ResourceId: " + event1.ResourceId);
//Get the ResourceName each Notification
Console.WriteLine("Notification ResourceName: " + event1.ResourceName);
//Get the ChannelId each Notification
Console.WriteLine("Notification ChannelId: " + event1.ChannelId);
}
}
}
else
{
//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);
}
}
}
}
}
}
}
Disable Notifications
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API;
using Com.Zoho.Crm.API.Notification;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using static Com.Zoho.Crm.API.Notification.NotificationOperations;
namespace Com.Zoho.Crm.Sample.Notification
{
public class Notification
{
///
/// o stop all the instant notifications enabled by the user for a channel.
///
/// Specify the unique IDs of the notification channels to be disabled.
public static void DisableNotifications(List<long> channelIds)
{
//example
//List<long> channelIds = new List<long>() { 34770615208001 };
//Get instance of NotificationOperations Class
NotificationOperations notificationOperations = new NotificationOperations();
//Get instance of ParameterMap Class
ParameterMap paramInstance = new ParameterMap();
foreach (long id in channelIds)
{
paramInstance.Add(DisableNotificationsParam.CHANNEL_IDS, id);
}
//Call disableNotifications method that takes paramInstance as parameter
APIResponse<ActionHandler> response = notificationOperations.DisableNotifications(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 Notification instances
List<ActionResponse> actionResponses = actionWrapper.Watch;
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);
}
}
}
}
}
}
}
Disable Specific Notifications
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using Com.Zoho.Crm.API;
using Com.Zoho.Crm.API.Notification;
using Com.Zoho.Crm.API.Util;
using Newtonsoft.Json;
using static Com.Zoho.Crm.API.Notification.NotificationOperations;
namespace Com.Zoho.Crm.Sample.Notification
{
public class Notification
{
/// This method is used to disable notifications for the specified events in a channel.
///
public static void DisableNotification()
{
//Get instance of NotificationOperations Class
NotificationOperations notificationOperations = new NotificationOperations();
//Get instance of BodyWrapper Class that will contain the request body
BodyWrapper bodyWrapper = new BodyWrapper();
//List of Notification instances
List<API.Notification.Notification> notificationList = new List<API.Notification.Notification>();
//Get instance of Notification Class
API.Notification.Notification notification = new API.Notification.Notification();
//Set ChannelId to the Notification instance
notification.ChannelId = 1006800211;
List<string> events = new List<string>();
events.Add("Deals.edit");
//To subscribe based on particular operations on given modules.
notification.Events = events;
notification.Deleteevents = true;
//Add Notification instance to the list
notificationList.Add(notification);
//Set the list to notification in BodyWrapper instance
bodyWrapper.Watch = notificationList;
//Call disableNotification which takes BodyWrapper instance as parameter
APIResponse<ActionHandler> response = notificationOperations.DisableNotification(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.Watch;
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)
{
if (entry.Value is IList && ((IList)entry.Value).Count > 0)
{
IList dataList = (IList)entry.Value;
if (dataList.Count > 0 && dataList[0] is API.Notification.Notification)
{
List<API.Notification.Notification> eventList = (List<API.Notification.Notification>)dataList;
foreach (API.Notification.Notification event1 in eventList)
{
//Get the ChannelExpiry of each Notification
Console.WriteLine("Notification ChannelExpiry: " + event1.ChannelExpiry);
//Get the ResourceUri each Notification
Console.WriteLine("Notification ResourceUri: " + event1.ResourceUri);
//Get the ResourceId each Notification
Console.WriteLine("Notification ResourceId: " + event1.ResourceId);
//Get the ResourceName each Notification
Console.WriteLine("Notification ResourceName: " + event1.ResourceName);
//Get the ChannelId each Notification
Console.WriteLine("Notification ChannelId: " + event1.ChannelId);
}
}
}
else
{
//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);
}
}
}
}
}
}
}