public void TestFailToUploadSoft()
        {
            var            mock           = new Mock <IESSession>();
            SoftwareSource softwareSource = new SoftwareSource();

            softwareSource.SoftwareName        = "OS_Software1";
            softwareSource.SoftwareDescription = "“This is a OS template.";
            softwareSource.SoftwareType        = "Windows";
            softwareSource.SoftwareVersion     = "Windows Server 2008 R2 x64";
            softwareSource.SoftwareLanguage    = "Chinese";
            softwareSource.SourceName          = "7601.17514.101119 - 1850_x64fre_server_eval_en - us - GRMSXEVAL_EN_DVD.iso";
            softwareSource.SftpserverIP        = "188.10.18.188";
            softwareSource.SftpUserName        = "******";
            softwareSource.SftpPassword        = "******";

            StringBuilder         sb      = new StringBuilder(ConstMgr.HWESightHost.URL_UPLOADE_SOFTWARESOURCE);
            JObject               jResult = JsonUtil.DeserializeObject <JObject>("{\"code\" : -4011, \"data\":{ \"taskName\":\"API@Task_1456209500919\"},\"description\" : \"任务正在运行.\"}");
            ISoftwareSourceWorker worker  = new SoftwareSourceWorker();

            mock.Setup(foo => foo.HCPost(sb.ToString(), softwareSource)).Returns(jResult);
            mock.Setup(foo => foo.HWESightHost).Returns(_hwESightHost);
            //mock.Setup(foo => foo.SoftSourceWorker)).Returns(jResult);
            worker.ESSession = mock.Object;
            worker.UploadSoftwareSource(softwareSource);
        }
        /// <summary>
        /// 上传软件源
        /// </summary>
        /// <param name="softwareSource">软件源参数</param>
        /// <returns>返回任务名</returns>
        public string UploadSoftwareSource(SoftwareSource softwareSource)
        {
            QueryObjectResult <JObject> queryObjectResult = UploadSoftwareSourceWithResult(softwareSource);

            if (queryObjectResult.Code != 0)
            {
                throw GetDeployException(queryObjectResult.Code.ToString(), this, queryObjectResult.Description);//"上传软件源出错:" +
            }
            string taskName = JsonUtil.GetJObjectPropVal <string>(queryObjectResult.Data, "taskName");

            return(taskName);
        }
        public void UploadSoftwareSourceTest1()
        {
            _esSession.Open();
            SoftwareSource softwareSource = new SoftwareSource();

            softwareSource.SoftwareName        = "OS_Software1111";
            softwareSource.SoftwareDescription = "“This is a OS template.";
            softwareSource.SoftwareType        = "Windows";
            softwareSource.SoftwareVersion     = "Windows Server 2008 R2 x64";
            softwareSource.SoftwareLanguage    = "Chinese";
            softwareSource.SourceName          = "7601.17514.101119 - 1850_x64fre_server_eval_en - us - GRMSXEVAL_EN_DVD.iso";
            softwareSource.SftpserverIP        = "188.10.18.188";
            softwareSource.SftpUserName        = "******";
            softwareSource.SftpPassword        = "******";
            QueryObjectResult <JObject> sourceResult = _esSession.SoftSourceWorker.UploadSoftwareSourceWithResult(softwareSource);

            Assert.IsNotNull(sourceResult);
        }
        public void UploadSoftwareSourceTest()
        {
            _esSession.Open();
            SoftwareSource softwareSource = new SoftwareSource();

            softwareSource.SoftwareName        = "OS_Software1";
            softwareSource.SoftwareDescription = "“This is a OS template.";
            softwareSource.SoftwareType        = "Windows";
            softwareSource.SoftwareVersion     = "Windows Server 2008 R2 x64";
            softwareSource.SoftwareLanguage    = "Chinese";
            softwareSource.SourceName          = "7601.17514.101119 - 1850_x64fre_server_eval_en - us - GRMSXEVAL_EN_DVD.iso";
            softwareSource.SftpserverIP        = "188.10.18.188";
            softwareSource.SftpUserName        = "******";
            softwareSource.SftpPassword        = "******";
            string taskName = _esSession.SoftSourceWorker.UploadSoftwareSource(softwareSource);

            Console.WriteLine(taskName);
            Assert.IsTrue(!string.IsNullOrEmpty(taskName));
        }
        /// <summary>
        /// 上传软件源,直接返回结果。
        /// 不抛出错误
        /// </summary>
        /// <param name="softwareSource">软件源参数</param>
        /// <returns>QueryObjectResult[taskname]</returns>
        public QueryObjectResult <JObject> UploadSoftwareSourceWithResult(SoftwareSource softwareSource)
        {
            StringBuilder sb      = new StringBuilder(ConstMgr.HWESightHost.URL_UPLOADE_SOFTWARESOURCE);
            JObject       jResult = ESSession.HCPost(sb.ToString(), softwareSource); //提交eSight服务器

            CheckAndThrowException(jResult);                                         //检测提交错误。
            HWESightTask eSightTask = HWESightTaskDal.Instance.FindTaskBySourceName(this.ESSession.HWESightHost.ID, softwareSource.SoftwareName);

            if (eSightTask == null)//不是重复任务,创建任务对象。
            {
                eSightTask = new HWESightTask();
            }
            else//重复的任务。
            {
                LogUtil.HWLogger.API.WarnFormat("Find same source in the database, the data will be overwite=[{0}]", softwareSource.SoftwareName);
            }
            string taskName = "";                                                                              //eSight返回的任务名。
            QueryObjectResult <JObject> queryObjectResult = jResult.ToObject <QueryObjectResult <JObject> >(); //转换Json对象为期待的序列化对象。

            if (queryObjectResult.Code == 0)                                                                   //成功
            {
                taskName = JsonUtil.GetJObjectPropVal <string>(queryObjectResult.Data, "taskName");
                //Save to database.
                eSightTask.HWESightHostID     = this.ESSession.HWESightHost.ID;
                eSightTask.TaskName           = taskName;
                eSightTask.SoftWareSourceName = softwareSource.SoftwareName;
                eSightTask.TaskStatus         = ConstMgr.HWESightTask.TASK_STATUS_RUNNING;//初始化。
                eSightTask.TaskProgress       = 0;
                eSightTask.TaskResult         = "";
                eSightTask.ErrorDetail        = "";
                eSightTask.SyncStatus         = ConstMgr.HWESightTask.SYNC_STATUS_CREATED;
                eSightTask.TaskType           = ConstMgr.HWESightTask.TASK_TYPE_SOFTWARE;
                eSightTask.LastModifyTime     = System.DateTime.Now;
                eSightTask.CreateTime         = System.DateTime.Now;
                int taskId = HWESightTaskDal.Instance.InsertEntity(eSightTask);
                LogUtil.HWLogger.API.InfoFormat("Add task:{0}", taskId);
            }
            return(queryObjectResult);
        }
        public void UploadSoftwareSourceJsonTest()
        {
            _esSession.Open();
            SoftwareSource softwareSource = new SoftwareSource();

            softwareSource.SoftwareName        = "OS_Software1";
            softwareSource.SoftwareDescription = "“This is a OS template.";
            softwareSource.SoftwareType        = "Windows";
            softwareSource.SoftwareVersion     = "Windows Server 2008 R2 x64";
            softwareSource.SoftwareLanguage    = "Chinese";
            softwareSource.SourceName          = "7601.17514.101119 - 1850_x64fre_server_eval_en - us - GRMSXEVAL_EN_DVD.iso";
            softwareSource.SftpserverIP        = "188.10.18.188";
            softwareSource.SftpUserName        = "******";
            softwareSource.SftpPassword        = "******";
            string taskName = _esSession.SoftSourceWorker.UploadSoftwareSource(softwareSource);
            WebMutilESightsParam <SoftwareSource> postESightParam = new WebMutilESightsParam <SoftwareSource>();

            postESightParam.ESights = new List <string>()
            {
                "127.0.0.1"
            };
            postESightParam.Data = softwareSource;
            Console.WriteLine(taskName);

            LogUtil.HWLogger.API.Info("UploadSoftwareSourceJsonTest Params:" + JsonUtil.SerializeObject(postESightParam));
            JObject taskObject = new JObject();

            taskObject.Add("taskName", taskName);
            QueryObjectResult <JObject> taskResult = new QueryObjectResult <JObject>();

            taskResult.Data = taskObject;

            LogUtil.HWLogger.API.Info("UploadSoftwareSourceJsonTest Result:" + JsonUtil.SerializeObject(taskResult));

            Assert.IsTrue(!string.IsNullOrEmpty(taskName));
        }