public void UpdateFromDarTask(DarTask task)
 {
     if (task == null)
     {
         throw new ArgumentNullException("task");
     }
     if (task.WorkloadContext != null && task.WorkloadContext != this)
     {
         throw new InvalidOperationException("Task is bound to another raw object use it to perform udpate");
     }
     this.Id       = Helper.ToDefaultString(task.Id, null);
     this.Category = task.Category;
     this.Priority = task.Priority;
     this.TaskSynchronizationKey    = Helper.ToDefaultString(task.TaskSynchronizationKey, null);
     this.TaskSynchronizationOption = task.TaskSynchronizationOption;
     this.TaskType               = Helper.ToDefaultString(task.TaskType, null);
     this.TenantId               = Convert.FromBase64String(task.TenantId);
     this.TaskState              = task.TaskState;
     this.TaskQueuedTime         = task.TaskQueuedTime;
     this.MinTaskScheduleTime    = task.MinTaskScheduleTime;
     this.TaskScheduledTime      = task.TaskScheduledTime;
     this.TaskExecutionStartTime = task.TaskExecutionStartTime;
     this.TaskCompletionTime     = task.TaskCompletionTime;
     this.TaskRetryTotalCount    = task.TaskRetryTotalCount;
     this.TaskRetryInterval      = task.TaskRetryInterval;
     this.TaskRetryCurrentCount  = task.TaskRetryCurrentCount;
     this.SerializedTaskData     = Helper.ToDefaultString(task.SerializedTaskData, null);
     task.WorkloadContext        = this;
 }
        internal static TaskStoreObject FromDarTask(DarTask task, StoreObjectProvider objectProvider)
        {
            if (task == null)
            {
                throw new ArgumentNullException("task");
            }
            if (objectProvider == null)
            {
                throw new ArgumentNullException("objectProvider");
            }
            TaskStoreObject taskStoreObject = task.WorkloadContext as TaskStoreObject;

            if (taskStoreObject == null)
            {
                taskStoreObject = objectProvider.FindByAlternativeId <TaskStoreObject>(task.Id);
                if (taskStoreObject == null)
                {
                    taskStoreObject = new TaskStoreObject();
                }
            }
            if (taskStoreObject != null)
            {
                taskStoreObject.UpdateFromDarTask(task);
            }
            return(taskStoreObject);
        }
        public DarTask ToDarTask(DarServiceProvider serviceProvider)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }
            DarTask darTask = serviceProvider.DarTaskFactory.CreateTask(this.TaskType);

            this.UpdateDarTask(darTask);
            return(darTask);
        }
 public void UpdateDarTask(DarTask task)
 {
     task.Id       = this.Id;
     task.Category = this.Category;
     task.Priority = this.Priority;
     task.TaskSynchronizationKey    = this.TaskSynchronizationKey;
     task.TaskSynchronizationOption = this.TaskSynchronizationOption;
     task.TenantId               = Convert.ToBase64String(this.TenantId);
     task.TaskState              = this.TaskState;
     task.TaskQueuedTime         = this.TaskQueuedTime;
     task.MinTaskScheduleTime    = this.MinTaskScheduleTime;
     task.TaskScheduledTime      = this.TaskScheduledTime;
     task.TaskExecutionStartTime = this.TaskExecutionStartTime;
     task.TaskCompletionTime     = this.TaskCompletionTime;
     task.TaskRetryTotalCount    = this.TaskRetryTotalCount;
     task.TaskRetryInterval      = this.TaskRetryInterval;
     task.TaskRetryCurrentCount  = this.TaskRetryCurrentCount;
     task.SerializedTaskData     = this.SerializedTaskData;
     task.WorkloadContext        = this;
 }