Преобразовать модель данных Entity в объект Data Transfer - PullRequest
0 голосов
/ 19 марта 2020

У меня есть эти два класса

enum CustomerType {
 CitizenBank = 0,
  Wellsfargo = 1
}




public abstarct class CustomerDto {
 int customerId {
  get;
  set;
 }
 string customerName {
  get;
  set;
 }
 string CustometAddress {
  get;
  set;
 }
 int CustomerTypeId {
  get;
  set;
 }
}
public CitizenBank: CustomerDto {}


public Wellsfargo: CustomerDto {}


Public Class CustomerEntity {

int customerId {
  get;
  set;
 }
 string customerName {
  get;
  set;
 }
 string CustometAddress {
  get;
  set;
 }
 int CustomerTypeId {
  get;
  set;
 }
}

Я написал класс для преобразования из сущности в DTO

public class EntityModelToModel {
 ///Method to convert 
 public CustomerDto ToDto(CustomerEntity customerEntity) {
  /// returns type customerDto based on customertypeid
  switch (CustomerType) {
   case Wellsfargo
   return New Wellsfargo()  
   case citizen
   return new citizen()  //calls method that converts from customer Entity to citizen
  }

 }

У меня есть метод для проверки соответствия моих типов

 public bool CanExecute(CustomerEntity customerEntity) {
   foreach(var customerType in Enum.GetValues(typeof(Enums.customerType) if (customerEntity.CustomerType == customerType)
      return true
     else
      false
    }
   }

Теперь в моем коде вызова у меня есть массив CustomerEntity[], в котором есть два элемента customerid для колодцев go и граждан. Я хочу сделать это

   var res = CustomerEntity[].where(x => EntityModelToModel.CanExecute(x).Select(x => EntityModelToModel.ToDto(x)) 

Моя проблема:

Если в моем массиве есть два элемента, он проверяет только первые элементы и возвращает.

Я хочу, чтобы он проверил две вещи и вернул их.

1 Ответ

1 голос
/ 23 марта 2020

Я думаю, что вы должны изменить свой CanExecute метод следующим образом:


public static class EntityModelToModel
{

    // ...

    public static bool CanExecute(CustomerEntity customerEntity)
    {
        foreach (var customerType in Enum.GetValues(typeof(CustomerType)))
        {
            if (customerEntity.CustomerTypeId == (int)customerType)
            {
                return true;
            }
        }

        return false;
    }
}

Поскольку ваш метод прерывает поток выполнения после первой проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...