コード例 #1
0
        private List <NavigationOption> getNetworkOptions(navigationtype nType)
        {
            sm("Configuring Network options " + nType.ToString());
            List <NavigationOption> options = new List <NavigationOption>();

            options.Add(NavigationOption.StartPointLocationOption());


            switch (nType)
            {
            case navigationtype.e_flowpath:
                options.Add(NavigationOption.LimitOption());
                break;

            case navigationtype.e_networkpath:
                options.Insert(1, NavigationOption.EndPointLocationOption());
                break;

            case navigationtype.e_networktrace:
                options.Insert(1, NavigationOption.DirectionOption());
                options.Insert(2, NavigationOption.QuerySourceOption());
                options.Add(NavigationOption.LimitOption());
                break;

            default:
                sm("No navigation options exist " + nType);
                break;
            }
            return(options);
        }
コード例 #2
0
        private bool isValid(int navigationtypeID, List <NavigationOption> options)
        {
            NavigationOption option = null;

            try
            {
                navigationtype ntype = (navigationtype)navigationtypeID;
                switch (ntype)
                {
                case navigationtype.e_flowpath:
                    // requires valid startpoint
                    option = options.FirstOrDefault(x => x.ID == (int)NavigationOption.navigationoptiontype.e_startpoint);
                    if (option == null || !isValid(option))
                    {
                        return(false);
                    }

                    //limit
                    option = options.FirstOrDefault(x => x.ID == 0);
                    if (option != null && !isValid(option))
                    {
                        return(false);
                    }

                    break;

                case navigationtype.e_networkpath:
                    // requires valid startpoint and endpoint
                    option = options.FirstOrDefault(x => x.ID == (int)NavigationOption.navigationoptiontype.e_startpoint);
                    if (option == null || !isValid(option))
                    {
                        return(false);
                    }
                    option = options.FirstOrDefault(x => x.ID == (int)NavigationOption.navigationoptiontype.e_endpoint);
                    if (option == null || !isValid(option))
                    {
                        return(false);
                    }

                    //limit
                    option = options.FirstOrDefault(x => x.ID == 0);
                    if (option != null && !isValid(option))
                    {
                        return(false);
                    }

                    break;

                case navigationtype.e_networktrace:
                    // requires valid startpoint and upstream/dowstream and data query
                    option = options.FirstOrDefault(x => x.ID == (int)NavigationOption.navigationoptiontype.e_startpoint);
                    if (option == null || !isValid(option))
                    {
                        return(false);
                    }
                    option = options.FirstOrDefault(x => x.ID == (int)NavigationOption.navigationoptiontype.e_navigationdirection);
                    if (option == null || !isValid(option))
                    {
                        return(false);
                    }
                    option = options.FirstOrDefault(x => x.ID == (int)NavigationOption.navigationoptiontype.e_querysource);
                    if (option == null || !isValid(option))
                    {
                        return(false);
                    }

                    //limit
                    option = options.FirstOrDefault(x => x.ID == 0);
                    if (option != null && !isValid(option))
                    {
                        return(false);
                    }

                    break;

                default:
                    break;
                }

                sm("Options are valid");
                return(true);
            }
            catch (Exception ex)
            {
                sm("Error occured while validating " + ex.Message, MessageType.error);
                return(false);

                throw;
            }
        }