/// <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); }
/// <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); } }