天天看点

重构代码2

还有另外一段代码需要重构,原代码:

public string file;//显示生成完成的swf文件

        protected void Button1_Click(object sender, EventArgs e)

        {

            string UploadFilePath = Server.MapPath(this.HiddenField1.Value);//保存上传的PDF或者其他可以打印的文件(DOC,DOCX等) /UploadFile/系统分析师通过的经验.doc

            string NewUploadFilePath = string.Empty;//转换WPS文件路径

            string ext = Path.GetExtension(UploadFilePath);

            if ((".wps,.et,.pps,.dps,.pps").Contains(ext))

            {

                switch (ext)

                {

                    case ".wps"://wps文件

                        NewUploadFilePath = Path.ChangeExtension(UploadFilePath, ".doc");

                        File.Move(UploadFilePath, NewUploadFilePath);

                        break;

                    case ".et"://wps的表格文件

                        NewUploadFilePath = Path.ChangeExtension(UploadFilePath, ".xls");

                    case ".pps":

                    case ".dps":

                        NewUploadFilePath = Path.ChangeExtension(UploadFilePath, ".ppt");

                }

                try

                    if (UploadFilePath != null)

                    {

                        string SwfFile = strType(UploadFilePath);//得到文件类型

                        if (SwfFile != null)

                        {

                            string file = NewUploadFilePath.Replace(SwfFile, ".swf");

                            if (!File.Exists(file))

                            {

                                bool isconvert = ConvertPdfToSwf(NewUploadFilePath, file.Replace("UploadFile", "SwfFolder"));//执行转换

                                if (isconvert == true)

                                {

                                    file = Path.GetFileName(file);

                                    string FlashView = "http://199.99.99.111:8011/FlashPrinter/Interface/FlashView.aspx";

                                    Response.Write(" <script> window.location.href= '" + FlashView + "?dFile=" + HttpUtility.UrlEncode(file) + "'; </script> ");

                                }

                            }

                        }

                    }

                catch (Exception)

                    throw;

            }

            else

                        string SwfFile = strType(UploadFilePath);//转换后的文件后缀名

                            string file = UploadFilePath.Replace(SwfFile, ".swf");

                                bool isconvert = ConvertPdfToSwf(UploadFilePath, file.Replace("UploadFile", "SwfFolder"));//执行转换

        }

Insus.NET重构之后,主方法变为:

 public string file;//显示生成完成的swf文件

    protected void Button1_Click(object sender, EventArgs e)

    {

        string UploadFilePath = Server.MapPath(this.HiddenField1.Value);//保存上传的PDF或者其他可以打印的文件(DOC,DOCX等) /UploadFile/系统分析师通过的经验.doc

        string ext = Path.GetExtension(UploadFilePath);

        if (ExtensionType().ContainsKey(ext))

             MoveFile(ext, UploadFilePath);

        else

            ConvertFile(UploadFilePath);

    }

扩展类型:

重构代码2
重构代码2

View Code

 private Dictionary<string, string> ExtensionType()

    { 

         Dictionary<string, string> ex_type = new Dictionary<string, string>();

        ex_type.Add(".wps", ".doc");

        ex_type.Add(".et", ".xls");

        ex_type.Add(".pps", ".ppt");

        ex_type.Add(".dps", ".ppt");

        return ex_type;

MoveFile()方法:

重构代码2
重构代码2

 private void MoveFile(string ext, string uploadFilePath)

        string NewUploadFilePath = string.Empty;//转换WPS文件路径

            NewUploadFilePath = Path.ChangeExtension(uploadFilePath, ExtensionType()[ext].ToString());

            File.Move(uploadFilePath, NewUploadFilePath);

        ConvertFile(NewUploadFilePath);

ConvertFile()方法:

重构代码2
重构代码2

 private void ConvertFile(string uploadFilepath)

        if (uploadFilepath == null) return;

        if (string.IsNullOrEmpty(strType(uploadFilepath))) return;

        string SwfFile = strType(uploadFilepath);

        string file = uploadFilepath.Replace(SwfFile, ".swf");

        if (!File.Exists(file)) return;

        try

            bool isconvert = ConvertPdfToSwf(uploadFilepath, file.Replace("UploadFile", "SwfFolder"));

            if (isconvert)

                file = Path.GetFileName(file);

                string FlashView = "http://199.99.99.111:8011/FlashPrinter/Interface/FlashView.aspx";

                Response.Write(" <script> window.location.href= '" + FlashView + "?dFile=" + HttpUtility.UrlEncode(file) + "'; </script> ");

        catch (Exception)

            throw;