예제 #1
0
        public override void ProcessRequest(IContext context)
        {
            IContextRequest  request  = context.Request;
            IContextResponse response = context.Response;

            try
            {
                string s = request.GetParam("BBOX");
                if (String.IsNullOrEmpty(s))
                {
                    throw new WmsInvalidParameterException("BBOX");
                }


                Map             map    = GetMap(request);
                LayerCollection layers = map.Layers;
                ILayer          first  = layers.First();
                bool            flip   = first.TargetSRID == 4326;
                BoundingBox     bbox   = AbstractHandler.ParseBBOX(s, flip);
                if (bbox == null)
                {
                    throw new WmsInvalidBboxException(s);
                }

                string ls = request.GetParam("LAYERS");
                if (!String.IsNullOrEmpty(ls))
                {
                    string[] strings = ls.Split(',');
                    foreach (ILayer layer in layers)
                    {
                        if (!strings.Contains(layer.LayerName))
                        {
                            layer.Enabled = false;
                        }
                    }
                }

                IEnumerable <GeoJSON> items  = GetData(map, bbox);
                StringWriter          writer = new StringWriter();
                GeoJSONWriter.Write(items, writer);
                string buffer = writer.ToString();

                IHandlerResponse result = new GetFeatureInfoResponseJson(buffer);
                result.WriteToContextAndFlush(response);
            }
            catch (WmsExceptionBase ex)
            {
                ex.WriteToContextAndFlush(response);
            }
        }
예제 #2
0
        public void Add(AbstractHandler handler)
        {
            var types = handler.SupportedMessageTypes().ToList();

            if (types.Count == 0)
            {
                allTypes.Add(handler);
            }

            foreach (var type in types)
            {
                this.GetSet(type).Add(handler);
            }
        }
예제 #3
0
 private void openToolStripMenuItem_Click(object sender, EventArgs e)
 {
     currentHandler = null;
     openDeserializeFileDialog.Title  = "Open UML File";
     openDeserializeFileDialog.Filter = "UML files(*.uml)|*.uml";
     if (openDeserializeFileDialog.ShowDialog() == DialogResult.OK)
     {
         string fileData = SaveOrLoad.OpenFile(openDeserializeFileDialog.FileName);
         JsonDeserialized(fileData);
         canvas.RedrawElementsFromElementsList();
         pictureBox1.Invalidate();
         colorButton.BackColor = Color.White;
     }
 }
예제 #4
0
        private void uMLToolStripMenuItem_Click(object sender, EventArgs e)
        {
            saveSerializeFileDialog.Title  = "Save UML File";
            saveSerializeFileDialog.Filter = "UML files(*.uml)|*.uml";
            if (saveSerializeFileDialog.ShowDialog() == DialogResult.OK)
            {
                if (saveSerializeFileDialog.FileName != string.Empty)
                {
                    string fileData = JsonSerialized();
                    SaveOrLoad.SaveFile(saveSerializeFileDialog.FileName, fileData);
                }
            }

            currentHandler = null;
        }
예제 #5
0
        public static void ClientCodeRangoTiempo(AbstractHandler handler, Pedido pedido)
        {
            if (pedido == null)
            {
                throw new Exception("El pedido no puede ser nulo");
            }

            var result = handler.Handle(pedido);

            if (result != null)
            {
            }
            else
            {
                Console.WriteLine($"El pedido {pedido.Origen } no se pudo resolver.");
            }
        }
예제 #6
0
        /// <summary>
        /// Pass the request to handler according to Payment Type
        /// </summary>
        private static void RuleHandler()
        {
            AbstractHandler abstractHandler = null;
            var             email           = new SendEmail();
            var             compayment      = new CommissionPayment();

            var ctx = new Context()
            {
                PaymentType = ReadInputRequest()
            };
            var handler = ctx.PaymentType;

            switch (handler)
            {
            case "PhysicalProduct":
                abstractHandler = new PhysicalProduct();
                abstractHandler.SetNext(compayment);
                break;

            case "ProductBook":
                abstractHandler = new ProdcutBook();
                abstractHandler.SetNext(compayment);
                break;

            case "Membership":
                abstractHandler = new Membership();
                abstractHandler.SetNext(email);
                break;

            case "UpgradeMembership":
                abstractHandler = new UpgradeMembership();
                abstractHandler.SetNext(email);
                break;

            case "Video":
                abstractHandler = new Video();
                break;

            default:
                break;
            }

            RuleEngOrchestrator.ClientCode(abstractHandler);
            Console.WriteLine();
        }
예제 #7
0
        private static void WhatType()
        {
            Console.WriteLine("выберите фомат файла: XML, TXT, DOC");
            switch (Console.ReadLine())
            {
            case "XML": handler = new XMLHandler();
                break;

            case "TXT": handler = new TXTHandler();
                break;

            case "DOC": handler = new DOCHandler();
                break;

            default:
                WhatType(); break;
            }
        }
