Один метод много моделей
От: snaphold  
Дата: 19.08.22 06:45
Оценка:
Есть метод на бэке GetClient

На фронте есть список клиентов в таблице и юзер может выбрать любого клиента.
Клиенты делятся на типы Basic, Premium, VIP

Premium, VIP это Basic + доп свои поля.

Вопрос: как одним методом на бэке вернуть PremiumClient, VipClient ...?

Task<?> GetClient(id) ?
Re: Один метод много моделей
От: Нomunculus Россия  
Дата: 19.08.22 06:48
Оценка: +1 -1
Здравствуйте, snaphold, Вы писали:

Это ж COM-овский IUnknown с его GetQueryInterface()
Re: Один метод много моделей
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 19.08.22 09:22
Оценка:
Здравствуйте, snaphold, Вы писали:

S>Task<?> GetClient(id) ?

Контекст вопроса не понятен.
Sic luceat lux!
Re: Один метод много моделей
От: Sharov Россия  
Дата: 19.08.22 09:26
Оценка:
Здравствуйте, snaphold, Вы писали:

S>Premium, VIP это Basic + доп свои поля.

S>Вопрос: как одним методом на бэке вернуть PremiumClient, VipClient ...?
S>Task<?> GetClient(id) ?

Если premium и VIP унаследованы от basic, то возвращать basic, а на фронте в зависимости от доп. полей как-то их разделять.
Кодом людям нужно помогать!
Re: Один метод много моделей
От: Буравчик Россия  
Дата: 19.08.22 10:56
Оценка: 1 (1) +2
Здравствуйте, snaphold, Вы писали:

S>На фронте есть список клиентов в таблице и юзер может выбрать любого клиента.

S>Клиенты делятся на типы Basic, Premium, VIP
S>Premium, VIP это Basic + доп свои поля.
S>Вопрос: как одним методом на бэке вернуть PremiumClient, VipClient ...?

Вернуть JSON с полями соответствующего клиента.
Одно из полей должно указывать на тип клиента — premium/vip/basic

P.S. Вопрос не очень понятен
Best regards, Буравчик
Re: Один метод много моделей
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.08.22 06:44
Оценка:
Здравствуйте, snaphold, Вы писали:

S>Вопрос: как одним методом на бэке вернуть PremiumClient, VipClient ...?

Не очень понятно, в чём проблема.
public class VipClient: BasicClient
{
   public string VipString{get;set;}
}

public async Task<BasicClient> GetClient(int id)
{
   ...
   return new VipClient(...);
}
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.