示例#1
0
        public JsonResult GetExternalWare(string name, int categoryId, int pageSize = 20, int pageIndex = 1, string selected = "")
        {
            var externalwareurl = string.Format(Server.UrlDecode(ConfigurationManager.AppSettings["WareServerExternalWareUrl"]), name, categoryId, pageIndex, pageSize, CurrentTenant.ExternalWareTenantId);
            var response        = ExternalWareHelper.CreateGetHttpResponse(externalwareurl, null);

            if (response != null)
            {
                var message = ExternalWareHelper.GetResponseString(response);
                var data    = Newtonsoft.Json.JsonConvert.DeserializeObject <ResultData>(message);

                if (data.RecordCount == 0)
                {
                    return(Json(new { dataList = new object[] { }, recordCount = 0 }, JsonRequestBehavior.AllowGet));
                }

                int[] ids      = selected.GetArray();
                var   dataList = data.DataList.Select(p => new
                {
                    WareId     = p["Id"],
                    WareName   = p["Filename"],
                    Type       = p["FileType"],
                    TypeDesc   = p["FileType"] == "0" ? CourseLanguage.StandardWare : (p["FileType"] == "1" ? CourseLanguage.NormalWare : CourseLanguage.VideoWare),
                    IsSelected = ids.Any(i => i.ToString() == p["Id"]) ? 1 : 0
                });
                return(Json(new { dataList, recordCount = data.RecordCount }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { dataList = new object[] { }, recordCount = 0 }, JsonRequestBehavior.AllowGet));
            }
        }
        /// <summary>
        ///     获取上传的文件,返回list集合
        /// </summary>
        /// <param name="type">0:图片,1:音频,2:视频</param>
        /// <returns></returns>
        public List <FileUpload> FileUpload(int type)
        {
            var flv = new List <string> {
                ".mp4", ".rmvb", ".wmv", ".flv"
            };

            var listfileUpload = new List <FileUpload>();

            var tUrl = System.Configuration.ConfigurationManager.AppSettings["TenantwareServerBaseUrl"];
            //var tUrl = "http://192.168.100.65:8261/";

            HttpFileCollectionBase files = Request.Files;

            for (int i = 0; i < files.Count; i++)
            {
                var    fileUpload = new FileUpload();
                string fileName   = Path.GetFileName(files[i].FileName);
                string fileExten  = Path.GetExtension(fileName); //扩展名

                if (type != 2 || (type == 2 && flv.Contains(fileExten.ToLower())))
                {
                    string oldName = "";
                    if (type == 2)
                    {
                        string uploadUrl = string.Format(Server.UrlDecode(ConfigurationManager.AppSettings["WareServerUploadWareUrl"]), fileName, "2", CurrentTenant.TenantName);
                        var    responstr = ExternalWareHelper.GetResponseString(ExternalWareHelper.Upload_Request(uploadUrl, files[i].InputStream, fileName));
                        var    data      = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(responstr);
                        if (data.RecordCount == 1)
                        {
                            string converturl = data.DataList["convertfileurl"];
                            if (!string.IsNullOrWhiteSpace(converturl))
                            {
                                oldName = tUrl + converturl.Replace("\\", "/") + ".mp4";
                            }
                            //fileUpload.FileName = tUrl + "FS/ConvertFileUrl?Id=" + data.DataList["Id"];
                        }
                    }
                    else
                    {
                        oldName = SaveFile(files[i], "~/UploadFiles/ExamQuestionResource/");
                    }
                    //保存的文件名,防止名称冲突
                    fileUpload.FileType = type;
                    fileUpload.RealName = fileName;
                    fileUpload.FileName = oldName;
                    listfileUpload.Add(fileUpload);
                }
            }
            return(listfileUpload);
        }
示例#3
0
        /// <summary>
        /// 上传文件,通过HttpRequest中的Files
        /// </summary>
        /// <param name="file"></param>
        /// <param name="dir">相对路径</param>
        /// <param name="extendName">扩展名</param>
        /// <param name="externalId">外部租户ID</param>
        /// <returns></returns>
        public string Upload(System.Web.HttpPostedFileBase file, string dir, string extendName, int externalId)
        {
            var    uploadUrl = string.Format(FileStoreHost.FileStoreWareUploadUrl, file.FileName, "-1", externalId);
            var    responstr = ExternalWareHelper.GetResponseString(ExternalWareHelper.Upload_Request(uploadUrl, file.InputStream, file.FileName));
            string fileUrl   = string.Empty;
            var    data      = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(responstr);

            if (data.RecordCount == 1)
            {
                string converturl = data.DataList["convertfileurl"];
                if (!string.IsNullOrWhiteSpace(converturl))
                {
                    fileUrl = FileStoreHost.FileStoreUrl + converturl.Replace("\\", "/");
                }
            }
            return(fileUrl);
        }
示例#4
0
        /// <summary>
        /// Gets the external ware.
        /// </summary>
        /// <returns>The external ware.</returns>
        /// <param name="id">Identifier.</param>
        public ResCourseWare GetExternalWare(int id)
        {
            var response = ExternalWareHelper.CreateGetHttpResponse(ExternalWareHelper.localWareServerBaseUrl + "FS/FileGet?Id=" + id, null);

            if (response == null)
            {
                return(null);
            }
            var str  = ExternalWareHelper.GetResponseString(response);
            var data = Newtonsoft.Json.JsonConvert.DeserializeObject <ResultData>(str);

            if (data.RecordCount == 0)
            {
                return(null);
            }

            return(parseWare(data.DataList[0]));
        }
