zoukankan      html  css  js  c++  java
  • C#:复杂条件判断类型(练习)

    /// <summary>
        /// 文件类型
        /// </summary>
        public enum FileType
        { 
            Courseware,         //"课件"
            Document,           //"文档"
            Picture,            //"图片"
            Audio,              //"音频"
            Video,              //"视频"
            Cartoon,            //"动画"
            Other               //"其他"
        }
    
        /// <summary>
        ///  资源类型
        /// </summary>
        public enum ContentType
        { 
            MaterialInterpretation,     //"教材解读",
            Writing,                    //"写作", 
            ExpandData,                 //"拓展资料",
            CoursewareIllustrated,      //"课件配图",
            ReadText,                   //"课文朗读",
            LearnCase,                  //"学案",
            AudioVideo,                 //"音视频",
            TeachingPlan,               //"教案",
            Courseware,                 //"课件",
            TestQuestions,              //"试题",
            Other,                      //"其他"
        }
    
        /// <summary>
        /// 判断资源类型 (shenc 2016-7-11)
        /// </summary>
        public class JudgeContentType
        {
            LogService _logger = new LogService();
    
            #region 文件格式类型
    
            public List<string> _fileTypeName = new List<string>{"课件","文档","图片","音频","视频","动画","其他"};
            public List<string> _coursewareFormatType = new List<string> { "ppt", "pptx"};
            public List<string> _documentFormatType = new List<string> { "doc", "docx", "xls", "xlsx", "pdf", "vsd", "rtf", "txt", "xml", "xpt", "pps", "ppsx", "pdfx" };
            public List<string> _pictureFormatType = new List<string> { "jpg", "jpeg", "gif", "bmp", "png", "tif" };
            public List<string> _audioFormatType = new List<string> { "mp3", "mid", "wma", "wav", "flac", "m4a", "voc" };
            public List<string> _videoFormatType = new List<string> { "flv", "avi", "mkv", "wmv", "mp4", "f4v", "mpg", "asf", "webm", "mov", "rmvb", "rm" };
            public List<string> _cartoonFormatType = new List<string> { "swf" };
            public List<string> _otherFormatType = new List<string> { "exe", "dbb" };
            public Dictionary<FileType, List<string>> _dicFileType_Formats = new Dictionary<FileType, List<string>>();
            //public Dictionary<string, List<string>> _dicFileTypeName_Formats = new Dictionary<string, List<string>>();
            public Dictionary<FileType, string> _dicFileType_Name = new Dictionary<FileType, string>();
            #endregion
    
            #region 资源格式
    
            public List<string> _contentTypeName = new List<string> { "教材解读", "写作", "拓展资料", "课件配图", "课文朗读", "学案", "音视频", "教案", "课件", "试题", "其他" };
            public Dictionary<ContentType, string> _dicContentType_Name = new Dictionary<ContentType, string>();
            public List<string> _materialInterpretationFlags = new List<string> { "教材解读" };
            public List<string> _writingFlags = new List<string> { "写作" };
            public List<string> _expandDataFlags = new List<string> { "拓展资料", "专题资源"};
            public List<string> _coursewareIllustratedFlags = new List<string> {  };
            public List<string> _readTextFlags = new List<string> { "课文朗读" };
            public List<string> _learnCaseFlags = new List<string> { "学案" };
            public List<string> _audioVideoFlags = new List<string> {  };
            public List<string> _teachingPlanFlags = new List<string> { "教案", "教学设计", "教学案例", "说课", "教学反思", "教学案", "课程设计", "教学方案" };  //教案、教学设计、教学案例、说课、教学反思,教学案,课程设计,教学方案
            public List<string> _coursewareFlags = new List<string> {  };
            public List<string> _testQuestionsFlags = new List<string> { "试题", "习题", "练习" }; //试题、习题、练习
            public List<string> _otherFlags = new List<string> { };    //以上不包含的文件,资源格式均列入“其他”
    
            #endregion
    
            public JudgeContentType()
            {
                InitFileType_Name();
                InitFileTypeFormats();
                //InitFileTypeNameFormats();
                InitContentType_Name();
            }
    
            private void InitFileType_Name()
            {
                _dicFileType_Name.Clear();
                int i = 0;
                FileType type = FileType.Other;
                foreach (string typeName in _contentTypeName)
                {
                    type = (FileType)i++;
                    _dicFileType_Name.Add(type, typeName);
                }
            }
            /*
            private void InitFileTypeNameFormats()
            {
                _dicFileTypeName_Formats.Add("课件", _coursewareFormatType);
                _dicFileTypeName_Formats.Add("文档", _documentFormatType);
                _dicFileTypeName_Formats.Add("图片", _pictureFormatType);
                _dicFileTypeName_Formats.Add("音频", _audioFormatType);
                _dicFileTypeName_Formats.Add("视频", _videoFormatType);
                _dicFileTypeName_Formats.Add("动画", _cartoonFormatType);
                _dicFileTypeName_Formats.Add("其他", _otherFormatType);
            }
            */
            private void InitFileTypeFormats()
            {
                _dicFileType_Formats.Clear();
                _dicFileType_Formats.Add(FileType.Courseware, _coursewareFormatType);
                _dicFileType_Formats.Add(FileType.Document, _documentFormatType);
                _dicFileType_Formats.Add(FileType.Picture, _pictureFormatType);
                _dicFileType_Formats.Add(FileType.Audio, _audioFormatType);
                _dicFileType_Formats.Add(FileType.Video, _videoFormatType);
                _dicFileType_Formats.Add(FileType.Cartoon, _cartoonFormatType);
                _dicFileType_Formats.Add(FileType.Other, _otherFormatType);
            }
            private void InitContentType_Name()
            {
                _dicContentType_Name.Clear();
                int i = 0;
                ContentType contentType = ContentType.Other;
                foreach (string typeName in _contentTypeName)
                {
                    contentType = (ContentType) i++;
                    _dicContentType_Name.Add(contentType,typeName);
                }
            }
    
    
            #region 获取内容类型、名称
    
            public string GetContentTypeName(string fileName)
            {
                string contentName = string.Empty;
                ContentType contentType = GetContentType(fileName);
                contentName = _dicContentType_Name[contentType];
                return contentName;
            }
    
            public ContentType GetContentType(string fileName)
            {
                ContentType contentType = ContentType.Other;
                try
                {
                    if (IsMaterialInterpretationType(fileName))
                    {
                        contentType = ContentType.MaterialInterpretation;
                    }
                    else if (IsWritingType(fileName))
                    { 
                        contentType = ContentType.Writing;
                    }
                    else if (IsExpandDataType(fileName))
                    { 
                        contentType = ContentType.ExpandData;
                    }
                    else if (IsCoursewareIllustratedType(fileName))
                    { 
                        contentType = ContentType.CoursewareIllustrated;
                    }
                    else if (IsReadTextType(fileName))
                    { 
                        contentType = ContentType.ReadText;
                    }
                    else if (IsLearnCaseType(fileName))
                    { 
                        contentType = ContentType.LearnCase;
                    }
                    else if (IsAudioVideoType(fileName))
                    { 
                        contentType = ContentType.AudioVideo;
                    }
                    else if (IsTeachingPlanType(fileName))
                    { 
                        contentType = ContentType.TeachingPlan;
                    }
                    else if (IsCoursewareType(fileName))
                    { 
                        contentType = ContentType.Courseware;
                    }
                    else if (IsTestQuestionsType(fileName))
                    {
                        contentType = ContentType.TestQuestions;
                    }
                    else
                    {
                        contentType = ContentType.Other;
                    }
                }
                catch(Exception ex)
                {
                    contentType = ContentType.Other;
                    _logger.Error("获取教材解读内容类型出错:" + ex.Message);
                }
                return contentType;
            }
    
            public bool IsMaterialInterpretationType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (isFileNameContainsFlags(fileName, _materialInterpretationFlags) && _documentFormatType.Contains(ext))
                    {
                        isRight = true;
                    }
                }
                catch (Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取内容类型出错:" + ex.Message);
                }
                return isRight;
            }
            public bool IsWritingType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (isFileNameContainsFlags(fileName,_writingFlags) && _documentFormatType.Contains(ext))
                    {
                        isRight = true;
                    }
                }
                catch (Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取写作内容类型出错:" + ex.Message);
                }
                return isRight;
            }
            public bool IsExpandDataType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (isFileNameContainsFlags(fileName, _expandDataFlags) && _documentFormatType.Contains(ext))
                    {
                        isRight = true;
                    }
                }
                catch (Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取拓展资料内容类型出错:" + ex.Message);
                }
                return isRight;         
            }
            public bool IsCoursewareIllustratedType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (isFileNameContainsFlags(fileName, _coursewareIllustratedFlags) && _pictureFormatType.Contains(ext))
                    {
                        isRight = true;
                    }
                }
                catch (Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取课件配图内容类型出错:" + ex.Message);
                }
                return isRight;
            }
            public bool IsReadTextType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (isFileNameContainsFlags(fileName, _readTextFlags) && _audioFormatType.Contains(ext))
                    {
                        isRight = true;
                    }
                }
                catch (Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取课文朗读内容类型出错:" + ex.Message);
                }
                return isRight;
            }
            public bool IsLearnCaseType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (isFileNameContainsFlags(fileName, _learnCaseFlags) && _documentFormatType.Contains(ext))
                    {
                        isRight = true;
                    }
                }
                catch (Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取学案内容类型出错:" + ex.Message);
                }
                return isRight;
            }
            public bool IsAudioVideoType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (!IsReadTextType(fileName) && isFileNameContainsFlags(fileName, _audioVideoFlags) && (_audioFormatType.Contains(ext) || _videoFormatType.Contains(ext) || _cartoonFormatType.Contains(ext)))
                    {
                        isRight = true;
                    }
                }
                catch(Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取音视频内容类型出错:" + ex.Message);
                }
                return isRight;
            }
            public bool IsTeachingPlanType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (isFileNameContainsFlags(fileName, _teachingPlanFlags) && _documentFormatType.Contains(ext))
                    {
                        isRight = true;
                    }
                }
                catch(Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取教案内容类型出错:" + ex.Message);
                }
                return isRight;
            }
            public bool IsCoursewareType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (isFileNameContainsFlags(fileName, _coursewareFlags) && _coursewareFormatType.Contains(ext))
                    {
                        isRight = true;
                    }
                }
                catch(Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取课件内容类型出错:" + ex.Message);
                }
                return isRight;
            }
            public bool IsTestQuestionsType(string fileName)
            {
                bool isRight = false;
                try
                {
                    string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    if (isFileNameContainsFlags(fileName, _teachingPlanFlags) && _documentFormatType.Contains(ext))
                    {
                        isRight = true;
                    }
                }
                catch(Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取试题内容类型出错:" + ex.Message);
                }
                return isRight;
            }
            public bool IsOtherType(string fileName)
            {
                bool isRight = false;
                try
                {
                    //string ext = Path.GetExtension(fileName.Trim()).Replace(".",string.Empty);
                    //if (isFileNameContainsFlags(fileName, _otherFlags) && _otherFormatType.Contains(ext))
                    //{
                    //    isRight = true;
                    //}
                    //else 
                    if (!IsAudioVideoType(fileName) && !IsCoursewareIllustratedType(fileName) && !IsCoursewareType(fileName) && !IsExpandDataType(fileName) && IsLearnCaseType(fileName) && !IsMaterialInterpretationType(fileName) && !IsReadTextType(fileName) && !IsTeachingPlanType(fileName) && !IsTestQuestionsType(fileName) && !IsWritingType(fileName))
                    {
                        isRight = true;
                    }
                }
                catch (Exception ex)
                {
                    isRight = false;
                    _logger.Error("获取其他内容类型出错:" + ex.Message);
                }
                return isRight;
            }
    
            public bool isFileNameContainsFlags(string fileName,List<string> contentFlags)
            {
                bool isContain = false;
                if (contentFlags == null || contentFlags.Count == 0)
                {
                    isContain = true;
                }
                else
                {
                    foreach (string flag in contentFlags)
                    {
                        if (fileName.Contains(flag.Trim()))
                        {
                            isContain = true;
                            break;
                        }
                    }
                }
                return isContain;
            }
            #endregion
        }
    View Code
  • 相关阅读:
    itunes Connect 未能创建 App 图标
    android在不加载图片的前提下获得图片的宽高
    Python进阶(三十五)-Fiddler命令行和HTTP断点调试
    愿Linux红帽旋风吹得更加猛烈吧!
    图解在VC里使用graphics.h画图(相似TC)
    Python3 ctypes简单使用
    setOnPageChangeListener 过时了怎么办?
    怎样用Google APIs和Google的应用系统进行集成(2)----Google APIs的全部的RESTFul服务一览
    模板维护-模板解析
    android手机安全性測试手段
  • 原文地址:https://www.cnblogs.com/shenchao/p/5667065.html
Copyright © 2011-2022 走看看