示例#1
0
        /// <summary>
        /// Populates this Task object with the details from the <see cref="ServiceContract.Models.TaskInfo" /> parameter.
        /// </summary>
        /// <param name="response">The <see cref="ServiceContract.Models.TaskInfo" /> to populate from.</param>
        public void PopulateFromTaskInfoResponse(ServiceContract.Models.TaskInfo response)
        {
            AssemblyName    = response.AssemblyName;
            TypeName        = response.TypeName;
            MethodName      = response.MethodName;
            ReturnType      = response.ReturnType.FullName;
            Status          = response.Status;
            DateCreated     = response.DateCreated;
            DateLastUpdated = response.DateLastUpdated;
            FailureDetails  = response.FailureDetails;

            Tags               = response.Tags.IsDefault() ? default : string.Join(",", response.Tags);
                          Data = TaskInfoSerialization.Serialize(response);
        }
示例#2
0
        /// <summary>
        /// Transforms a <see cref="ServiceContract.Models.TaskInfo" /> model into a <see cref="TaskInfo" /> domain model.
        /// </summary>
        /// <param name="response">The response to transform.</param>
        /// <param name="storageType">The storage mechanism currently in use - helps generate the correct resource id</param>
        /// <returns>The resultant domain model.</returns>
        public static TaskInfo FromTaskInfoResponse(ServiceContract.Models.TaskInfo response, Storage storageType)
        {
            var taskInfo = new TaskInfo
            {
                ResourceId     = response.Id.IsDefault() ? SequentialGuidGenerator.Generate(storageType) : response.Id,
                AssemblyName   = response.AssemblyName,
                TypeName       = response.TypeName,
                MethodName     = response.MethodName,
                ReturnType     = response.ReturnType.FullName,
                Status         = response.Status,
                FailureDetails = response.FailureDetails,
                Tags           = response.Tags.IsDefault() ? default : string.Join(",", response.Tags)
            };

            // Why don't we do this in the object initializer?
            // Because the dates haven't been populated, until the TaskInfo has been created!
            response.DateCreated     = taskInfo.DateCreated;
            response.DateLastUpdated = taskInfo.DateLastUpdated;
            taskInfo.Data            = TaskInfoSerialization.Serialize(response);

            return(taskInfo);
        }
    }