Пример #1
0
        internal static async Task <DirectoryInfo> GetResourceDirectory(ScanModel model)
        {
            await _semaphoreSlim.WaitAsync();

            DirectoryInfo resourceFolder = null;

            try
            {
                DirectoryInfo preReqFolder       = null;
                string        resourceFolderPath = null;
                if (!String.IsNullOrEmpty(model.PrerequisiteName))
                {
                    if (!IsScanPrereqExist(model.PrerequisiteName))
                    {
                        ScanPrerequisiteModel prerequisiteModel = await KamajiClient.Instance.Scans.GetScanPrerequisiteBy(model.PrerequisiteName);

                        preReqFolder = await CreateScanPrereqFolder(prerequisiteModel.Name, prerequisiteModel.Resources);
                    }
                    else
                    {
                        preReqFolder = GetExistPrereq(model.PrerequisiteName);
                    }

                    resourceFolderPath = preReqFolder.FullName + "\\" + model.ResourceName;
                }
                else
                {
                    resourceFolderPath = ScanResourcesPath + model.ResourceName;//if it has no prereq, just copy to the root folder.
                }
                if (!Directory.Exists(resourceFolderPath))
                {
                    ScanResourceModel resourceModel = await KamajiClient.Instance.Scans.GetScanResourceBy(model.ResourceName);

                    if (null != resourceModel)
                    {
                        byte[] resources = resourceModel.Resources;
                        resourceFolder = Directory.CreateDirectory(resourceFolderPath);

                        await ExtractZip(resourceFolderPath, resources);
                    }
                }
                else
                {
                    resourceFolder = new DirectoryInfo(resourceFolderPath);
                }
            }
            finally
            {
                _semaphoreSlim.Release();
            }

            return(resourceFolder);
        }
Пример #2
0
        public async Task SaveScanPrerequisiteTest()
        {
            int result = 0;
            await RestClient.Instance.SignIn();

            ScanPrerequisiteModel model;

            string path = RootPath + "puppeteer_1.9.0&express_4.16.4.zip";// Utility.GetExecutionPath() + "\\puppeteer_1.9.0&express_4.16.4.zip";

            model           = new ScanPrerequisiteModel();
            model.Name      = "puppeteer";
            model.Version   = "1.0.0";
            model.Resources = await File.ReadAllBytesAsync(path);

            result = await RestClient.Instance.PostAsync <int>("Scan/SaveScanPrerequisite", model);

            Assert.AreEqual(result, 1);
        }
Пример #3
0
        [HttpGet]//Node bunu çağırıyor.
        public Task <IActionResult> GetScanPrerequisiteBy(string name)
        {
            return(this.ResultAsync(async() =>
            {
                ScanPrerequisiteModel ret = null;
                if (!String.IsNullOrEmpty(name))
                {
                    IScanPrerequisiteModel entity = await this.Db.ScanPrerequisites.GetBy(name);
                    if (null != entity)
                    {
                        ret = new ScanPrerequisiteModel();
                        ret.CopyPropertiesFrom(entity);
                    }
                }

                return ret;
            }));
        }
Пример #4
0
        public Task <IActionResult> SaveScanPrerequisite(ScanPrerequisiteModel model)
        {
            return(this.ResultAsync(async() =>
            {
                int ret = 0;
                if (model.IsModelValid())
                {
                    IScanPrerequisiteModel entity = this.Db.ModelFactory.CreateScanPrerequisiteModel();
                    entity.CopyPropertiesFrom(model);
                    entity.CreatedDate = await this.Db.GetDbDateTime();
                    entity.LastModifiedDate = entity.CreatedDate;

                    await this.Db.ScanPrerequisites.Save(entity);
                    ret = 1;
                }

                return ret;
            }));
        }