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))); }
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))); }