Exemplo n.º 1
0
        protected override void OnDoWork(DoWorkEventArgs e)
        {
            while (!CancellationPending)
            {
                foreach (var campSite in campSites)
                {
                    string message = null;

                    var canReservation = HttpManager.PossibleReservation(campSite.StartDate, campSite.Idx,
                                                                         campSite.SiteName);
                    if (!string.IsNullOrEmpty(canReservation))
                    {
                        new GcmManager().SendNotification("날짜찾기 성공", campSite.CampName);

                        campSite.RoomCount = HttpManager.GetFreeRoomCount(campSite.StartDate, campSite.Idx,
                                                                          campSite.GroupIdx);
                        var cost = HttpManager.GetCost(campSite.StartDate, campSite.SiteNumber, campSite.GroupIdx);
                        campSite.Cost = int.Parse(cost);

                        var resultHtml = HttpManager.DoReservation(People, campSite);

                        int    startIndex = 0;
                        string startText  = "src=";
                        string endText    = "\"";

                        while (true)
                        {
                            startIndex = resultHtml.IndexOf(startText, startIndex + 1);
                            if (startIndex == -1)
                            {
                                break;
                            }
                            string resultText =
                                resultHtml.Substring(startIndex + startText.Length,
                                                     resultHtml.IndexOf(endText, startIndex) - startIndex - startText.Length)
                                .Trim();
                            HttpManager.SendSms(resultText);

                            message = string.Format("{0} {1}", "성공", campSite.StartDate.ToString("MM-dd"));

                            new GcmManager().SendNotification(message, campSite.CampName);

                            ReportProgress(0, message);

                            CancelAsync();
                            break;
                        }
                    }
                    else
                    {
                        message = string.Format("{0} {1}", "자리없음", campSite.StartDate.ToString("yyyy-MM-dd"));
                    }



                    ReportProgress(0, message);
                    Thread.Sleep(1000);
                }
            }
        }