示例#1
0
        public static ofTask CreateWithDestinationAndWorker(this ofTaskService taskService, ofTaskCreateOptions taskCreateOptions, string address, string workerID, ofRecipientsCreateOptions recipientCreateOptions = null, ofRequestOptions requestOptions = null)
        {
            ofDestinationCreateOptions destinationCreateOptions = new ofDestinationCreateOptions
            {
                Address = new ofAddress
                {
                    Unparsed = address
                }
            };

            ofDestinationService destinationService = string.IsNullOrEmpty(taskService.ApiKey) ? new ofDestinationService() : new ofDestinationService(taskService.ApiKey);

            ofDestination destination = destinationService.Create(destinationCreateOptions, requestOptions);

            taskCreateOptions.DestinationId = destination.Id;

            if (recipientCreateOptions != null)
            {
                ofRecipientService recipientService = string.IsNullOrEmpty(taskService.ApiKey) ? new ofRecipientService() : new ofRecipientService(taskService.ApiKey);
                var recipient = recipientService.Create(recipientCreateOptions, requestOptions);
                taskCreateOptions.Recipients = new List<string> { recipient.Id };
            }

            var task = taskService.Create(taskCreateOptions, requestOptions);

            ofWorkerService workerService = string.IsNullOrEmpty(taskService.ApiKey) ? new ofWorkerService() : new ofWorkerService(taskService.ApiKey);
            ofWorkerUpdateOptions workerUpdateOptions = new ofWorkerUpdateOptions{
                Tasks = new List<string>{ task.Id}
            };
            workerService.Update(workerID, workerUpdateOptions, requestOptions);

            return taskService.Get(task.Id, requestOptions);
        }
示例#2
0
        public ofRecipient Update(string recipientId, ofRecipientsCreateOptions options, ofRequestOptions requestOptions)
        {
            requestOptions = SetupRequestOptions(requestOptions);
            var serilizedObj = JsonConvert.SerializeObject(options);
            var postData = new StringContent(serilizedObj, Encoding.UTF8, "application/json");

            return Requestor.Put<ofRecipient>(string.Format("{0}/{1}", Urls.Recipients, recipientId), requestOptions,
                postData);
        }
示例#3
0
        public virtual ofRecipient Create(ofRecipientsCreateOptions createOptions, ofRequestOptions requestOptions = null)
        {
            requestOptions = SetupRequestOptions(requestOptions);

            var serilizedObj = JsonConvert.SerializeObject(createOptions);
            var postData = new StringContent(serilizedObj, Encoding.UTF8, "application/json");
            var recipient = Requestor.Post<ofRecipient>(Urls.Recipients, requestOptions, postData);
            return recipient;
        }
示例#4
0
        public ofRecipient Update(string recipientId, ofRecipientsCreateOptions options, ofRequestOptions requestOptions)
        {
            requestOptions = SetupRequestOptions(requestOptions);
            var serilizedObj = JsonConvert.SerializeObject(options);
            var postData     = new StringContent(serilizedObj, Encoding.UTF8, "application/json");

            return(Requestor.Put <ofRecipient>(string.Format("{0}/{1}", Urls.Recipients, recipientId), requestOptions,
                                               postData));
        }
示例#5
0
        public virtual ofRecipient Create(ofRecipientsCreateOptions createOptions, ofRequestOptions requestOptions = null)
        {
            requestOptions = SetupRequestOptions(requestOptions);

            var serilizedObj = JsonConvert.SerializeObject(createOptions);
            var postData     = new StringContent(serilizedObj, Encoding.UTF8, "application/json");
            var recipient    = Requestor.Post <ofRecipient>(Urls.Recipients, requestOptions, postData);

            return(recipient);
        }
示例#6
0
        public static ofRecipient FindOrCreate(this ofRecipientService recipientService, string phoneNumber, ofRecipientsCreateOptions createOptions, ofRequestOptions requestOptions = null)
        {
            ofRecipient recipient = new ofRecipient();
            try
            {
                recipient = recipientService.FindByPhone(phoneNumber, requestOptions);
            }
            catch (ofException ex)
            {
                if (ex.Error.ErrorCode == "ResourceNotFound")
                {
                    recipient = recipientService.Create(createOptions, requestOptions);
                    return recipient;
                }
                throw ex;
            }

            return recipient;
        }
示例#7
0
        public static ofRecipient FindOrCreate(this ofRecipientService recipientService, string phoneNumber, ofRecipientsCreateOptions createOptions, ofRequestOptions requestOptions = null)
        {
            ofRecipient recipient = new ofRecipient();

            try
            {
                recipient = recipientService.FindByPhone(phoneNumber, requestOptions);
            }
            catch (ofException ex)
            {
                if (ex.Error.ErrorCode == "ResourceNotFound")
                {
                    recipient = recipientService.Create(createOptions, requestOptions);
                    return(recipient);
                }
                throw ex;
            }


            return(recipient);
        }
示例#8
0
        public static ofTask CreateWithDestinationAndWorker(this ofTaskService taskService, ofTaskCreateOptions taskCreateOptions, string address, string workerID, ofRecipientsCreateOptions recipientCreateOptions = null, ofRequestOptions requestOptions = null)
        {
            ofDestinationCreateOptions destinationCreateOptions = new ofDestinationCreateOptions
            {
                Address = new ofAddress
                {
                    Unparsed = address
                }
            };

            ofDestinationService destinationService = string.IsNullOrEmpty(taskService.ApiKey) ? new ofDestinationService() : new ofDestinationService(taskService.ApiKey);

            ofDestination destination = destinationService.Create(destinationCreateOptions, requestOptions);

            taskCreateOptions.DestinationId = destination.Id;

            if (recipientCreateOptions != null)
            {
                ofRecipientService recipientService = string.IsNullOrEmpty(taskService.ApiKey) ? new ofRecipientService() : new ofRecipientService(taskService.ApiKey);
                var recipient = recipientService.Create(recipientCreateOptions, requestOptions);
                taskCreateOptions.Recipients = new List <string> {
                    recipient.Id
                };
            }

            var task = taskService.Create(taskCreateOptions, requestOptions);

            ofWorkerService       workerService       = string.IsNullOrEmpty(taskService.ApiKey) ? new ofWorkerService() : new ofWorkerService(taskService.ApiKey);
            ofWorkerUpdateOptions workerUpdateOptions = new ofWorkerUpdateOptions {
                Tasks = new List <string> {
                    task.Id
                }
            };

            workerService.Update(workerID, workerUpdateOptions, requestOptions);

            return(taskService.Get(task.Id, requestOptions));
        }