예제 #1
0
        public Result DeleteRoutingPlanDetail(RoutingPlanDetailDto pRoutingPlanDetail)
        {
            var _result = new Result(true, string.Empty);

            using (var _db = new Rbr_Db()) {
                using (var _tx = new Transaction(_db, pRoutingPlanDetail)) {
                    try {
                        var _wholesaleRouteCount = CustomerRouteManager.GetCount(_db, pRoutingPlanDetail.BaseRouteId);
                        if (_wholesaleRouteCount > 0)
                        {
                            throw new Exception("Cannot delete Routing Plan Route, it's used in one or more Wholesale Dial Plans");
                        }
                        var _retailRouteCount = 0;                         //TODO: X_Controller.GetRetailRouteCount(_db, pRoutingPlanDetail.BaseRouteId);
                        if (_retailRouteCount > 0)
                        {
                            throw new Exception("Cannot delete Routing Plan Route, it's used in one or more Retail Dial Plans");
                        }

                        RoutingManager.DeleteRoutingPlanDetail(_db, pRoutingPlanDetail);
                        _tx.Commit();
                    }
                    catch (Exception _ex) {
                        _result.Success      = false;
                        _result.ErrorMessage = _ex.Message;
                        TimokLogger.Instance.LogRbr(LogSeverity.Critical, "RoutingController.DeleteRoutingPlanDetail", string.Format("Exception:\r\n{0}", _ex));
                    }
                }
            }
            return(_result);
        }
예제 #2
0
 public void UpdateRoutingPlanDetail(RoutingPlanDetailDto pRoutingPlanDetail)
 {
     using (var _db = new Rbr_Db()) {
         using (var _tx = new Transaction(_db, pRoutingPlanDetail)) {
             RoutingManager.UpdateRoutingPlanDetail(_db, pRoutingPlanDetail);
             _tx.Commit();
         }
     }
 }
예제 #3
0
        internal static void DeleteRoutingPlanDetail(Rbr_Db pDb, RoutingPlanDetailDto pRoutingPlanDetail)
        {
            var _routingPlanDetailRow = mapToRoutingPlanDetailRow(pRoutingPlanDetail);

            DeleteTerminationChoices(pDb, _routingPlanDetailRow.Routing_plan_id, _routingPlanDetailRow.Route_id);
            //TODO: NEW DAL - ??? should we delete LCRBlackList auto, or throw?
            pDb.LCRBlackListCollection.DeleteByRouting_plan_id_Route_id(_routingPlanDetailRow.Routing_plan_id, _routingPlanDetailRow.Route_id);
            pDb.RoutingPlanDetailCollection.Delete(_routingPlanDetailRow);
        }
예제 #4
0
        static RoutingPlanDetailRow mapToRoutingPlanDetailRow(RoutingPlanDetailDto pRoutingPlanDetail)
        {
            if (pRoutingPlanDetail == null)
            {
                return(null);
            }

            var _routingPlanDetailRow = new RoutingPlanDetailRow();

            _routingPlanDetailRow.Routing_plan_id = pRoutingPlanDetail.RoutingPlanId;
            _routingPlanDetailRow.Route_id        = pRoutingPlanDetail.BaseRouteId;
            _routingPlanDetailRow.Algorithm       = pRoutingPlanDetail.Algorithm;

            return(_routingPlanDetailRow);
        }
예제 #5
0
        static RoutingPlanDetailDto mapToRoutingPlanDetail(RoutingPlanDetailRow pRoutingPlanDetailRow, BaseRouteDto pBaseRoute, RoutingPlanDto pRoutingPlan, RouteState pRoutingPlanDetailRouteState)
        {
            if (pRoutingPlanDetailRow == null)
            {
                return(null);
            }

            var _routingPlanDetail = new RoutingPlanDetailDto();

            _routingPlanDetail.RoutingPlan = pRoutingPlan;
            _routingPlanDetail.BaseRoute   = pBaseRoute;
            _routingPlanDetail.Algorithm   = pRoutingPlanDetailRow.Algorithm;

            _routingPlanDetail.RouteState = pRoutingPlanDetailRouteState;

            return(_routingPlanDetail);
        }
예제 #6
0
        internal static void UpdateRoutingPlanDetail(Rbr_Db pDb, RoutingPlanDetailDto pRoutingPlanDetail)
        {
            var _routingPlanDetailRow = mapToRoutingPlanDetailRow(pRoutingPlanDetail);

            pDb.RoutingPlanDetailCollection.Update(_routingPlanDetailRow);
        }
예제 #7
0
        internal static void AddRoutingPlanDetail(Rbr_Db pDb, RoutingPlanDetailDto pRoutingPlanDetail)
        {
            var _routingPlanDetailRow = mapToRoutingPlanDetailRow(pRoutingPlanDetail);

            AddRoutingPlanDetailRow(pDb, _routingPlanDetailRow);
        }