Ejemplo n.º 1
0
        public async Task <Result <Dictionary <string, byte[]> > > Execute(GetLayoutCommand command, ICommandScope scope)
        {
            StoredLayout layout = await this._documentSession.LoadAsync <StoredLayout>(StoredLayout.CreateId(command.UserId, command.LayoutName)).WithCurrentCulture();

            if (layout == null)
            {
                return(Result.AsError(CommandMessages.LayoutNotFound));
            }

            return(Result.AsSuccess(layout.LayoutData));
        }
Ejemplo n.º 2
0
        public async Task <Result <object> > Execute(SaveLayoutCommand command, ICommandScope scope)
        {
            var storedLayout = new StoredLayout
            {
                Id         = StoredLayout.CreateId(command.UserId, command.LayoutName),
                LayoutName = command.LayoutName,
                LayoutData = command.LayoutData,
                UserId     = command.UserId
            };

            await this._documentSession.StoreAsync(storedLayout).WithCurrentCulture();

            return(Result.AsSuccess());
        }
        public IEnumerable <AppliedWorkspace> MakeLayouts(ILogicalWorkspace logicalWorkspace)
        {
            var imageSets = GetImageSets(logicalWorkspace);

            foreach (var imageSet in imageSets)
            {
                StoredLayout layout = LayoutSettingsHelper.MinimumLayout;
                foreach (IDisplaySet displaySet in imageSet.DisplaySets)
                {
                    if (displaySet.PresentationImages.Count <= 0)
                    {
                        continue;
                    }
                    StoredLayout storedLayout = LayoutSettingsHelper.GetLayout(displaySet.PresentationImages[0] as IImageSopProvider);
                    layout.ImageBoxRows    = Math.Max(layout.ImageBoxRows, storedLayout.ImageBoxRows);
                    layout.ImageBoxColumns = Math.Max(layout.ImageBoxColumns, storedLayout.ImageBoxColumns);
                    layout.TileRows        = Math.Max(layout.TileRows, storedLayout.TileRows);
                    layout.TileColumns     = Math.Max(layout.TileColumns, storedLayout.TileColumns);
                }
                var imageBoxCount          = layout.ImageBoxColumns * layout.ImageBoxRows;
                var displaySetPerWorkspace = imageSet.DisplaySets.Select((item, index) => new { index, item })
                                             .GroupBy(x => x.index / imageBoxCount)
                                             .Select(x => x.Select(y => y.item));

                var imageBoxLayout = new ImageBoxLayout()
                {
                    TileColumns = layout.TileColumns, TileRows = layout.TileRows
                };
                foreach (var displaySets in displaySetPerWorkspace)
                {
                    var workspaceDisplaySets = displaySets.Select((displaySet) => Tuple.Create(imageBoxLayout, displaySet)).ToList();
                    for (int i = workspaceDisplaySets.Count; i < imageBoxCount; i++)
                    {
                        workspaceDisplaySets.Add(Tuple.Create <ImageBoxLayout, IDisplaySet>(imageBoxLayout, null));
                    }
                    yield return(new AppliedWorkspace()
                    {
                        WorkspaceLayout =
                            new WorkspaceLayout()
                        {
                            Columns = layout.ImageBoxColumns,
                            Rows = layout.ImageBoxRows
                        },
                        DisplaySets = workspaceDisplaySets
                    });
                }
            }
        }
Ejemplo n.º 4
0
        public void LayoutPhysicalWorkspace(IImageSet imageSet)
        {
            StoredLayout layout = LayoutSettingsHelper.MinimumLayout;

            foreach (IDisplaySet displaySet in imageSet.DisplaySets)
            {
                if (displaySet.PresentationImages.Count <= 0)
                {
                    continue;
                }
                StoredLayout storedLayout = LayoutSettingsHelper.GetLayout(displaySet.PresentationImages[0] as IImageSopProvider);
                layout.ImageBoxRows    = Math.Max(layout.ImageBoxRows, storedLayout.ImageBoxRows);
                layout.ImageBoxColumns = Math.Max(layout.ImageBoxColumns, storedLayout.ImageBoxColumns);
                layout.TileRows        = Math.Max(layout.TileRows, storedLayout.TileRows);
                layout.TileColumns     = Math.Max(layout.TileColumns, storedLayout.TileColumns);
            }
            Context.Viewer.PhysicalWorkspace.SetImageBoxGrid(layout.ImageBoxRows, layout.ImageBoxColumns);
            foreach (var imageBox in Context.Viewer.PhysicalWorkspace.ImageBoxes)
            {
                imageBox.SetTileGrid(layout.TileRows, layout.TileColumns);
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Customizes the raven database.
 /// </summary>
 /// <param name="documentStore">The document store.</param>
 private void CustomizeRavenDocumentStore(DocumentStore documentStore)
 {
     documentStore.Conventions.RegisterAsyncIdConvention <AuthenticationData>((databaseName, commands, entity) =>
     {
         return(Task.FromResult(AuthenticationData.CreateId(entity.UserId)));
     });
     documentStore.Conventions.RegisterAsyncIdConvention <AuthenticationToken>((databaseName, commands, entity) =>
     {
         return(Task.FromResult(AuthenticationToken.CreateId(entity.Token)));
     });
     documentStore.Conventions.RegisterAsyncIdConvention <MileageInternalSettings>((databaseName, commands, entity) =>
     {
         return(Task.FromResult(MileageInternalSettings.CreateId()));
     });
     documentStore.Conventions.RegisterAsyncIdConvention <MileageSettings>((databaseName, commands, entity) =>
     {
         return(Task.FromResult(MileageSettings.CreateId()));
     });
     documentStore.Conventions.RegisterAsyncIdConvention <StoredLayout>((databaseName, commands, entity) =>
     {
         return(Task.FromResult(StoredLayout.CreateId(entity.UserId, entity.LayoutName)));
     });
 }