Exemplo n.º 1
0
        /// <summary>
        ///     バイナリファイルからテキストファイルに変換する。
        /// </summary>
        /// <param name="bgw"></param>
        /// <param name="e"></param>
        private void ConvertBinaryToText(BackgroundWorker bgw, DoWorkEventArgs e, ConvertInfo convertInfo)
        {
            StatusInfo statusInfo = new StatusInfo()
            {
                Status = "バイナリファイルをテキストファイルに変換しています…", MaxTask = 0, NowTask = 0
            };

            using (FileStream fs = new FileStream(convertInfo.LoadFileName, FileMode.Open))
            {
                using (StreamWriter sw = new StreamWriter(convertInfo.SaveFileName))
                {
                    string strExtension = new FileInfo(convertInfo.LoadFileName).Extension;
                    sw.Write(strExtension);
                    sw.Write("/");
                    statusInfo.MaxTask = fs.Length;
                    while (this.SeekBinaryToText(fs, sw))
                    {
                        statusInfo.NowTask++;
                        if (statusInfo.NowTask >= 1000)
                        {
                            if (statusInfo.NowTask % (statusInfo.MaxTask / 100) == 0)
                            {
                                bgw.ReportProgress(0, statusInfo);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
 public void SetConvertInfo(Type from, Type to, ConvertInfo.LambdaInfo expr)
 {
     if (_convertInfo == null)
     {
         _convertInfo = new ConvertInfo();
     }
     _convertInfo.Set(from, to, expr);
 }
Exemplo n.º 3
0
 private static Func <float, byte> Value2Source(ConvertInfo convertInfo, int min, int max)
 {
     return(value => (byte)Math.Round(Math.Max(min, Math.Min(max, convertInfo.Inverted == 0
                                                                       ? (value + convertInfo.Offset2) *
                                                             convertInfo.Div_step / convertInfo.Step +
                                                             convertInfo.Offset1
                                                                       : convertInfo.Inverted /
                                                             (value * convertInfo.Div_step))),
                                      MidpointRounding.AwayFromZero));
 }
Exemplo n.º 4
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="list"></param>
        /// <returns></returns>
        public DataSet ConvertToDataSet <T>(IList list)
        {
            DataSet dataSet = new DataSet();

            CreateDataSet(dataSet, typeof(T), null, null);
            ConvertInfo cInfo = new ConvertInfo();

            FillDataSet(typeof(T), list, dataSet, cInfo);
            return(dataSet);
        }
Exemplo n.º 5
0
        /// <summary>
        ///     テキストファイルからバイナリファイルに変換する。
        /// </summary>
        /// <param name="bgw"></param>
        /// <param name="e"></param>
        private void ConvertTextToBinary(BackgroundWorker bgw, DoWorkEventArgs e, ConvertInfo convertInfo)
        {
            StatusInfo statusInfo = new StatusInfo()
            {
                Status = "テキストファイルをバイナリファイルに変換しています…", MaxTask = 0, NowTask = 0
            };

            using (FileStream fsRead = new FileStream(convertInfo.LoadFileName, FileMode.Open))
            {
                using (StreamReader sr = new StreamReader(fsRead))
                {
                    //拡張子を取り出す。
                    string strExtension = "";
                    char   c;
                    while (true)
                    {
                        c = (char)fsRead.ReadByte();
                        if (c == '/')
                        {
                            break;
                        }
                        strExtension += c.ToString();
                    }
                    string strSaveFileName = convertInfo.SaveFileName;
                    strSaveFileName = Path.ChangeExtension(strSaveFileName, strExtension);

                    //バイナリデータを読み込む。
                    using (FileStream fsWrite = new FileStream(strSaveFileName, FileMode.Create))
                    {
                        //1byteのバイナリは2byteの文字列になるため、2で割る
                        statusInfo.MaxTask = fsRead.Length / 2;
                        while (this.SeekTextToBinary(sr, fsWrite))
                        {
                            statusInfo.NowTask++;
                            if (statusInfo.NowTask >= 1000)
                            {
                                if (statusInfo.NowTask % (statusInfo.MaxTask / 100) == 0)
                                {
                                    bgw.ReportProgress(0, statusInfo);
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
        public static Dictionary <String, Object> ConvertDog(long userId, Dog dog, ConvertInfo info)
        {
            Dictionary <String, Object> dict = new Dictionary <string, object>();

            if (dog == null)
            {
                return(dict);
            }
            dict.Add("id", dog.idDog);
            dict.Add("name", dog.name);
            dict.Add("gender", dog.gender);
            dict.Add("kind", dog.kind);
            dict.Add("figure", dog.figure);
            dict.Add("sender", dog.sender);
            dict.Add("sendTime", dog.sendTime.ToShortDateString());
            if (userId != 0)
            {
                bool loved = false;
                foreach (Follow f in dog.Follow)
                {
                    if (f.lover_ == userId)
                    {
                        loved = true;
                        break;
                    }
                }
                dict.Add("loved", loved);
            }
            if (info == ConvertInfo.SenderOnly || info == ConvertInfo.SenderAdopter)
            {
                dict.Add("senderName", dog.DogLover1.name);
                dict.Add("senderFigure", dog.DogLover1.figure);
            }
            if (info == ConvertInfo.AdopterOnly || info == ConvertInfo.SenderAdopter)
            {
                dict.Add("adopterName", dog.DogLover.name);
                dict.Add("adopterFigure", dog.DogLover.figure);
            }
            return(dict);
        }
Exemplo n.º 7
0
        /// <summary>
        ///     非同期操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            ConvertInfo      convertInfo = e.Argument as ConvertInfo;
            BackgroundWorker bgw         = sender as BackgroundWorker;

            try
            {
                switch (convertInfo.ConvertType)
                {
                case ConvertType.ToText:
                    this.ConvertBinaryToText(bgw, e, convertInfo);
                    break;

                case ConvertType.ToBinary:
                    this.ConvertTextToBinary(bgw, e, convertInfo);
                    break;
                }
                e.Result = null;
            }
            catch (Exception ex)
            {
                e.Result = ex;
            }
        }
Exemplo n.º 8
0
 public void SetConvertInfo(Type from, Type to, ConvertInfo.LambdaInfo expr)
 {
     if (_convertInfo == null)
         _convertInfo = new ConvertInfo();
     _convertInfo.Set(from, to, expr);
 }
Exemplo n.º 9
0
 /// <summary>
 /// FillDataSet Overload method
 /// </summary>
 /// <param name="type"></param>
 /// <param name="item"></param>
 /// <param name="dataSet"></param>
 /// <param name="parentID"></param>
 /// <param name="pTableName"></param>
 /// <param name="pParentTableName"></param>
 private void FillDataSet(Type type, object item, DataSet dataSet, ConvertInfo pInfo)
 {
     PropertyInfo[] propertyInfos = type.GetProperties();
     if (item != null)
     {
         if (string.IsNullOrEmpty(pInfo.TableName))
         {
             pInfo.TableName = type.Name;
         }
         DataTable dataTable = dataSet.Tables[pInfo.TableName];
         int       id        = dataTable.Rows.Count + 1;
         DataRow   row       = dataTable.NewRow();
         // Set new id and related parent id
         row[pInfo.TableName + "_ID"] = id;
         if (pInfo.ParentID != -1)
         {
             row[pInfo.ParentTableName + "_ID"] = pInfo.ParentID;
         }
         // Load all the data from the properties of the type
         // and save them into the datatable
         foreach (PropertyInfo info in propertyInfos)
         {
             if (info.PropertyType.IsGenericType &&
                 (info.PropertyType.GetGenericTypeDefinition() == typeof(List <>) ||
                  info.PropertyType.GetGenericTypeDefinition() == typeof(IList <>)))
             {
                 if (item != null)
                 {
                     IList subList = (IList)info.GetValue(item, null);
                     if (subList != null && subList.Count > 0)
                     {
                         ConvertInfo cfInfo = new ConvertInfo();
                         cfInfo.ParentID        = id;
                         cfInfo.ParentTableName = pInfo.TableName;
                         cfInfo.TableName       = info.Name;
                         FillDataSet(subList[0].GetType(), subList, dataSet, cfInfo);
                     }
                 }
             }
             else if (info.PropertyType.BaseType == typeof(BaseEntity) ||
                      info.PropertyType == typeof(EntityRange))
             {
                 if (item != null)
                 {
                     ConvertInfo cfInfo = new ConvertInfo();
                     cfInfo.ParentID        = id;
                     cfInfo.ParentTableName = pInfo.TableName;
                     cfInfo.TableName       = info.Name;
                     FillDataSet(info.PropertyType, info.GetValue(item, null), dataSet, cfInfo);
                 }
             }
             else if (info.PropertyType.IsEnum)
             {
                 if (item != null)
                 {
                     row[info.Name] = info.GetValue(item, null).ToString();
                 }
             }
             else
             {
                 if (item != null)
                 {
                     if (!string.IsNullOrEmpty(Convert.ToString(info.GetValue(item, null))))
                     {
                         row[info.Name] = info.GetValue(item, null);
                     }
                     else
                     {
                         row[info.Name] = DBNull.Value;
                     }
                 }
                 else
                 {
                     row[info.Name] = DBNull.Value;
                 }
             }
         }
         dataTable.Rows.Add(row);
         id++;
     }
 }
Exemplo n.º 10
0
        public async Task <Tuple <string, TableInfo> > GetNewTableInfoAsync(string oldTableName, TableInfo oldTableInfo, ConvertInfo converter)
        {
            if (converter == null)
            {
                converter = new ConvertInfo();
            }

            if (converter.IsAbandon)
            {
                await WriteUtils.PrintRowAsync(oldTableName, "Abandon", "--");

                return(null);
            }

            if (string.IsNullOrEmpty(converter.NewTableName))
            {
                converter.NewTableName = oldTableName;
            }
            if (converter.NewColumns == null || converter.NewColumns.Count == 0)
            {
                converter.NewColumns = oldTableInfo.Columns;
            }

            var newTableInfo = new TableInfo
            {
                Columns    = converter.NewColumns,
                TotalCount = oldTableInfo.TotalCount,
                RowFiles   = oldTableInfo.RowFiles
            };

            await WriteUtils.PrintRowAsync(oldTableName, converter.NewTableName, oldTableInfo.TotalCount.ToString("#,0"));

            if (oldTableInfo.RowFiles.Count > 0)
            {
                var i = 0;
                using (var progress = new ProgressBar())
                {
                    foreach (var fileName in oldTableInfo.RowFiles)
                    {
                        progress.Report((double)i++ / oldTableInfo.RowFiles.Count);

                        var oldFilePath = OldTreeInfo.GetTableContentFilePath(oldTableName, fileName);
                        var newFilePath = NewTreeInfo.GetTableContentFilePath(converter.NewTableName, fileName);

                        if (converter.ConvertKeyDict != null)
                        {
                            var oldRows =
                                TranslateUtils.JsonDeserialize <List <JObject> >(await FileUtils.ReadTextAsync(oldFilePath, Encoding.UTF8));

                            var newRows = UpdateUtils.UpdateRows(oldRows, converter.ConvertKeyDict, converter.ConvertValueDict, converter.Process);

                            await FileUtils.WriteTextAsync(newFilePath, TranslateUtils.JsonSerialize(newRows));
                        }
                        else
                        {
                            FileUtils.CopyFile(oldFilePath, newFilePath);
                        }
                    }
                }
            }

            return(new Tuple <string, TableInfo>(converter.NewTableName, newTableInfo));
        }
Exemplo n.º 11
0
        public async Task <Tuple <string, TableInfo> > UpdateTableInfoAsync(string oldTableName, TableInfo oldTableInfo)
        {
            ConvertInfo converter = null;

            if (StringUtils.EqualsIgnoreCase(TableAdministrator.OldTableName, oldTableName))
            {
                var table = new TableAdministrator(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableAdministratorsInRoles.OldTableName, oldTableName))
            {
                var table = new TableAdministratorsInRoles(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableChannel.OldTableNames, oldTableName))
            {
                var table = new TableChannel(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableChannelGroup.OldTableNames, oldTableName))
            {
                var table = new TableChannelGroup(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableConfig.OldTableName, oldTableName))
            {
                var table = new TableConfig(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableContentCheck.OldTableName, oldTableName))
            {
                var table = new TableContentCheck(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableContentGroup.OldTableNames, oldTableName))
            {
                var table = new TableContentGroup(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableDbCache.OldTableName, oldTableName))
            {
                var table = new TableDbCache(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableErrorLog.OldTableName, oldTableName))
            {
                converter = TableErrorLog.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableLog.OldTableName, oldTableName))
            {
                var table = new TableLog(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TablePermissionsInRoles.OldTableName, oldTableName))
            {
                var table = new TablePermissionsInRoles(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableRelatedField.OldTableNames, oldTableName))
            {
                var table = new TableRelatedField(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableRelatedFieldItem.OldTableNames, oldTableName))
            {
                var table = new TableRelatedFieldItem(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableRole.OldTableName, oldTableName))
            {
                var table = new TableRole(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableSite.OldTableNames, oldTableName))
            {
                var table = new TableSite(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableSiteLog.OldTableNames, oldTableName))
            {
                var table = new TableSiteLog(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableSitePermissions.OldTableNames, oldTableName))
            {
                var table = new TableSitePermissions(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableTableStyle.OldTableName, oldTableName))
            {
                var table = new TableTableStyle(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableContentTag.OldTableName, oldTableName))
            {
                var table = new TableContentTag(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableTemplate.OldTableNames, oldTableName))
            {
                var table = new TableTemplate(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableTemplateLog.OldTableNames, oldTableName))
            {
                var table = new TableTemplateLog(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableUser.OldTableName, oldTableName))
            {
                var table = new TableUser(_databaseManager);
                converter = table.Converter;
            }

            return(await GetNewTableInfoAsync(oldTableName, oldTableInfo, converter));
        }
Exemplo n.º 12
0
        public async Task UpdateSplitContentsTableInfoAsync(Dictionary <int, TableInfo> splitSiteTableDict, List <int> siteIdList, string oldTableName, TableInfo oldTableInfo, ConvertInfo converter)
        {
            if (converter == null)
            {
                converter = new ConvertInfo();
            }

            if (converter.IsAbandon)
            {
                await WriteUtils.PrintRowAsync(oldTableName, "Abandon", "--");

                return;
            }

            if (converter.NewColumns == null || converter.NewColumns.Count == 0)
            {
                converter.NewColumns = oldTableInfo.Columns;
            }

            await WriteUtils.PrintRowAsync(oldTableName, "#split-content#", oldTableInfo.TotalCount.ToString("#,0"));

            if (oldTableInfo.RowFiles.Count > 0)
            {
                var i = 0;
                using var progress = new ProgressBar();
                foreach (var fileName in oldTableInfo.RowFiles)
                {
                    progress.Report((double)i++ / oldTableInfo.RowFiles.Count);

                    var newRows = new List <Dictionary <string, object> >();

                    var oldFilePath = OldTreeInfo.GetTableContentFilePath(oldTableName, fileName);

                    var oldRows =
                        TranslateUtils.JsonDeserialize <List <JObject> >(await FileUtils.ReadTextAsync(oldFilePath, Encoding.UTF8));

                    newRows.AddRange(UpdateUtils.UpdateRows(oldRows, converter.ConvertKeyDict, converter.ConvertValueDict, converter.Process));

                    var siteIdWithRows = new Dictionary <int, List <Dictionary <string, object> > >();
                    foreach (var siteId in siteIdList)
                    {
                        siteIdWithRows.Add(siteId, new List <Dictionary <string, object> >());
                    }

                    foreach (var newRow in newRows)
                    {
                        if (newRow.ContainsKey(nameof(Content.SiteId)))
                        {
                            var siteId = Convert.ToInt32(newRow[nameof(Content.SiteId)]);
                            if (siteIdList.Contains(siteId))
                            {
                                var rows = siteIdWithRows[siteId];
                                rows.Add(newRow);
                            }
                        }
                    }

                    foreach (var siteId in siteIdList)
                    {
                        var siteRows      = siteIdWithRows[siteId];
                        var siteTableName = UpdateUtils.GetSplitContentTableName(siteId);

                        var siteTableInfo = splitSiteTableDict[siteId];
                        siteTableInfo.TotalCount += siteRows.Count;

                        foreach (var tableColumn in converter.NewColumns)
                        {
                            if (!siteTableInfo.Columns.Any(t => StringUtils.EqualsIgnoreCase(t.AttributeName, tableColumn.AttributeName)))
                            {
                                siteTableInfo.Columns.Add(tableColumn);
                            }
                        }

                        if (siteRows.Count > 0)
                        {
                            var siteTableFileName = $"{siteTableInfo.RowFiles.Count + 1}.json";
                            siteTableInfo.RowFiles.Add(siteTableFileName);
                            var filePath = NewTreeInfo.GetTableContentFilePath(siteTableName, siteTableFileName);
                            await FileUtils.WriteTextAsync(filePath, TranslateUtils.JsonSerialize(siteRows));
                        }
                    }
                }
            }
        }
Exemplo n.º 13
0
        public static List <Dictionary <String, Object> > ConvertDogs(long userId, List <Dog> dogs, ConvertInfo info)
        {
            List <Dictionary <String, Object> > result = new List <Dictionary <string, object> >();
            Dictionary <String, Object>         dict   = null;

            foreach (Dog dog in dogs)
            {
                dict = ConvertDog(userId, dog, info);
                result.Add(dict);
            }
            return(result);
        }
Exemplo n.º 14
0
        public HttpResponseMessage Index([FromUri(Name = "id")] string packName, [FromUri(Name = "path")] string name, string format)
        {
            var file = db.Files.FirstOrDefault(r => r.Pack.Name == packName && r.Name == name);

            if (file == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            var download = string.Equals(format, "download", StringComparison.OrdinalIgnoreCase);

            // TODO: support multiple archives
            var packArchiveFileName = Path.Combine(Global.SixteenColorsArchiveLocation, file.Pack.NativeFileName);

            var convertInfo = new ConvertInfo
            {
                Pack        = file.Pack,
                FileName    = file.NativeFileName,
                InputFormat = file.Format,
                InputType   = file.Type,
                OutFileName = file.NativeFileName + "." + format,
                Properties  = Request.RequestUri.ParseQueryString()
            };
            // check if we can convert this file
            var converter = ConverterFactory.GetConverter(convertInfo);

            HttpContent content;

            if (download || converter == null)
            {
                content = new PushStreamContent((s, hc, t) => GetRawStream(s, packArchiveFileName, file));
            }
            else
            {
                // prepare for conversion, parse request options
                converter.Prepare(convertInfo);

                content = new PushStreamContent((s, hc, t) => GetStream(s, packArchiveFileName, file, converter, convertInfo));
            }

            var mediaType = GetMediaType(format);

            content.Headers.ContentType = new MediaTypeHeaderValue(mediaType);
            var disposition = mediaType == "application/octet-stream" ? "attachment" : "inline";

            content.Headers.ContentDisposition = new ContentDispositionHeaderValue(disposition)
            {
                FileName = Path.GetFileName(convertInfo.OutFileName)
            };

            var response = new HttpResponseMessage {
                Content = content
            };

            response.Headers.CacheControl = new CacheControlHeaderValue
            {
                MaxAge = new TimeSpan(0, 10, 0),
                Public = true
            };
            return(response);
        }
Exemplo n.º 15
0
 static async Task GetStream(Stream outStream, string packArchiveFileName, Models.File file, Converter converter, ConvertInfo convertInfo)
 {
     using (outStream)
     {
         convertInfo.ExtractFile = async destFile =>
         {
             var extractor = ExtractorFactory.GetFileExtractor(packArchiveFileName);
             await extractor.ExtractFile(packArchiveFileName, file.FileName, destFile);
         };
         using (var stream = await converter.Convert(convertInfo))
         {
             stream.CopyTo(outStream);
         }
     }
 }
Exemplo n.º 16
0
        public async Task <Tuple <string, TableInfo> > UpdateTableInfoAsync(string oldTableName, TableInfo oldTableInfo, List <string> tableNameListForGovPublic, List <string> tableNameListForGovInteract, List <string> tableNameListForJob)
        {
            ConvertInfo converter = null;

            if (StringUtils.EqualsIgnoreCase(TableAdministrator.OldTableName, oldTableName))
            {
                var table = new TableAdministrator(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableAdministratorsInRoles.OldTableName, oldTableName))
            {
                var table = new TableAdministratorsInRoles(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableChannel.OldTableNames, oldTableName))
            {
                var table = new TableChannel(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableChannelGroup.OldTableNames, oldTableName))
            {
                var table = new TableChannelGroup(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableConfig.OldTableName, oldTableName))
            {
                var table = new TableConfig(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableContentCheck.OldTableName, oldTableName))
            {
                var table = new TableContentCheck(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableContentGroup.OldTableNames, oldTableName))
            {
                var table = new TableContentGroup(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableDbCache.OldTableName, oldTableName))
            {
                var table = new TableDbCache(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableErrorLog.OldTableName, oldTableName))
            {
                converter = TableErrorLog.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableLog.OldTableName, oldTableName))
            {
                var table = new TableLog(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TablePermissionsInRoles.OldTableName, oldTableName))
            {
                var table = new TablePermissionsInRoles(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableRelatedField.OldTableNames, oldTableName))
            {
                var table = new TableRelatedField(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableRelatedFieldItem.OldTableNames, oldTableName))
            {
                var table = new TableRelatedFieldItem(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableRole.OldTableName, oldTableName))
            {
                var table = new TableRole(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableSite.OldTableNames, oldTableName))
            {
                var table = new TableSite(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableSiteLog.OldTableNames, oldTableName))
            {
                var table = new TableSiteLog(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableSitePermissions.OldTableNames, oldTableName))
            {
                var table = new TableSitePermissions(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableTableStyle.OldTableName, oldTableName))
            {
                var table = new TableTableStyle(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableContentTag.OldTableName, oldTableName))
            {
                var table = new TableContentTag(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableTemplate.OldTableNames, oldTableName))
            {
                var table = new TableTemplate(_databaseManager);
                converter = table.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(TableTemplateLog.OldTableNames, oldTableName))
            {
                var table = new TableTemplateLog(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableUser.OldTableName, oldTableName))
            {
                var table = new TableUser(_databaseManager);
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovInteractChannel.OldTableName, oldTableName))
            {
                var table = new TableGovInteractChannel();
                converter = table.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovInteractLog.OldTableName, oldTableName))
            {
                converter = TableGovInteractLog.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovInteractPermissions.OldTableName, oldTableName))
            {
                converter = TableGovInteractPermissions.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovInteractRemark.OldTableName, oldTableName))
            {
                converter = TableGovInteractRemark.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovInteractReply.OldTableName, oldTableName))
            {
                converter = TableGovInteractReply.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovInteractType.OldTableName, oldTableName))
            {
                converter = TableGovInteractType.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovPublicCategory.OldTableName, oldTableName))
            {
                converter = TableGovPublicCategory.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovPublicCategoryClass.OldTableName, oldTableName))
            {
                converter = TableGovPublicCategoryClass.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovPublicIdentifierRule.OldTableName, oldTableName))
            {
                converter = TableGovPublicIdentifierRule.Converter;
            }
            else if (StringUtils.EqualsIgnoreCase(TableGovPublicIdentifierSeq.OldTableName, oldTableName))
            {
                converter = TableGovPublicIdentifierSeq.Converter;
            }
            else if (ListUtils.ContainsIgnoreCase(tableNameListForGovPublic, oldTableName))
            {
                var table = new TableGovPublicContent(_settingsManager);
                converter = table.GetConverter(oldTableInfo.Columns);
            }
            else if (ListUtils.ContainsIgnoreCase(tableNameListForGovInteract, oldTableName))
            {
                var table = new TableGovInteractContent(_settingsManager);
                converter = table.GetConverter(oldTableInfo.Columns);
            }
            else if (ListUtils.ContainsIgnoreCase(tableNameListForJob, oldTableName))
            {
                var table = new TableJobsContent(_settingsManager);
                converter = table.GetConverter(oldTableInfo.Columns);
            }

            return(await GetNewTableInfoAsync(oldTableName, oldTableInfo, converter));
        }