Example #1
0
        /// <summary>
        /// 下载
        /// </summary>
        /// <param name="dvFile"></param>
        /// <param name="strPathType"></param>
        /// <param name="strFileNameEx"></param>
        /// <param name="strProductPublicUrl"></param>
        /// <param name="strFileSyncExecRecord_id"></param>
        /// <param name="strRemark"></param>
        /// <param name="isCoverDownload">true: 覆盖下载</param>
        private void DownLoadFile(DataRow[] dvFile, string strPathType, string ParticularYear, string GradeTerm, string Resource_Version, string Subject, string strFileNameEx, string strProductPublicUrl, string strFileSyncExecRecord_id, string strRemark, string Book_Id, string Resource_Type, bool isCoverDownload)
        {
            bool isDownload = false;//是否要下载文件

            foreach (var item in dvFile)
            {
                #region 组织文件源的URL与本地存储的路径
                string strPathCommon = string.Empty;
                string strFileName   = string.Empty;//文件名(没后缀)
                strFileName   = item["FileName"].ToString();
                strPathCommon = string.Format("{0}/{1}/{2}/{3}/{4}/"
                                              , strPathType
                                              , ParticularYear
                                              , GradeTerm
                                              , Resource_Version
                                              , Subject);
                string strFilePath             = string.Empty;
                string strFileNameFullDocument = strFileName + "." + strFileNameEx;
                string remotingFileUrl         = string.Empty;
                string localFilePath           = string.Empty;
                remotingFileUrl = strProductPublicUrl + "Upload/Resource/" + strPathCommon;
                localFilePath   = strLocalPhsicalPath + strPathCommon;
                string remotingViewFileUrl = string.Empty;
                string localViewFilePath   = string.Empty;
                #endregion
                isDownload = false;
                if (!File.Exists(localFilePath + strFileNameFullDocument))//文件不存在
                {
                    isDownload = true;
                }
                else
                {
                    if (isCoverDownload)//是覆盖下载
                    {
                        isDownload = true;
                    }
                }
                if (isDownload)
                {
                    Rc.Model.Resources.Model_FileSyncExecRecordDetail model_FileSyncExecRecordDetail = new Rc.Model.Resources.Model_FileSyncExecRecordDetail();
                    Rc.BLL.Resources.BLL_FileSyncExecRecordDetail     bll_FileSyncExecRecordDetail   = new Rc.BLL.Resources.BLL_FileSyncExecRecordDetail();
                    model_FileSyncExecRecordDetail.FileSyncExecRecordDetail_id = Guid.NewGuid().ToString();
                    model_FileSyncExecRecordDetail.FileSyncExecRecord_id       = strFileSyncExecRecord_id;
                    model_FileSyncExecRecordDetail.Book_Id = Book_Id;
                    model_FileSyncExecRecordDetail.ResourceToResourceFolder_Id = item["ResourceToResourceFolder_Id"].ToString();
                    model_FileSyncExecRecordDetail.Resource_Type    = Resource_Type;
                    model_FileSyncExecRecordDetail.FileUrl          = strPathCommon + strFileNameFullDocument;
                    model_FileSyncExecRecordDetail.Detail_Remark    = "开始同步:" + strRemark;
                    model_FileSyncExecRecordDetail.Detail_Status    = "0";
                    model_FileSyncExecRecordDetail.Detail_TimeStart = DateTime.Now;
                    bll_FileSyncExecRecordDetail.Add(model_FileSyncExecRecordDetail);

                    try
                    {
                        string downloadFileMsg = pfunction.DownLoadFileByWebClient(remotingFileUrl, localFilePath, strFileNameFullDocument);

                        model_FileSyncExecRecordDetail.Detail_TimeEnd = DateTime.Now;
                        if (downloadFileMsg != "true")
                        {
                            model_FileSyncExecRecordDetail.Detail_Status = "2";
                            if (downloadFileMsg.Contains("404"))
                            {
                                model_FileSyncExecRecordDetail.Detail_Status = "1";//如果是远程服务器未找到文件,设置为状态为成功
                                // 17-08-21如果是远程服务器未找到文件,删除同步记录
                                bll_FileSyncExecRecordDetail.Delete(model_FileSyncExecRecordDetail.FileSyncExecRecordDetail_id);
                            }
                            else
                            {
                                model_FileSyncExecRecordDetail.Detail_Remark = strRemark + ":" + downloadFileMsg;
                                bll_FileSyncExecRecordDetail.Update(model_FileSyncExecRecordDetail);
                            }
                        }
                        else
                        {
                            model_FileSyncExecRecordDetail.Detail_Remark = "同步成功:" + strRemark;
                            if (File.Exists(localFilePath + strFileNameFullDocument))
                            {
                                model_FileSyncExecRecordDetail.Detail_Status = "1";
                            }
                            bll_FileSyncExecRecordDetail.Update(model_FileSyncExecRecordDetail);
                        }
                    }
                    catch (Exception ex)
                    {
                        //同步异常 删除已创建文件 17-09-11TS
                        if (File.Exists(localFilePath + strFileNameFullDocument))
                        {
                            File.Delete(localFilePath + strFileNameFullDocument);
                        }

                        model_FileSyncExecRecordDetail.Detail_Remark = "同步失败,异常:" + ex.Message.ToString();
                        model_FileSyncExecRecordDetail.Detail_Status = "2";
                        bll_FileSyncExecRecordDetail.Update(model_FileSyncExecRecordDetail);

                        throw;
                    }
                }
            }
        }
        /// <summary>
        /// 下载
        /// </summary>
        private void DownLoadFileTestpaper(DataRow[] dvFile, string strPathType, string strFileNameEx, string strProductPublicUrl, string strFileSyncExecRecord_id, string strRemark)
        {
            foreach (var item in dvFile)
            {
                #region 组织文件源的URL与本地存储的路径
                string strPathCommon = string.Empty;
                string strFileName   = string.Empty;//文件名(没后缀)
                strFileName = item["FileName"].ToString();

                strPathCommon = string.Format("{0}/{1}/"
                                              , pfunction.ToShortDate(item["Createtime"].ToString())
                                              , strPathType);
                string strFilePath             = string.Empty;
                string strFileNameFullDocument = strFileName + "." + strFileNameEx;
                string remotingFileUrl         = string.Empty;
                string localFilePath           = string.Empty;
                remotingFileUrl = strProductPublicUrl + "Upload/Resource/" + strPathCommon;
                localFilePath   = strLocalPhsicalPath + strPathCommon;
                string remotingViewFileUrl = string.Empty;
                string localViewFilePath   = string.Empty;
                #endregion
                Rc.Model.Resources.Model_FileSyncExecRecordDetail model_FileSyncExecRecordDetail = new Rc.Model.Resources.Model_FileSyncExecRecordDetail();
                Rc.BLL.Resources.BLL_FileSyncExecRecordDetail     bll_FileSyncExecRecordDetail   = new Rc.BLL.Resources.BLL_FileSyncExecRecordDetail();
                model_FileSyncExecRecordDetail.FileSyncExecRecordDetail_id = Guid.NewGuid().ToString();
                model_FileSyncExecRecordDetail.FileSyncExecRecord_id       = strFileSyncExecRecord_id;
                model_FileSyncExecRecordDetail.Book_Id = item["Book_Id"].ToString();
                model_FileSyncExecRecordDetail.ResourceToResourceFolder_Id = item["ResourceToResourceFolder_Id"].ToString();
                model_FileSyncExecRecordDetail.TestQuestions_Id            = item["TestQuestions_Id"].ToString();
                model_FileSyncExecRecordDetail.Resource_Type    = item["Resource_Type"].ToString();
                model_FileSyncExecRecordDetail.FileUrl          = strPathCommon + strFileNameFullDocument;
                model_FileSyncExecRecordDetail.Detail_Remark    = strRemark;
                model_FileSyncExecRecordDetail.Detail_Status    = "0";
                model_FileSyncExecRecordDetail.Detail_TimeStart = DateTime.Now;
                bll_FileSyncExecRecordDetail.Add(model_FileSyncExecRecordDetail);

                string downloadFileMsg = pfunction.DownLoadFileByWebClient(remotingFileUrl, localFilePath, strFileNameFullDocument);

                model_FileSyncExecRecordDetail.Detail_TimeEnd = DateTime.Now;
                if (downloadFileMsg != "true")
                {
                    model_FileSyncExecRecordDetail.Detail_Status = "2";
                    if (downloadFileMsg.Contains("404"))
                    {
                        model_FileSyncExecRecordDetail.Detail_Status = "1";//如果是远程服务器未找到文件,设置为状态为成功
                        // 17-08-21如果是远程服务器未找到文件,删除同步记录
                        bll_FileSyncExecRecordDetail.Delete(model_FileSyncExecRecordDetail.FileSyncExecRecordDetail_id);
                    }
                    else
                    {
                        model_FileSyncExecRecordDetail.Detail_Remark = strRemark + ":" + downloadFileMsg;
                        bll_FileSyncExecRecordDetail.Update(model_FileSyncExecRecordDetail);
                    }
                }
                else
                {
                    model_FileSyncExecRecordDetail.Detail_Remark = "同步成功:" + strRemark;
                    if (File.Exists(localFilePath + strFileNameFullDocument))
                    {
                        model_FileSyncExecRecordDetail.Detail_Status = "1";
                    }
                    bll_FileSyncExecRecordDetail.Update(model_FileSyncExecRecordDetail);
                }
            }
        }