Esempio n. 1
0
        private async Task TapColorChangeAsync(ContentView cv)
        {
            await Global.LoadingStartAsync();

            if (cv == plg) // 상품권이 선택되었을 경우
            {
                ShopSelectImage.Source        = "main_shop_non.png";
                TapShopingGridLabel.TextColor = Color.Black;
                GiftSelectImage.Source        = "main_gift_h.png";
                TapGiftGridLabel.TextColor    = Color.CornflowerBlue;

                TabListColorChange(0);

                if (Global.b_user_login)
                {
                    plg.PostSearchPurchaseListToIDAsync(Global.ID, -99, 0, 0);
                    await plg.Init();
                }
                else
                {
                    if (Global.b_guest_login == true)
                    {
                        G_PurchaseList g1 = new G_PurchaseList
                        {
                            AC_NUM = "1",
                            //G_TempProduct = "",
                            ID                    = "Guest",
                            ISUSER                = "******",
                            PL_USED_POINT         = "0",
                            PL_ACCUSER_NAME       = "홍길동",
                            PL_DELIVERYPAY_TYPE   = "1",
                            PL_DELIVERY_ADDRESS   = "대전광역시",
                            PL_DELIVERY_JIBUNADDR = "대전광역시",
                            PL_DELIVERY_ZIPNO     = "10052",
                            PL_DV_NAME            = "홍길동",
                            PL_DV_PHONE           = "01011112222",
                            PL_ISSUCCESS          = "1",
                            PL_NUM                = 1000,
                            PL_PAPERSTATE         = "30",
                            PL_PAPER_COUNT        = "1",
                            PL_PAPER_DVNUM        = "",
                            PL_PAYMENT_PRICE      = "13000",
                            PL_PURCHASE_DATE      = "2019/05/19",
                        };
                        plg.purchaselist.Add(g1);
                        await plg.Init();
                    }
                    else
                    {
                        plg.PostSearchPurchaseListToIDAsync(Global.non_user_id, -99, 0, 0);
                        await plg.Init();
                    }
                }
            }
            else // 쇼핑몰이 선택 되었을 경우
            {
                ShopSelectImage.Source        = "main_shop_h.png";
                TapShopingGridLabel.TextColor = Color.CornflowerBlue;
                GiftSelectImage.Source        = "main_gift_non.png";
                TapGiftGridLabel.TextColor    = Color.Black;

                TabListColorChange(0);

                if (Global.b_user_login)                                                       // 로그인 상태인 경우
                {
                    pls.purchaseList = SH_DB.PostSearchPurchaseListToID(Global.ID, -99, 0, 0); // 사용자 아이디로 구매 목록 가져옴
                    pls.Init();
                }
                else
                {
                    pls.purchaseList = SH_DB.PostSearchPurchaseListToID(Global.non_user_id, -99, 0, 0); // 사용자 아이디로 구매 목록 가져옴
                    pls.Init();
                }
            }
            ((CustomLabel)ListAllGrid.Children[0]).TextColor     = Color.CornflowerBlue;
            ((BoxView)ListAllGrid.Children[1]).BackgroundColor   = Color.CornflowerBlue;
            ((CustomLabel)ListYearGrid.Children[0]).TextColor    = Color.Black;
            ((BoxView)ListYearGrid.Children[1]).BackgroundColor  = Color.White;
            ((CustomLabel)ListMonthGrid.Children[0]).TextColor   = Color.Black;
            ((BoxView)ListMonthGrid.Children[1]).BackgroundColor = Color.White;
            ((CustomLabel)ListDayGrid.Children[0]).TextColor     = Color.Black;
            ((BoxView)ListDayGrid.Children[1]).BackgroundColor   = Color.White;

            // 로딩완료
            await Global.LoadingEndAsync();
        }
        public async void DoPurchase(string address)
        {
            string userid        = "";
            string isuser        = "";
            string delivery_type = "";

            if (Global.b_user_login)
            {
                userid = Global.ID;
                isuser = "******";
            }
            else
            {
                userid = Global.non_user_id;
                isuser = "******";
            }

            // 선불 착불 선택
            if (prepaymentradio.Source.ToString().Contains("radio_checked_icon.png"))
            {
                delivery_type = "1";
            }
            else
            {
                delivery_type = "2";
            }

            G_PurchaseList classPurchase = new G_PurchaseList
            {
                ID = userid,                                                  // 구매자 ID
                PL_DELIVERY_ADDRESS = address,                                // 배송지 도로명 주소
                PL_USED_POINT       = UsedPoint.ToString(),                   // 사용 포인트
                PL_ISSUCCESS        = "",                                     // 성공여부
                PL_DELIVERYPAY_TYPE = delivery_type,                          // 배송타입(1: 선불 2: 착불)
                PL_PAYMENT_PRICE    = order_price_to_db.ToString(),           // 총 결제금액
                AC_NUM                = (Combo.SelectedIndex + 1).ToString(), // 계좌번호
                PL_ACCUSER_NAME       = Name_box.Text,                        // 입금예정자이름
                PL_DV_NAME            = MyNameLabel.Text,                     // 배송받는사람이름
                PL_DV_PHONE           = MyPhoneLabel.Text,                    // 배송시 연락처
                PL_DELIVERY_JIBUNADDR = jibunAddr,                            // 배송지 지번 주소
                PL_DELIVERY_ZIPNO     = zipNo,                                // 배송지 우편번호
                G_TempProduct         = tempBasketList,                       // 상품가격, 상품번호 등 상품권 정보 클래스
                ISUSER                = isuser,
            };

            // 리스트를 WCF 로 보낼 방법..........................................................................................


            //// JSON 문자열을 파싱하여 JObject를 리턴
            //JObject jo = JObject.Parse(str);

            #region 네트워크 상태 확인
            var current_network = Connectivity.NetworkAccess; // 현재 네트워크 상태
            if (current_network == NetworkAccess.Internet)    // 네트워크 연결 가능
            {
                var          dataString = JsonConvert.SerializeObject(classPurchase);
                JObject      jo         = JObject.Parse(dataString);
                UTF8Encoding encoder    = new UTF8Encoding();

                string str = @"{";
                str += "g_PurchaseList:" + jo.ToString();  //아이디찾기에선 Name으로
                str += "}";

                JObject jo2 = JObject.Parse(str);

                byte[] data = encoder.GetBytes(jo2.ToString()); // a json object, or xml, whatever...

                //request.Method = "POST";
                HttpWebRequest request = WebRequest.Create(Global.WCFURL + "UserAddPurchase") as HttpWebRequest;
                request.Method        = "POST";
                request.ContentType   = "application/json";
                request.ContentLength = data.Length;

                //request.Expect = "application/json";

                request.GetRequestStream().Write(data, 0, data.Length);

                using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                {
                    if (response.StatusCode != HttpStatusCode.OK)
                    {
                        Console.Out.WriteLine("Error fetching data. Server returned status code: {0}", response.StatusCode);
                    }
                    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                    {
                        var    readdata = reader.ReadToEnd();
                        string test     = JsonConvert.DeserializeObject <string>(readdata);
                        if (test == "1") // 구매 성공했을 경우
                        {
                            for (int j = 0; j < tempBasketList.Count; j++)
                            {
                                giftDBFunc.PostDeleteGiftBasketListToIndex(tempBasketList[j].BASKET_INDEX);
                            }


                            await DisplayAlert("알림", "결제 완료! 구매내역에서 확인해주세요.", "확인");

                            Global.isPurchaseDeatailBtn_clicked = true;

                            Global.InitOnAppearingBool("deal");
                            await Navigation.PopToRootAsync();

                            MainPage mp = (MainPage)Application.Current.MainPage.Navigation.NavigationStack[0];
                        }
                        else if (test == "5") // 수량 부족으로 실패했을 경우
                        {
                            await DisplayAlert("알림", "수량 부족으로 결제에 실패했습니다.", "확인");

                            Global.isPurchaseDeatailBtn_clicked = true;
                        }

                        /*
                         * // 3개의 아웃풋이 있는데 사실상 1개만 쓸 예정.
                         * else if (int.Parse(test2[0].ToString()) == 2)
                         * {
                         *  if (test2[1] != null && test2[1] != "")
                         *  {
                         *      string[] proinfos = test2[1].Split('@');
                         *      string[] procnts = test2[2].Split('@');
                         *      string errormessage = "";
                         *      for (int i = 0; i < proinfos.Length - 1; i++)
                         *      {
                         *          errormessage += proinfos[i] + "가 " + procnts[i] + "개 있습니다";
                         *      }
                         *      DisplayAlert("알림", errormessage, "OK");
                         *      Global.isPurchaseDeatailBtn_clicked = true;
                         *  }
                         * }
                         */
                        else
                        {
                            await DisplayAlert("알림", "서버점검중입니다", "확인");

                            Global.isPurchaseDeatailBtn_clicked = true;
                        }
                    }
                }
            }
            else
            {
                await DisplayAlert("알림", "네트워크에 연결할 수 없습니다. 다시 한번 시도해주세요.", "확인");

                Global.isPurchaseDeatailBtn_clicked = true;
                return;
            }
            #endregion
        }