예제 #1
0
        internal long?CreateIntegrationJob(CreateIntegrationJobRequest request)
        {
            var gfs = new List <GenericField>
            {
                // always default status to in-progress when creating a job
                RightNowServiceBaseObjectBuilder.CreateGenericField("JobStatus", DataTypeEnum.NAMED_ID, RightNowServiceBaseObjectBuilder.CreateNamedID((int)IntegrationJobStatus.InProgress)),
                RightNowServiceBaseObjectBuilder.CreateGenericField("JobType", DataTypeEnum.NAMED_ID, RightNowServiceBaseObjectBuilder.CreateNamedID((int)request.JobType)),
                RightNowServiceBaseObjectBuilder.CreateGenericField("FileName", DataTypeEnum.STRING, request.FileName),
                RightNowServiceBaseObjectBuilder.CreateGenericField("HostName", DataTypeEnum.STRING, request.HostName),
            };

            var package = new RNObject[]
            {
                new GenericObject
                {
                    ObjectType = new RNObjectType
                    {
                        Namespace = "IJ",
                        TypeName  = "Job"
                    },
                    GenericFields = gfs.ToArray()
                }
            };

            GlobalContext.Log("Creating an Integration Job in RightNow for tracking purposes", true);
            var result = _serviceWrapper.CreateObjects(package);

            if (result.Successful && result.CreatedObjects.Any())
            {
                return(result.CreatedObjects.First().ID.id);
            }

            return(null);
        }
예제 #2
0
        internal void CreateNoFilesToProcessIntegrationJob(IntegrationJobType jobType)
        {
            var gfs = new List <GenericField>
            {
                RightNowServiceBaseObjectBuilder.CreateGenericField("JobStatus", DataTypeEnum.NAMED_ID, RightNowServiceBaseObjectBuilder.CreateNamedID((int)IntegrationJobStatus.Completed)),
                RightNowServiceBaseObjectBuilder.CreateGenericField("JobType", DataTypeEnum.NAMED_ID, RightNowServiceBaseObjectBuilder.CreateNamedID((int)jobType)),
                RightNowServiceBaseObjectBuilder.CreateGenericField("Detail", DataTypeEnum.STRING, "No files were available to process")
            };

            var package = new RNObject[]
            {
                new GenericObject
                {
                    ObjectType = new RNObjectType
                    {
                        Namespace = "IJ",
                        TypeName  = "Job"
                    },
                    GenericFields = gfs.ToArray(),
                }
            };

            GlobalContext.Log("Creating an Integration Job showing that no files were available to process", true);
            _serviceWrapper.CreateObjects(package);
        }
예제 #3
0
        internal void UpdateIntegrationJob(UpdateIntegrationJobRequest request, bool updateJobStatus)
        {
            IntegrationJobStatus jobStatus = request.RecordsFailed > 0
                                                 ? IntegrationJobStatus.CompletedWithErrors
                                                 : IntegrationJobStatus.Completed;

            var gfs = new List <GenericField>
            {
                RightNowServiceBaseObjectBuilder.CreateGenericField("CountOfRowsInFile", DataTypeEnum.INTEGER, request.RecordsTotal),
                RightNowServiceBaseObjectBuilder.CreateGenericField("CountOfUniqueRowsInFile", DataTypeEnum.INTEGER, request.RecordsTotalUnique),
                RightNowServiceBaseObjectBuilder.CreateGenericField("CountOfSuccess", DataTypeEnum.INTEGER, request.RecordsSuccessful),
                RightNowServiceBaseObjectBuilder.CreateGenericField("CountOfFailure", DataTypeEnum.INTEGER, request.RecordsFailed)
            };

            if (updateJobStatus)
            {
                gfs.Add(RightNowServiceBaseObjectBuilder.CreateGenericField("JobStatus", DataTypeEnum.NAMED_ID, RightNowServiceBaseObjectBuilder.CreateNamedID((int)jobStatus)));
            }

            if (request.AttachmentData != null)
            {
                gfs.Add(RightNowServiceBaseObjectBuilder.CreateAttachmentText(request.AttachmentData));
            }

            if (!string.IsNullOrEmpty(request.Detail))
            {
                gfs.Add(RightNowServiceBaseObjectBuilder.CreateGenericField("Detail", DataTypeEnum.STRING, request.Detail));
            }

            var package = new RNObject[]
            {
                new GenericObject
                {
                    ObjectType = new RNObjectType
                    {
                        Namespace = "IJ",
                        TypeName  = "Job"
                    },
                    GenericFields = gfs.ToArray(),
                    ID            = new ID
                    {
                        id          = request.ID,
                        idSpecified = true
                    },
                }
            };

            GlobalContext.Log("Updating the Integration Job with results", true);
            _serviceWrapper.UpdateObjects(package);
        }
 internal static TypedAddress[] UpdateTypedAddress(string street, string city, int stateOrProvinceID, string postalCode, int countryID, int addressTypeID)
 {
     return(RightNowServiceBaseObjectBuilder.ProcessTypedAddress(street, city, stateOrProvinceID, postalCode, countryID, addressTypeID, ActionEnum.update));
 }
 internal static Phone UpdateSinglePhone(string phone, int phoneType)
 {
     return(RightNowServiceBaseObjectBuilder.ProcessSinglePhone(phone, phoneType, ActionEnum.update));
 }
 internal static Phone[] CreatePhone(string phone, int phoneType)
 {
     return(RightNowServiceBaseObjectBuilder.ProcessPhone(phone, phoneType, ActionEnum.add));
 }
 internal static Email[] UpdateEmail(string emailAddress)
 {
     return(RightNowServiceBaseObjectBuilder.ProcessEmail(emailAddress, ActionEnum.update));
 }