Общие объекты для загрузки данных из плоского файла - PullRequest
2 голосов
/ 04 ноября 2011

По сути, у меня есть два разных плоских файла Credit & Account с разными структурами записей.Я создал отдельные сущности для их записей верхнего и нижнего колонтитула, а также для всего файла.

Учетная запись файла:

namespace Data.Entities
{
    [FlatFileContainerRecord(RecordLength = 100)]
    public class AccountFlatFile
    {
        public AccountHeader Header { get; set; }
        public List<Data.Entities.AccountDetail> Details { get; set; }
        public AccountFooter Control { get; set; }
        public AccountFlatFile()
    {
        Details = new List<AccountDetail>();
 }

Кредит файла:

namespace Data.Entities
{
    [FlatFileContainerRecord(RecordLength = 90)]
    public class CreditFlatFile
    {
        public CreditHeader Header { get; set; }
        public List<Data.Entities.CreditDetail> Details { get; set; }
        public CreditFooter Control { get; set; }
        public CreditFlatFile()
    {
        Details = new List<CreditDetail>();
    }
}

Iсоздал общее задание для выполнения файлов.Вот где я застрял.

 foreach (string file in incomingFile)
 {
      GenericFile<T> genericFile = new GenericFile<T>();                
      using (Stream stream = File.OpenRead(file))
       {
            **genericFile = serializer.Deserialize<GenericFile<T>>(stream);**
       }

       if (genericFile.Details.Count > 0)
       {
               System.Threading.Tasks.Parallel.For(0, genericFile.Details.Count, parallelOptions, index =>
                {

                     Repo.Upsert(genericFile.Details[index]);
                 });
         }
         else
         {
                        //log error
          }

 }

Я не уверен, как именно должен выглядеть класс GenericFile и как он соотносится с реальными классами сущностей.

Надеюсь, у меня возник вопрос с вопросом.Любое предложение приветствуется

1 Ответ

0 голосов
/ 05 ноября 2011

Наконец, это общая структура, которую я получил.

Я удалил сущности плоского файла «Учетная запись» и «Кредит», и теперь у меня есть только объекты подробной записи для этих двух.

namespace Data.Entities
{
   [FlatFileContainerRecord(RecordLength = 157)]
    public class FlatFile<FlatFileHeader, DT, FlatFileFooter> 
    {
       public FlatFileHeader Header { get; set; }
       public List<DT> Details { get; set; }
       public FlatFileFooter Control { get; set; }
       public FlatFile()
    {
        Details = new List<DT>();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...