Exemple #1
0
        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);
        }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
 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,
     });
 }
Exemple #4
0
 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,
     };
 }