public void SetRedirectUrl(ref SearchTicketFormView model)
        {
            if (!_configService.Custom.ContainsKey(ConfigKeyForRedirectFormat))
            {
                return;
            }
            var format = _configService.Custom[ConfigKeyForRedirectFormat];

            model.EPodroznikRedirectUrl = string.Format(format, model.StartStation, model.EndStation, model.Time, model.Date);
        }
 public ActionResult SearchTicket(SearchTicketFormView model)
 {
     SetCulture(model.CurrentPageCulture);
     if (ModelState.IsValid)
     {
         _iissService.GetAnswerKeyToRedirectToBuyTicket(ref model);
         _ePodroznikService.SetRedirectUrl(ref model);
         _koleoService.SetRedirectUrl(ref model);
     }
     else
     {
         model.AnswerKeyResponse = new ISSResponseModel()
         {
             IsError = true, ErrorCode = "666"
         };
     }
     return(PartialView("Controls/SearchTicket", model));
 }
Example #3
0
        public void GetAnswerKeyToRedirectToBuyTicket(ref SearchTicketFormView model)
        {
            var client  = new RestClient(_configService.Custom["iss_system_url"]);
            var request = new RestRequest(string.Format("redir/{0}", ISSFormTypeEnum.single), Method.POST);

            var cmpId   = _configService.Custom["iss_system_cmp_id"]; //identyfikator firmy
            var cmpHash = _configService.Custom["iss_system_cmp_hash"];

            var dateFrom = model.Date.HasValue ? model.Date.Value.ToString("yyyy-MM-dd") : string.Empty; //data początkowego przejazdu

            var times = model.Time.HasValue ? model.Time.Value.ToString("HH:mm") : string.Empty;         //czasy początkowych odjazdów dla każdego odcinka, oddzielone przecinkami

            var stations = string.Join(",",
                                       GetStationId(model.StartStation),
                                       GetStationId(model
                                                    .EndStation)); //lista identyfikatorów stacji, oddzielonych przecinkami. Zawsze będzie co najmniej stacja początkowa i końcowa.

            var sectionCount = "1";                                //liczba odcinków. Zawsze co najmniej 1.

            var calculateHash =
                MD5Generator.CalculateMD5Hash(cmpId, cmpHash, dateFrom, sectionCount, times,
                                              stations); //hash potwierdzający, że dane są rzeczywiście od podanej wyżej firmy

            request.AddParameter("cmp_id", cmpId);
            request.AddParameter("hash", calculateHash);
            request.AddParameter("kind_stid",
                                 "2"); //opcjonalny, ale zaleca się zawsze używać) – Typ identyfikatora stacji. Jeśli wartością jest 0 lub nie podano parametru, używa wartości domyślnej (hafas).
            request.AddParameter("stations", stations);
            request.AddParameter("section_count", sectionCount);
            request.AddParameter("date_from", dateFrom);
            request.AddParameter("times", times);

            model.AnswerKeyResponse = new ISSResponseModel(client.Execute(request).Content);

            if (!model.AnswerKeyResponse.IsError)
            {
                model.PolRegioRedirectUrl = string.Format("{0}redir?answer_key={1}", _configService.Custom["iss_system_url"], model.AnswerKeyResponse.ResponseMessage);
            }
        }