Esempio n. 1
0
        public async Task LoadTests()
        {
            string       fileName     = "StorageLoadProviderTests.bin";
            MemoryStream memoryStream = new MemoryStream();

            memoryStream.Write(new byte[] { 0x01, 0x02, 0x03, 0x04 }, 0, 4);
            memoryStream.Seek(0, SeekOrigin.Begin);
            await loadProvider.Load(memoryStream, new LoadContext()
            {
                Parameter = fileName
            });

            string writePath = Path.Combine(ConstVariable.ApplicationPath, fileName);

            Assert.True(File.Exists(writePath));
            Assert.Equal(4, File.ReadAllBytes(writePath).Length);
            File.Delete(writePath);
        }
Esempio n. 2
0
        public async Task Process(byte[] processMessage, IPlatformExit platformExit)
        {
            KernelMessage kernelMessage = JsonConvert.DeserializeObject <KernelMessage>(Encoding.UTF8.GetString(processMessage));
            LoadEvent     loadEvent     = await CoreCache.RestoreAsync <LoadEvent>(PrefixConst.LOAD_META + kernelMessage.JobId);

            if (loadEvent != null)
            {
                var loadProviderNavs = loadEvent.LoadProviders.ToDictionary(x => x.Name, x => x);
                foreach (var dataProvider in loadEvent.Data)
                {
                    var           loadProviderNav = loadProviderNavs[dataProvider.Provider.Name];
                    ILoadProvider loadProvider    = this.LoadProviderManager.GetLoadProvider(loadProviderNav.Type, loadProviderNav.Name, loadProviderNav.Context.ToString());
                    try
                    {
                        await dataStorage.ReadAsStream(dataProvider.DataPacket, s =>
                        {
                            return(loadProvider.Load(s,
                                                     new LoadContext()
                            {
                                Parameter = dataProvider.Provider.Parameter,
                                PlatformModel = new PlatformModel()
                                {
                                    CoreCache = CoreCache,
                                    PlatformExit = platformExit
                                },
                                LoadEvent = loadEvent
                            }));
                        });
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex);
                    }
                }
            }
            else
            {
                logger.Warn("Received no-meta id:" + PrefixConst.LOAD_META + kernelMessage.JobId);
            }
        }