示例#1
0
        private void TkPrice_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            string[] exchange = null;

            if (bdExchange.Visibility == Visibility.Visible && (cbOrbs.SelectedIndex > 0 || cbSplinters.SelectedIndex > 0))
            {
                exchange = new string[2];

                ParserDictionary exchange_item1 = GetExchangeItem(0, mItemBaseName.TypeKR);
                ParserDictionary exchange_item2 = GetExchangeItem(0, (string)(cbOrbs.SelectedIndex > 0 ? cbOrbs.SelectedValue : cbSplinters.SelectedValue));

                if (exchange_item1 == null || exchange_item2 == null)
                {
                    liPrice.Items.Clear();
                    tkPriceCount.Text     = "";
                    tkPriceInfo.Text      = "선택한 교환 아이템 코드가 잘못되었습니다.";
                    cbPriceListTotal.Text = "0/0 검색";
                    return;
                }

                exchange[0] = exchange_item1.ID;
                exchange[1] = exchange_item2.ID;
            }

            UpdatePriceThreadWorker(exchange != null ? null : GetItemOptions(), exchange);
        }
示例#2
0
    public void DefaultMethodShouldRaiseExceptionWhenKeyNotExists()
    {
        var sut = new ParserDictionary <INodeParser>();
        var ex  = Assert.Throws <KeyNotFoundException>(() => sut["chaveinexistente"]);

        ex.Message.Should().Be("Chave não encontrada: chaveinexistente");
    }
示例#3
0
    public void DictionaryShouldBeCaseInsensitive(string lookFor)
    {
        var parser = Helper.FakeParser <INodeParser>("alpha");

        var sut = new ParserDictionary <INodeParser>();

        sut.Add(parser);

        sut[lookFor].Should().BeSameAs(parser);

        var result = sut.TryGet(lookFor, out var value);

        result.Should().BeTrue();
        value.Should().BeSameAs(parser);
    }
示例#4
0
    public NodeAggregation(params INodeParser[] nodeParsers)
    {
        if (nodeParsers is null)
        {
            throw new ArgumentNullException(nameof(nodeParsers));
        }

        var parsers = new ParserDictionary <INodeParser>();

        foreach (var nodeParser in nodeParsers)
        {
            parsers.Add(nodeParser);
        }

        ChildParsers = parsers;
    }
示例#5
0
    public void NameRegex()
    {
        var parser1 = A.Dummy <IParser>();

        A.CallTo(() => parser1.Name).Returns(string.Empty);
        A.CallTo(() => parser1.NameRegex).Returns(@"^[a-z]$");

        var parser2 = Helper.FakeParser <IParser>("abc");

        var sut = new ParserDictionary <IParser>();

        sut.Add(parser1);
        sut.Add(parser2);

        sut["a"].Should().Be(parser1);
        sut["b"].Should().Be(parser1);
        sut["c"].Should().Be(parser1);
        sut["z"].Should().Be(parser1);
        sut["abc"].Should().Be(parser2);
    }
示例#6
0
 public ParserWriter(ParserDictionary writers)
     : base(writers)
 {
 }
示例#7
0
 public static void Add(this ParserDictionary <IAttributeParser> dic, IAttributeParser parser)
 => dic.Add(parser.ElementName, parser);
示例#8
0
 public TextParserWriter(ParserDictionary writers = null)
     : base(writers)
 {
     Indent = "    ";
 }
示例#9
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            string sEntity;

            string[] exchange = null;

            if (bdExchange.Visibility == Visibility.Visible && (cbOrbs.SelectedIndex > 0 || cbSplinters.SelectedIndex > 0))
            {
                exchange = new string[2];

                ParserDictionary exchange_item1 = GetExchangeItem(0, mItemBaseName.TypeKR);
                ParserDictionary exchange_item2 = GetExchangeItem(0, (string)(cbOrbs.SelectedIndex > 0 ? cbOrbs.SelectedValue : cbSplinters.SelectedValue));

                if (exchange_item1 == null || exchange_item2 == null)
                {
                    ForegroundMessage("선택한 교환 아이템 코드가 잘못되었습니다.", "에러", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                exchange[0] = exchange_item1.ID;
                exchange[1] = exchange_item2.ID;

                Process.Start(
                    RS.ExchangeApi[RS.ServerLang] + RS.ServerType + "/?redirect&source="
                    + Uri.EscapeDataString(
                        "{\"exchange\":{\"status\":{\"option\":\"online\"},\"have\":[\"" + exchange[0] + "\"],\"want\":[\"" + exchange[1] + "\"]}}"
                        )
                    );
            }
            else
            {
                sEntity = CreateJson(GetItemOptions(), false);

                if (sEntity == null || sEntity == "")
                {
                    ForegroundMessage("Json 생성을 실패했습니다.", "에러", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                if (mConfigData.Options.ServerRedirect)
                {
                    Process.Start(RS.TradeApi[RS.ServerLang] + RS.ServerType + "/?redirect&source=" + Uri.EscapeDataString(sEntity));
                }
                else
                {
                    string request_result = null;

                    // 마우스 훜시 프로그램에 딜레이가 생겨 쓰레드 처리
                    Thread thread = new Thread(() =>
                    {
                        request_result = SendHTTP(sEntity, RS.TradeApi[RS.ServerLang] + RS.ServerType, mConfigData.Options.ServerTimeout);
                        if ((request_result ?? "") != "")
                        {
                            try
                            {
                                ResultData resultData = Json.Deserialize <ResultData>(request_result);
                                Process.Start(RS.TradeUrl[RS.ServerLang] + RS.ServerType + "/" + resultData.ID);
                            }
                            catch { }
                        }
                    });

                    thread.Start();
                    thread.Join();

                    if ((request_result ?? "") == "")
                    {
                        ForegroundMessage(
                            "현재 거래소 접속이 원활하지 않을 수 있습니다." + '\n'
                            + "한/영 서버의 거래소 접속을 확인 하신후 다시 시도하세요.",
                            "검색 실패",
                            MessageBoxButton.OK, MessageBoxImage.Information
                            );
                        return;
                    }
                }
            }

            Close();
        }