示例#5
0
        /// <summary>
        /// 上传文件,通过HttpRequest中的Files
        /// </summary>
        /// <param name="data"></param>
        /// <param name="dir">相对路径</param>
        /// <param name="extendName">扩展名</param>
        /// <param name="externalId">外部租户ID</param>
        /// <returns></returns>
        public string Upload(byte[] data, string dir, string extendName, int externalId)
        {
            var fileName = Guid.NewGuid().ToString("N") + "." + extendName;

            Stream stream = new MemoryStream(data);

            var    uploadUrl    = string.Format(FileStoreHost.FileStoreWareUploadUrl, fileName, "-1", externalId);
            var    responstr    = ExternalWareHelper.GetResponseString(ExternalWareHelper.Upload_Request(uploadUrl, stream, fileName));
            string fileUrl      = string.Empty;
            var    dataResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(responstr);

            if (dataResponse.RecordCount == 1)
            {
                string converturl = dataResponse.DataList["convertfileurl"];
                if (!string.IsNullOrWhiteSpace(converturl))
                {
                    fileUrl = FileStoreHost.FileStoreUrl + converturl.Replace("\\", "/");
                }
            }
            return(fileUrl);
        }
示例#6
0
        private List <ResCourseWare> GetExternalWareList(IEnumerable <int> wareIds)
        {
            if (!wareIds.Any())
            {
                return(new List <ResCourseWare>());
            }
            var param = new Dictionary <string, string>();

            param["Ids"] = wareIds.GetString();
            var response = ExternalWareHelper.CreatePostHttpResponse(ExternalWareHelper.localWareServerBaseUrl + "FS/FileListGet", param, null);
            var wares    = new List <ResCourseWare>();

            if (response == null)
            {
                return(wares);
            }
            var str = ExternalWareHelper.GetResponseString(response);

            var data = Newtonsoft.Json.JsonConvert.DeserializeObject <ResultData>(str);

            if (data.RecordCount == 0)
            {
                return(wares);
            }

            if (data.DataList != null && data.DataList.Any())
            {
                foreach (var item in data.DataList)
                {
                    if (item["IsConvert"] != "1")
                    {
                        continue;
                    }
                    wares.Add(parseWare(item));
                }
            }

            return(wares);
        }
示例#7
0
        /// <summary>
        /// 获取内部课件但课件存在外地的那些课件
        /// 【用于移动端播放】
        /// </summary>
        /// <param name="wareIds"></param>
        /// <returns></returns>
        public List <ResCourseWare> GetInternalWareExternal(IEnumerable <int> wareIds)
        {
            try
            {
                if (!wareIds.Any())
                {
                    return(new List <ResCourseWare>());
                }

                var param = new Dictionary <string, string>();
                param["Ids"] = wareIds.GetString();
                var response = ExternalWareHelper.CreatePostHttpResponse(ExternalWareHelper.tenantwareServerBaseUrl + "FS/FileListGet", param, null);
                var wares    = new List <ResCourseWare>();
                if (response == null)
                {
                    return(wares);
                }
                var str = ExternalWareHelper.GetResponseString(response);

                var data = Newtonsoft.Json.JsonConvert.DeserializeObject <ResultData>(str);
                if (data.RecordCount == 0 || data.DataList.Count == 0)
                {
                    return(wares);
                }

                foreach (var item in data.DataList)
                {
                    if (item["IsConvert"] != "1")
                    {
                        continue;
                    }

                    var ware = new ResCourseWare();

                    int type = int.Parse(item["FileType"]);
                    ware.WareId = int.Parse(item["Id"]);
                    var hasUrl = false;
                    if (item.ContainsKey("Url"))
                    {
                        var str1 = Newtonsoft.Json.JsonConvert.SerializeObject(item["Url"] as object);
                        var urls = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dictionary <string, string> > >(str1);
                        if (urls.Any())
                        {
                            hasUrl = true;
                        }
                    }
                    if (hasUrl)
                    {
                        var random = new Random();
                        var str1   = Newtonsoft.Json.JsonConvert.SerializeObject(item["Url"] as object);
                        var urls   = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dictionary <string, string> > >(str1);
                        //var urls = item["Url"] as List<Dictionary<string, string>>;

                        var curls = urls.FindAll(p => !string.IsNullOrEmpty(p["ConvertFileUrl"]));
                        if (curls.Count > 0)
                        {
                            ware.Path = curls[random.Next(0, curls.Count - 1)]["ConvertFileUrl"];
                            if (type == 0)
                            {
                                ware.Path = ware.Path.Substring(0, ware.Path.IndexOf("data"));
                            }
                            if (type == 1)
                            {
                                //ware.Path = ExternalWareHelper.tenantwareServerBaseUrl + item["FilePath"].Replace("\\", "/");
                                ware.Path = urls[0]["FileUrl"];
                            }
                        }
                        var packids = urls.FindAll(p => !string.IsNullOrEmpty(p["PackId"]) && p["PackId"] != "0");
                        if (packids.Count > 0)
                        {
                            ware.PackId = packids[random.Next(0, packids.Count - 1)]["PackId"];
                        }
                    }
                    else
                    {
                        if (string.IsNullOrEmpty(ware.Path))
                        {
                            ware.Path = ExternalWareHelper.tenantwareServerBaseUrl + item["ConvertFilePath"].Replace("\\", "/");
                            if (type == 0)
                            {
                                ware.Path = ware.Path.Substring(0, ware.Path.IndexOf("data"));
                            }
                        }
                        if (string.IsNullOrEmpty(ware.PackId) && type == 0)
                        {
                            string PakcId = "0";
                            if (!string.IsNullOrEmpty(item["OtherInformation"]))
                            {
                                var OtherInformation = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(item["OtherInformation"]);
                                PakcId = OtherInformation.packID;
                            }
                            ware.PackId = PakcId;
                        }
                    }

                    wares.Add(ware);
                }

                return(wares);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }