internal static IncidentContact CreateIncidentContact(long id) { var result = new IncidentContact { Contact = CreateNamedID(id) }; return(result); }
/// <summary> /// Create Internal Incident Records /// </summary> /// <param name="contactID"></param> /// <param name="srID"></param> /// <param name="reportingIncID"></param> /// <param name="fsarID"></param> /// <param name="orgID"></param> /// <returns></returns> public int CreateInternalIncident(int contactID, int srID, int reportingIncID, int fsarID, int orgID) { try { //Check if it exist in order to avoid duplicate record Incident internalIncident = new Incident(); string response = checkIfInternalIncidentExistForSR(reportingIncID, srID); if (response != null) { internalIncident.ID = new ID { id = Convert.ToInt32(response), idSpecified = true }; } /*Set OOTB fields*/ IncidentContact primarycontact = new IncidentContact { Contact = new NamedID { ID = new ID { id = contactID, idSpecified = true } } }; internalIncident.PrimaryContact = primarycontact; internalIncident.Organization = new NamedID { ID = new ID { id = orgID, idSpecified = true } }; /*Set Custom fields*/ List <GenericField> customAttributes = new List <GenericField>(); customAttributes.Add(createGenericField("FSAR", createNamedIDDataValue(fsarID), DataTypeEnum.NAMED_ID)); customAttributes.Add(createGenericField("SalesRelease", createNamedIDDataValue(srID), DataTypeEnum.NAMED_ID)); customAttributes.Add(createGenericField("reporting_incident", createNamedIDDataValue(reportingIncID), DataTypeEnum.NAMED_ID)); GenericObject customAttributeobj = genericObject(customAttributes.ToArray(), "IncidentCustomFieldsc"); GenericField caPackage = createGenericField("CO", createObjDataValue(customAttributeobj), DataTypeEnum.OBJECT); /*Set Custom fields*/ List <GenericField> customFields = new List <GenericField>(); customFields.Add(createGenericField("incident_type", createNamedIDDataValueForName("Internal Incident"), DataTypeEnum.NAMED_ID));//55 is id of "Internal incident" GenericObject customfieldobj = genericObject(customFields.ToArray(), "IncidentCustomFieldsc"); GenericField cfpackage = createGenericField("c", createObjDataValue(customfieldobj), DataTypeEnum.OBJECT); internalIncident.CustomFields = genericObject(new[] { caPackage, cfpackage }, "IncidentCustomFields"); ClientInfoHeader hdr = new ClientInfoHeader() { AppID = "Create Internal Incident" }; //Update if internal incident exist if (response != null) { _rightNowClient.Update(hdr, new RNObject[] { internalIncident }, new UpdateProcessingOptions { SuppressExternalEvents = false, SuppressRules = false }); return(Convert.ToInt32(response)); } else//create a new internal incident { RNObject[] resultobj = _rightNowClient.Create(hdr, new RNObject[] { internalIncident }, new CreateProcessingOptions { SuppressExternalEvents = false, SuppressRules = false }); if (resultobj != null) { return(Convert.ToInt32(resultobj[0].ID.id)); } } } catch (Exception ex) { WorkspaceAddIn.InfoLog("Excpetion in creating internal incident: " + ex.Message); } return(0); }
/// <summary> /// Create Reporting Incident /// </summary> /// <param name="contactID"></param> /// <param name="fsarID"></param> /// <param name="orgID"></param> /// <returns></returns> public int CreateReportingIncident(int contactID, int fsarID, int orgID) { try { string response = checkIfReportingIncidentExistforFSAR(fsarID, contactID); if (response != null) { return(Convert.ToInt32(response)); } /*Set OOTB fields*/ Incident reportedIncident = new Incident(); IncidentContact primarycontact = new IncidentContact { Contact = new NamedID { ID = new ID { id = contactID, idSpecified = true } } }; reportedIncident.PrimaryContact = primarycontact; reportedIncident.Organization = new NamedID { ID = new ID { id = orgID, idSpecified = true } }; reportedIncident.StatusWithType = new StatusWithType { Status = new NamedID { Name = "Solution Development" } }; /*Set Custom Attributes*/ List <GenericField> customAttributes = new List <GenericField>(); customAttributes.Add(createGenericField("FSAR", createNamedIDDataValue(fsarID), DataTypeEnum.NAMED_ID)); customAttributes.Add(createGenericField("FSAR_required", createBooleanDataValue(true), DataTypeEnum.BOOLEAN)); GenericObject customAttributeobj = genericObject(customAttributes.ToArray(), "IncidentCustomFieldsc"); GenericField caPackage = createGenericField("CO", createObjDataValue(customAttributeobj), DataTypeEnum.OBJECT); /*Set Custom fields*/ List <GenericField> customFields = new List <GenericField>(); customFields.Add(createGenericField("incident_type", createNamedIDDataValueForName("Reported Incident"), DataTypeEnum.NAMED_ID));//55 is id of "Internal incident" GenericObject customfieldobj = genericObject(customFields.ToArray(), "IncidentCustomFieldsc"); GenericField cfpackage = createGenericField("c", createObjDataValue(customfieldobj), DataTypeEnum.OBJECT); reportedIncident.CustomFields = genericObject(new[] { caPackage, cfpackage }, "IncidentCustomFields"); ClientInfoHeader hdr = new ClientInfoHeader() { AppID = "Create Reported Incident" }; RNObject[] resultobj = _rightNowClient.Create(hdr, new RNObject[] { reportedIncident }, new CreateProcessingOptions { SuppressExternalEvents = false, SuppressRules = false }); if (resultobj != null) { return(Convert.ToInt32(resultobj[0].ID.id)); } } catch (Exception ex) { WorkspaceAddIn.InfoLog("Excpetion in creating reported incident: " + ex.Message); } return(0); }