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)); }
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); } }