public ObservableProject(HostState hostState, BoincRpc.Project rpcProject) { HostId = hostState.Id; HostName = hostState.Name; Update(rpcProject); }
public ObservableTransfer(HostState hostState, BoincRpc.FileTransfer fileTransfer) { HostId = hostState.Id; HostName = hostState.Name; Update(fileTransfer); }
public ObservableMessage(HostState hostState, BoincRpc.Message rpcMessage) { HostId = hostState.Id; HostName = hostState.Name; RpcMessage = rpcMessage; Project = rpcMessage.Project; Date = rpcMessage.Timestamp.ToLocalTime().ToString("g"); MessageBody = rpcMessage.Body; Priority = rpcMessage.Priority.ToString(); }
public void Update(HostState hostState, BoincRpc.Result result) { RpcResult = result; Progress = result.ReadyToReport ? 1 : result.FractionDone; ElapsedTime = Utils.ConvertDuration(result.ElapsedTime); CpuTime = Utils.ConvertDuration(result.CurrentCpuTime); CpuTimeRemaining = Utils.ConvertDuration(result.EstimatedCpuTimeRemaining); LastCheckpoint = Utils.ConvertDuration(result.CurrentCpuTime - result.CheckpointCpuTime); Deadline = Utils.ConvertDateTime(result.ReportDeadline); Status = Statuses.GetTaskStatus(result, RpcProject, hostState.BoincState); }
public ObservableTask(HostState hostState, BoincRpc.Result result) { HostId = hostState.Id; HostName = hostState.Name; RpcProject = hostState.BoincState.Projects?.FirstOrDefault(p => p.MasterUrl == result.ProjectUrl); var rpcWorkunit = hostState.BoincState.Workunits?.FirstOrDefault(w => w.ProjectUrl == RpcProject?.MasterUrl && w.Name == result.WorkunitName); var rpcApp = hostState.BoincState.Apps?.FirstOrDefault(a => a.ProjectUrl == RpcProject?.MasterUrl && a.Name == rpcWorkunit?.AppName); if (RpcProject == null || rpcWorkunit == null || rpcApp == null) { Status = Statuses.GetTaskStatus(result, RpcProject, hostState.BoincState); return; } Project = RpcProject.ProjectName; Application = rpcApp.UserFriendlyName; Workunit = result.WorkunitName; Update(hostState, result); }