2

オブジェクトが文字列からのものであるオブジェクトのリストを作成する方法が必要です

たとえば、以下をオブジェクトのリストに変換したい

Dim categoryList as IList(Of "classname") = new List(Of "class name")

最終結果

Dim categoryList As IList(Of BO.Store.Category) = New List(Of BO.Store.Category)

私を正しい方向に向けてくれたxxbbccに感謝します。以下のソリューションを思いついたので、csv ファイルをアップロードして x オブジェクトのリストに解析できます。

これは、dropzone を介してテーブル名、オブジェクト クラス名、およびマッピング クラス名と共にファイルをアップロードすることで機能します。これにより、csvhelper を使用してファイルの内容を解析し、一時テーブルにインポートできるようになりました。

<AcceptVerbs(HttpVerbs.Post), BaseViewModelFilter>
    Function Upload(model As ImportUploadViewModel) As JsonResult

        Dim balUpload As BAL.Upload = New BAL.Upload()
        Dim balImport As BAL.Import = New BAL.Import()
        Dim folder As String = String.Format("{0}tmp\import\category", Server.MapPath("\"))

        Dim result = balUpload.SaveFiles(Request, folder, UserProfile.ID)

        Dim importClassType = Type.[GetType](String.Format("Roxybox.BO.{0}", model.EntityClass))
        Dim importClassMapType = Type.[GetType](String.Format("Roxybox.BO.{0}", model.EntityMap))

        Dim records As IList

        ' Import all successful files
        For Each successFile As String In result("success")

            ' Parse csv file
            Using sr = New StreamReader(String.Format("{0}\{1}", folder, successFile))
                Dim reader = New CsvReader(sr)

                reader.Configuration.RegisterClassMap(importClassMapType)
                records = reader.GetRecords(importClassType).ToList()

            End Using

            For Each category In records
                Dim data As BO.Import = New BO.Import()
                With data
                    .EntityModel = model.EntityModel
                    .Data = JsonConvert.SerializeObject(category)
                    .UserProfileID = UserProfile.ID
                    .Filename = successFile
                    .Status = "pending"
                End With

                balImport.Save(data, UserProfile.ID)
            Next
        Next

        Return Json(result, JsonRequestBehavior.AllowGet)

    End Function
4

1 に答える 1