private IEnumerable <ChorusItem> ListItems(ChorusUrl chorusUrl, ChorusContents chorusContents) { IEnumerable <ChorusItem> items = new ChorusItem[0]; if (null != chorusContents.experiments) { items = items.Concat(chorusContents.experiments.Select(experiment => new ChorusItem(chorusUrl.SetExperimentId(experiment.id).AddPathPart(experiment.GetName()), experiment.GetName(), DataSourceUtil.FOLDER_TYPE, null, 0))); } if (null != chorusContents.files) { items = items.Concat(chorusContents.files.Select( file => { ChorusUrl fileUrl = chorusUrl.SetFileId(file.id) .AddPathPart(file.GetName()) .SetFileWriteTime(file.GetModifiedDateTime()) .SetRunStartTime(file.GetAcquisitionDateTime()); return(new ChorusItem(fileUrl, file.GetName(), GetFileType(file), file.GetModifiedDateTime(), file.fileSizeBytes)); } )); } if (null != chorusContents.projects) { items = items.Concat(chorusContents.projects.Select(project => new ChorusItem(chorusUrl.SetProjectId(project.id).AddPathPart(project.GetName()), project.GetName(), DataSourceUtil.FOLDER_TYPE, null, project.GetSize()))); } return(items); }
private void FetchAndStoreContents(ChorusAccount chorusAccount, Uri requestUri) { ChorusContents contents = new ChorusContents(); var key = new RequestKey(chorusAccount, requestUri); try { StoreContentsResponse(key, new ChorusContentsResponse(FetchContents(chorusAccount, requestUri), true)); } catch (Exception exception) { ChorusServerException chorusException = exception as ChorusServerException; // ReSharper disable once ConvertIfStatementToNullCoalescingExpression if (null == chorusException) { chorusException = new ChorusServerException( Resources.ChorusSession_FetchContents_There_was_an_error_communicating_with_the_server__ + exception.Message, exception); } StoreContentsResponse(key, new ChorusContentsResponse(contents, true) { ChorusException = chorusException, }); } finally { lock (_lock) { _fetchRequests.Remove(key); } } }
public ChorusContents Merge(ChorusContents chorusContents) { return(new ChorusContents { myProjects = myProjects ?? chorusContents.myProjects, sharedProjects = sharedProjects ?? chorusContents.sharedProjects, publicProjects = publicProjects ?? chorusContents.publicProjects, myExperiments = myExperiments ?? chorusContents.myExperiments, sharedExperiments = sharedExperiments ?? chorusContents.sharedExperiments, publicExperiments = publicExperiments ?? chorusContents.publicExperiments, myFiles = myFiles ?? chorusContents.myFiles, sharedFiles = sharedFiles ?? chorusContents.sharedFiles, publicFiles = publicFiles ?? chorusContents.publicFiles, }); }
public ChorusContentsResponse(ChorusContents data, bool isComplete) { Data = data; IsComplete = isComplete; }
public ChorusContents Merge(ChorusContents chorusContents) { return new ChorusContents { myProjects = myProjects ?? chorusContents.myProjects, sharedProjects = sharedProjects ?? chorusContents.sharedProjects, publicProjects = publicProjects ?? chorusContents.publicProjects, myExperiments = myExperiments ?? chorusContents.myExperiments, sharedExperiments = sharedExperiments ?? chorusContents.sharedExperiments, publicExperiments = publicExperiments ?? chorusContents.publicExperiments, myFiles = myFiles ?? chorusContents.myFiles, sharedFiles = sharedFiles ?? chorusContents.sharedFiles, publicFiles = publicFiles ?? chorusContents.publicFiles, }; }