示例#1
0
        public TerminationRouteDto[] GetAvailableCarrierLCRTerminationRoutes(int pBaseRouteId, DateTime pDate, short pHour)
        {
            //Stopwatch _s = new Stopwatch();
            //_s.Start();
            var _dateHour      = new DateTime(pDate.Year, pDate.Month, pDate.Day, pHour, 0, 0);
            var _termRoutelist = new ArrayList();

            using (var _db = new Rbr_Db()) {
                var _terminationRouteViewRows = _db.TerminationRouteViewCollection.GetAvailableByCustomerBaseRouteId(pBaseRouteId, true);
                foreach (var _terminationRouteViewRow in _terminationRouteViewRows)
                {
                    if (_terminationRouteViewRow.RatingType != RatingType.Disabled)
                    {
                        //if rating enabled
                        //TODO: make sure carr Route has active Term EPs
                        var _activeCarrierRouteEPMapCount = _db.CarrierAcctEPMapCollection.GetActiveCountByCarrierRouteId(_terminationRouteViewRow.Carrier_route_id);

                        //TODO: check for DefaultPrimaryTermEP
                        if (_activeCarrierRouteEPMapCount > 0 /* || pCustomerServiceRoute.Service.DefaultPrimaryTermEP > 0*/)
                        {
                            var _lcrRank          = getCarrierLCRRank(_terminationRouteViewRow.Carrier_route_id, _dateHour);
                            var _terminationRoute = new TerminationRouteDto(_terminationRouteViewRow.Carrier_route_id,
                                                                            _terminationRouteViewRow.Route_name,
                                                                            _terminationRouteViewRow.Carrier_acct_id,
                                                                            _terminationRouteViewRow.Calling_plan_id,
                                                                            _terminationRouteViewRow.Carrier_acct_name,
                                                                            _lcrRank,
                                                                            _terminationRouteViewRow.PartialCoverage,
                                                                            _activeCarrierRouteEPMapCount > 0);

                            if (!_termRoutelist.Contains(_terminationRoute))
                            {
                                _termRoutelist.Add(_terminationRoute);
                            }
                        }
                    }
                }
            }
            //need to sort here by CarrierName  and RouteName
            //var _sortInfo = new SortInfo[3];
            //_sortInfo[1] = new SortInfo(TerminationRouteDto.CarrierName_PropName, ListSortDirection.Ascending);
            //_sortInfo[2] = new SortInfo(TerminationRouteDto.CarrierRouteName_PropName, ListSortDirection.Ascending);
            var _sortInfo = new SortInfo[2];

            _sortInfo[0] = new SortInfo(TerminationRouteDto.CarrierName_PropName, ListSortDirection.Ascending);
            _sortInfo[1] = new SortInfo(TerminationRouteDto.CarrierRouteName_PropName, ListSortDirection.Ascending);
            _termRoutelist.Sort(new GenericComparer(_sortInfo));

            //Debug.WriteLine("TermChoiceController.GetRoutingTable [" + _s.Elapsed.TotalSeconds.ToString("0.0000000") + " sec]");
            return((TerminationRouteDto[])_termRoutelist.ToArray(typeof(TerminationRouteDto)));
        }
示例#2
0
        public TerminationRouteDto[] GetActiveCarrierLCRTerminationRoutes(int pCallingPlanId, long pDialCode, DateTime pDate, short pHour)
        {
            var _dateHour      = new DateTime(pDate.Year, pDate.Month, pDate.Day, pHour, 0, 0);
            var _termRoutelist = new ArrayList();

            using (var _db = new Rbr_Db()) {
                var _terminationRouteViewRows = _db.TerminationRouteViewCollection.GetActiveByCustomerDialCode(pDialCode, pCallingPlanId);
                foreach (var _terminationRouteViewRow in _terminationRouteViewRows)
                {
                    if (_terminationRouteViewRow.RatingType != RatingType.Disabled)
                    {
                        //if rating enabled
                        //TODO: make sure carr Route has active Term EPs
                        var _activeCarrierRouteEPMapCount = _db.CarrierAcctEPMapCollection.GetActiveCountByCarrierRouteId(_terminationRouteViewRow.Carrier_route_id);

                        //TODO: check for DefaultPrimaryTermEP
                        if (_activeCarrierRouteEPMapCount == 0 /* && pCustomerServiceRoute.Service.DefaultPrimaryTermEP == 0*/)
                        {
                            continue;
                        }

                        var _lcrRank = getCarrierLCRRank(_terminationRouteViewRow.Carrier_route_id, _dateHour);

                        var _terminationRoute = new TerminationRouteDto(_terminationRouteViewRow.Carrier_route_id,
                                                                        _terminationRouteViewRow.Route_name,
                                                                        _terminationRouteViewRow.Carrier_acct_id,
                                                                        _terminationRouteViewRow.Calling_plan_id,
                                                                        _terminationRouteViewRow.Carrier_acct_name,
                                                                        _lcrRank,
                                                                        _terminationRouteViewRow.PartialCoverage,
                                                                        _activeCarrierRouteEPMapCount > 0);

                        if (!_termRoutelist.Contains(_terminationRoute))
                        {
                            _termRoutelist.Add(_terminationRoute);
                        }
                    }
                }
            }
            //NOTE: need to sort here by Rank, RouteName and CarrierName
            //(by CarrierName is in cases where Route+Rank are the same for different Carriers)
            var _sortInfo = new SortInfo[3];

            _sortInfo[0] = new SortInfo(TerminationRouteDto.LCRRank_PropName, ListSortDirection.Ascending);
            _sortInfo[1] = new SortInfo(TerminationRouteDto.CarrierRouteName_PropName, ListSortDirection.Ascending);
            _sortInfo[2] = new SortInfo(TerminationRouteDto.CarrierName_PropName, ListSortDirection.Ascending);
            _termRoutelist.Sort(new GenericComparer(_sortInfo));

            return((TerminationRouteDto[])_termRoutelist.ToArray(typeof(TerminationRouteDto)));
        }