Exemplo n.º 1
0
        public ImageDataWrapper GetThumbnailByID(string imageID, int ThumbnailSize = 256)
        {
            if (imageID is null)
            {
                throw new ArgumentNullException(nameof(imageID));
            }
            try {
                ImageDataWrapper imageDataWrapper;
                if (!memoryCache.TryGetValue(imageID, out imageDataWrapper))
                {
                    GalleryImage galleryImage = GetByID(imageID);
                    using (Stream imageData = new MemoryStream(getImageDataByID(galleryImage))) {
                        Image image = Image.FromStream(imageData);
                        Image thumb = image.GetThumbnailImage(ThumbnailSize, ThumbnailSize, () => false, IntPtr.Zero);
                        using (MemoryStream m = new MemoryStream()) {
                            thumb.Save(m, image.RawFormat);
                            byte[] imageBytes = m.ToArray();

                            imageDataWrapper = new ImageDataWrapper();
                            // Convert byte[] to Base64 String
                            imageDataWrapper.ImageData = Convert.ToBase64String(imageBytes);
                        }
                    }
                    AddItemToCache(imageID, imageDataWrapper);
                }
                return(imageDataWrapper);
            } catch (IOException ex) {
                throw ex;
            }
        }
Exemplo n.º 2
0
        public async Task <ExecutionResult> RunAsync(string input, IChannel channel)
        {
            var(name, args) = ParseInput(input);
            var symbol = SymbolResolver.Resolve(name) as IQSharpSymbol;

            if (symbol == null)
            {
                throw new InvalidOperationException($"Invalid operation name: {name}");
            }
            var snippetsWithNoOverlap = this.Snippets.Items.Where(s => s.Elements.Select(IQSharp.Extensions.ToFullName).Contains(Snippets.SNIPPETS_NAMESPACE + "." + symbol.Name));
            var files = new List <Uri>();

            files.Add(snippetsWithNoOverlap.FirstOrDefault().Uri);
            var l = snippetsWithNoOverlap.FirstOrDefault().Elements;

            Console.WriteLine(l.Count());
            foreach (var s in l)
            {
                Console.WriteLine(s.ToFullName());

                //AssemblyInfo = Compiler.BuildFiles(files, GlobalReferences.CompilerMetadata, logger, CacheDll);
            }
            var qsNamespace = new QsCompiler.SyntaxTree.QsNamespace(NonNullable <string> .New(Snippets.SNIPPETS_NAMESPACE), ImmutableArray.Create(l), null);
            var logger      = new QSharpLogger(Logger);
            var newAssembly = CompilerService.BuildAssembly(files.ToArray(), new[] { qsNamespace }, GlobalReferences.CompilerMetadata.RoslynMetadatas, logger, Path.Combine(Path.GetTempPath(), "__snippets__.dll"));

            Assembly.LoadFrom(newAssembly.Location);
            symbol = SymbolResolver.Resolve(name) as IQSharpSymbol;
            if (symbol == null)
            {
                throw new InvalidOperationException($"Invalid operation name: {name}");
            }

            var aSCIICircuitizer = new ASCIICircuitizer();
            var qsim             = new CircuitizerSimulator(aSCIICircuitizer);

            qsim.DisableLogToConsole();
            qsim.OnLog += channel.Stdout;

            var value = await symbol.Operation.RunAsync(qsim, args);

            var result = qsim.Render();
            // TODO : currently we are ignoring the Render result from qsim and rendering a local file instead.
            var imageHtml = new ImageDataWrapper
            {
                imageFileName = @"C:\Users\angarg\Pictures\bad_status.PNG"
            };

            //return imageHtml.ToExecutionResult();
            return(result.ToExecutionResult());
        }
Exemplo n.º 3
0
        public ImageDataWrapper GetDataByID(string imageID)
        {
            if (imageID is null)
            {
                throw new ArgumentNullException(nameof(imageID));
            }
            logger.LogInformation($"Getting image data for ID {imageID}");
            GalleryImage     image            = GetByID(imageID);
            ImageDataWrapper imageDataWrapper = new ImageDataWrapper();

            imageDataWrapper.ImageData = Convert.ToBase64String(getImageDataByID(image));
            logger.LogInformation($"Returning image data for ID {imageID}");
            return(imageDataWrapper);
        }