예제 #8
0
        private void Form1_Load(object sender, EventArgs e)
        {
            panelLocation             = new Point(splitContainer1.Width + 1, menuStrip1.Height + 1);
            flowLayoutPanel1.Location = panelLocation;
            flowLayoutPanel1.Height   = this.Height - menuStrip1.Height - 50;
            flowLayoutPanel1.Width    = this.Width - splitContainer1.Width - 30;
            pictureBox1.Height        = 1200;
            pictureBox1.Width         = 1600;

            canvas = Canvas.GetCanvas();
            canvas.SetCanvas(pictureBox1.Width, pictureBox1.Height);
            pictureBox1.Image = canvas.bitmap;
            canvas.pictureBox = pictureBox1;
            canvas.listAbstractDiagramElements = new List <AbstractDiagramElement>();
            canvas.SetPenParameters(colorDialog.Color, thicknessTrackBar.Value);
            currentFactory = new AssociationRelationshipFactory();
            currentHandler = new DrawHandler(currentFactory);
        }
예제 #9
0
        public void Init()
        {
            _mockFileInfo = Substitute.For <IFileInfoWrapper>();
            _mockFileInfo.Name.Returns("fileInfoName");
            _mockFileInfo.FullName.Returns("fullFileName");
            _mockFileInfo.CreationTime.Returns(new DateTime(2020, 12, 31));
            _mockFileInfo.Extension.Returns(".txt");

            _mockConsole = Substitute.For <IConsoleWrapper>();

            _mockFile = Substitute.For <IFileWrapper>();
            _mockFile.ReadAllText(_mockFileInfo.Name).Returns("5545");

            _mockDirectory = Substitute.For <IDirectoryWrapper>();
            _mockDirectory.CreateDirectory(_mockFileInfo.Name);
            _mockDirectory.GetCreationTime(_mockFileInfo.CreationTime.ToString(CultureInfo.InvariantCulture));

            _target = new TxtHandler(_mockFile, _mockFileInfo, _mockConsole, _mockDirectory);
        }
예제 #10
0
        public static void ClientCode(AbstractHandler handler)
        {
            foreach (var food in new List <string> {
                "Nut", "Banana", "Cup of coffee"
            })
            {
                Console.WriteLine("Client: Who wants a " + food + "?");

                var result = handler.Handle(food);

                if (result != null)
                {
                    Console.Write("   " + result);
                }
                else
                {
                    Console.WriteLine("   " + food + " was left untouched.");
                }
            }
        }
예제 #11
0
            // The client code is usually suited to work with a single handler. In
            // most cases, it is not even aware that the handler is part of a chain.
            public static List <string> ClientCode(AbstractHandler handler, IEnumerable <string> foodlist)
            {
                var events = new List <string>();

                foreach (var food in foodlist)
                {
                    events.Add($"Client: Who wants a {food}?");

                    var result = handler.Handle(food);

                    if (result != null)
                    {
                        events.Add(result.ToString());
                    }
                    else
                    {
                        events.Add($"{food} was left untouched");
                    }
                }
                return(events);
            }
예제 #12
0
        public bool Eval(Control control)
        {
            bool   ok   = true;
            string name = control.GetType().Name;

            switch (name)
            {
            case "TextBox":
                handler = new TextBoxHandler((TextBox)control);
                break;

            case "DateTimePicker":
                handler = new DateTimePickerHandler((DateTimePicker)control);
                break;

            case "ComboBox":
                handler = new ComboBoxHandler((ComboBox)control);
                break;


            case "MaskedTextBox":
                handler = new MaskedTextBoxHandler((MaskedTextBox)control);
                break;

            default:
            {
                Utils.error($"control {control.Name} instance of {name} no has been configurated");
            }
            break;
            }

            if (!(ok = handler.GetData()))
            {
                Utils.error($"from control {control.Name}");
                OnError(control);
                // MessageBox.Show($"{control.Name}");
            }

            return(ok);
        }
예제 #13
0
        static void Main(string[] args)
        {
            Console.Write("Enter 0 for open exist file or other for create new: ");
            var isNew = Console.ReadLine() != "0";

            string fileName = ReadFileName(args, isNew);

            var doc = AbstractHandler.CreateInstance(fileName);

            var type = doc switch
            {
                XMLHandler => "xml",
                DOCHandler => "doc",
                _ => "txt",
            };

            doc.Open();
            doc.Save();

            Console.WriteLine($"Type of file'{fileName}' is {type}");

            _ = Console.ReadKey();
        }
예제 #14
0
 public TypedHandler(Type type, AbstractHandler handler)
 {
     Type    = type;
     Handler = handler;
 }
예제 #15
0
 private void buttonMove_Click(object sender, EventArgs e)
 {
     currentHandler = new MoveHandler();
 }
예제 #16
0
 public ComponentManager()
 {
     this.serviceReader = new FactoryHandler().GetHandler();
 }
