private List <CommAudioFileName> CommAudioTempleInner(AirShowDataDto data) { var times = int.Parse(SettingManager.GetSettingValue(AppSettings.General.PlayTimes)); var canPlayLanguagesStr = SettingManager.GetSettingValue(AppSettings.General.CanPlayLanguages); var canPlayLanguages = JsonConvert.DeserializeObject <List <ChooseLanguages> >(canPlayLanguagesStr); var result = new List <CommAudioFileName>(); if (times <= 0 || canPlayLanguages == null || canPlayLanguages.Count == 0) { return(result); } var code = GetCode(data); var playSet = paySetRepository.FirstOrDefault(x => x.Code == code); if (playSet == null) { return(result); } var tps = paySetTempleRepository.GetAllIncluding(x => x.AudioTemplte).Where(x => x.PlayId == playSet.Id); var fullFileNameList = new List <string>(); StringBuilder contextSb = new StringBuilder(); for (int index = 0; index < times; index++) { contextSb.Clear(); tps.OrderBy(x => x.Sort).ToList().ForEach(x => { var set = canPlayLanguages.FirstOrDefault(item => item.Id == x.AudioTemplte.LanguageId); if (set != null && set.IsChecked) { contextSb.Append(x.AudioTemplte.AudioLanguage.Name); contextSb.Append(":"); x.AudioTemplte.Details.OrderBy(xx => xx.Sort).ToList().ForEach(d => { if (d.IsParamter) { var dtos = CommParamter(d.ParamterType.Value, d.AudioTemplte.LanguageId, data); dtos.ForEach(dto => { fullFileNameList.Add(dto[0]); contextSb.Append(dto[1]); }); } else { fullFileNameList.Add(d.AudioConst.Path + d.AudioConst.FileName); contextSb.Append(d.AudioConst.Content); } }); } }); } var p = _wavCombine.Concatenate(fullFileNameList, data.DeporArrCode); var entity = new CommAudioFileName() { AirshowDataId = data.Id, FileName = p.FileName, FileTotalTime = (int)p.WavLength, Remark = contextSb.ToString(), PlayStatus = PlayStatus.暂未播放, TotalPlayTime = 0, CreationTime = DateTime.Now }; entity = _commAudioFileNameRepository.Insert(entity); result.Add(entity); CurrentUnitOfWork.SaveChanges(); return(result); }