Exemple #1
0
        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);
        }