예제 #17
0
 public TypedHandler(Type type, AbstractHandler handler)
 {
     Type = type;
     Handler = handler;
 }
 /// <summary>
 /// The set successor.
 /// </summary>
 /// <param name="successor">
 /// The successor.
 /// </param>
 public void SetSuccessor(AbstractHandler successor)
 {
     this.Successor = successor;
 }
예제 #19
0
 private void BtnEdit_Click(object sender, EventArgs e)
 {
     currentHandler = new ChangeColorAndSizeHandler();
 }
예제 #20
0
 public void Add(AbstractHandler handler) { Handlers.Add(handler); }
예제 #21
0
 public void AddHander(AbstractHandler hander)
 {
     RecursiveHander(topHander).NextHandler = hander;
 }
예제 #22
0
 private void inheritanceButton_Click(object sender, EventArgs e)
 {
     currentFactory = new InheritanceRelationshipFactory();
     currentHandler = new DrawHandler(currentFactory);
 }
예제 #23
0
        public static void ContextCode(AbstractHandler handler)
        {
            // foreach (var Cup in new List<string> { "Latte", "Espresso", "BlackCoffee" })
            //{
            // Ask the user to choose an operator.
            Console.WriteLine("Select your coffee from the list below :");
            Console.WriteLine("\t 1 - Latte");
            Console.WriteLine("\t 2 - Espresso");
            Console.WriteLine("\t 3 - BlackCoffee");
            string Cup = Console.ReadLine();

            switch (Cup)
            {
            case "1":
            {
                foreach (var Ingredient  in new List <string> {
                        "Milk", "Sugar", "Coffee"
                    })
                {
                    Console.WriteLine($" is there {Ingredient}?");
                    var result = handler.Handle(Ingredient);

                    if (result != null)
                    {
                        Console.Write($"   {result}");
                    }
                    else
                    {
                        Console.WriteLine($" {Ingredient} was left untouched.");
                    }
                }
                Console.WriteLine($" Your cup of {Cup} is ready ----------------- ");
                break;
            }

//-------------------------------------------------------------------------------------------------------
            case "2":
            {
                foreach (var Ingredient  in new List <string> {
                        "Sugar", "Coffee"
                    })
                {
                    Console.WriteLine($" is there {Ingredient}?");
                    var result = handler.Handle(Ingredient);

                    if (result != null)
                    {
                        Console.Write($"   {result}");
                    }
                    else
                    {
                        Console.WriteLine($" {Ingredient} was left untouched.");
                    }
                }
                Console.WriteLine($" Your cup of {Cup} is ready ----------------- ");
                break;
            }

            //----------------------------------------------------
            case "3":
            {
                foreach (var Ingredient  in new List <string> {
                        "Water", "Sugar", "Coffee"
                    })
                {
                    Console.WriteLine($" is there {Ingredient}?");
                    var result = handler.Handle(Ingredient);

                    if (result != null)
                    {
                        Console.Write($"   {result}");
                    }
                    else
                    {
                        Console.WriteLine($" {Ingredient} was left untouched.");
                    }
                }
                Console.WriteLine($" Your cup of {Cup} is ready ----------------- ");
                break;
            }

            default:
                break;
            }
        }
예제 #24
0
 public InPlacePizzaStore(AbstractHandler billHandler)
 {
     this.billHandler = billHandler;
 }
예제 #25
0
 private void BtnClass_Click(object sender, EventArgs e)
 {
     currentFactory = new UMLClassFactory();
     currentHandler = new DrawHandler(currentFactory);
 }
예제 #26
0
 private void InterFaceButton_Click(object sender, EventArgs e)
 {
     currentFactory = new UMLInterfaceFactory();
     currentHandler = new DrawHandler(currentFactory);
 }
예제 #27
0
 private void compositionButton_Click(object sender, EventArgs e)
 {
     currentFactory = new CompositionRelationshipFactory();
     currentHandler = new DrawHandler(currentFactory);
 }
예제 #28
0
 /// <summary>
 /// Passes the next handler to the current handler in the chain of responsibility
 /// </summary>
 /// <param name="next"></param>
 public AbstractHandler(AbstractHandler next)
 {
     this.Next = next;
 }
예제 #29
0
 public MatchedTypeHandler(Func <Type, bool> typeMatch, AbstractHandler handler)
 {
     TypeMatch = typeMatch;
     Handler   = handler;
 }
예제 #30
0
 public void Add(AbstractHandler handler)
 {
     Handlers.Add(handler);
 }
예제 #31
0
 public MatchedTypeHandler(Func<Type, bool> typeMatch, AbstractHandler handler)
 {
     TypeMatch = typeMatch;
     Handler = handler;
 }
예제 #32
0
 public Context(AbstractHandler handler, Mapper mapper)
 {
     this.handler = handler;
     this.mapper  = mapper;
 }
예제 #33
0
 private void BtnDelete_Click(object sender, EventArgs e)
 {
     currentHandler = new DeleteHandler();
 }