Esempio n. 1
0
        public Report GetReport(int telephoneNumber)
        {
            var calls = GetInfoList().
                        Where(x => x.CallerNumber == telephoneNumber || x.TargetNumber == telephoneNumber).
                        ToList();
            var report = new Report();

            foreach (var call in calls)
            {
                CallType callType;
                int      number;
                int      cost;
                if (call.CallerNumber == telephoneNumber)
                {
                    callType = CallType.OutgoingCall;
                    number   = call.TargetNumber;
                    cost     = call.GetCost(_billingDictionary.Where(x => x.Key == telephoneNumber).Select(x => x.Value).ElementAt(0)
                                            , call.TimeStartCall, call.TimeEndCall);
                }
                else
                {
                    callType = CallType.IncomingСall;
                    number   = call.CallerNumber;
                    cost     = 0;
                }
                var record = new ReportRecord(number, callType, call.TimeStartCall,
                                              new DateTime((call.TimeEndCall - call.TimeStartCall).Ticks), cost);
                report.AddRecord(record);
            }
            return(report);
        }
Esempio n. 2
0
 public void RemoveRecord(ReportRecord record)
 {
     _listRecords.Remove(record);
 }
Esempio n. 3
0
 public void AddRecord(ReportRecord record)
 {
     _listRecords.Add(record);
 }