Проектирование классов
От: linker Россия  
Дата: 06.06.08 10:33
Оценка:
Есть занчит отделы(Department) в них сотрудники(Employee), у сотрудников есть телефоны(Phone),они совершают звонки(Call).Хочеться иметь статистик по этим звонкам как для сотрудника так и для отдела.

Для сотрудника все понятно
 public class Call
 {
        ...
 }
 
 public class CallCollection:IEnumerable
 {
        ...
 }
 
 CallManagerService:ICallManagerService
 {   
     GetCallCollection(phone, startdate, enddate)
     {
            ....
     }
 }

Получаю номер телефона сотрудника,возвращаю коллекцию его звонков.

А вот с отделом хочется чтоб информация была представлена следующим образом.

Номер Сотрудника|ФИО Сотрудника|Суммарная длительность звонков|Суммарная стоимость звонков

Так вот затык у меня с тем, что вроде уже информация присутсвует(Номер сотрудника и его фио есть в класс Emlployee,а информация по звонкам в классе Call),а вот как объеденить эти данные не понимаю.
Как поступить?????????/
... << RSDN@Home 1.2.0 alpha rev. 789>>
Re: Проектирование классов
От: terixg  
Дата: 06.06.08 11:02
Оценка:
я так понимаю у тебя класс Department содержит коллекцию Employee. Тогда достаточно пробежаться в цикле по всем сотрудникам... взять их телефоны и вызвать твой волшебный метод CallManagerService.GetCallCollection()... заодно все и просуммируешь. Или я что-то не так понял ?
Re: Проектирование классов
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 06.06.08 11:03
Оценка:
Здравствуйте, linker, Вы писали:

L> []


public class CallCollection:IEnumerable

Таки скажи -- почему не

public class CallCollection:Collection<Call>

?

L>А вот с отделом хочется чтоб информация была представлена следующим образом.


L>Номер Сотрудника|ФИО Сотрудника|Суммарная длительность звонков|Суммарная стоимость звонков


Ключевое слово выделено. Не надо пытаться со скрипом втискивать существующие классы в рамки, установленные задачей -- создайте новый класс (а-ля EmployeeCallDurationInfo) и выводите куда заблагорассудится. И SQL'ные group by, sum() и пр. вам в руки.
HgLab: Mercurial Server and Repository Management for Windows
Re[2]: Проектирование классов
От: linker Россия  
Дата: 06.06.08 12:21
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Здравствуйте, linker, Вы писали:


Н>
Н>public class CallCollection:IEnumerable
Н>

Н>Таки скажи -- почему не

Н>
Н>public class CallCollection:Collection<Call>
Н>

Н>?
Перечитал да в моем случае правильнее использовать Collection<Call>,в одном только сомнения
  public class CallCollection:ICollection<Call>
    {       
        private List<Call> arCall = new List<Call>();
        
        public IEnumerator<Call> GetEnumerator()
        {
            return arCall.GetEnumerator();             
        }
        }


Н>Ключевое слово выделено. Не надо пытаться со скрипом втискивать существующие классы в рамки, установленные задачей -- создайте новый класс (а-ля EmployeeCallDurationInfo) и выводите куда заблагорассудится. И SQL'ные group by, sum() и пр. вам в руки.

Спасибо,понял.
... << RSDN@Home 1.2.0 alpha rev. 789>>
Re[3]: Проектирование классов
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 06.06.08 13:03
Оценка:
Здравствуйте, linker, Вы писали:

L>Перечитал да в моем случае правильнее использовать Collection<Call>,в одном только сомнения


Чего ты прицепился к GetEnumerator()'у этому? Индексация не нужна, что ли? Или Add()? Если нет (что маловероятно), то просто реализуй IEnumerable<T>. Есди да -- то наследуйся от Collection<T> и не майся дурью.
HgLab: Mercurial Server and Repository Management for Windows
Re[4]: Проектирование классов
От: linker Россия  
Дата: 06.06.08 13:11
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Здравствуйте, linker, Вы писали:


L>>Перечитал да в моем случае правильнее использовать Collection<Call>,в одном только сомнения


Н>Чего ты прицепился к GetEnumerator()'у этому? Индексация не нужна, что ли? Или Add()? Если нет (что маловероятно), то просто реализуй IEnumerable<T>.

Н>Есди да -- то наследуйся от Collection<T> и не майся дурью.
Да понял я, понял
... << RSDN@Home 1.2.0 alpha rev. 789>>
Re: Проектирование классов
От: _FRED_ Черногория
Дата: 06.06.08 16:35
Оценка:
Здравствуйте, linker, Вы писали:

L>Есть занчит отделы(Department) в них сотрудники(Employee), у сотрудников есть телефоны(Phone),они совершают звонки(Call).Хочеться иметь статистик по этим звонкам как для сотрудника так и для отдела.


Насколько часто статистика требуется? Как часто появляются звонки?
... << RSDN@Home 1 alpha 3 rev. 0>>
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Проектирование классов
От: linker Россия  
Дата: 07.06.08 06:18
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, linker, Вы писали:


L>>Есть занчит отделы(Department) в них сотрудники(Employee), у сотрудников есть телефоны(Phone),они совершают звонки(Call).Хочеться иметь статистик по этим звонкам как для сотрудника так и для отдела.


_FR>Насколько часто статистика требуется? Как часто появляются звонки?

Статистика требуется не так что бы уж часто.Статистика появляется раз в месяц(отчет приходит от провайдера)


ЗЫ:Да я уже разобрался,Нахлобуч наставил на путь истинный
... << RSDN@Home 1.2.0 alpha rev. 789>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.