private List <ISSStationItem> GetStationsFromApi() { var client = new RestClient(_configService.Custom["iss_system_url"]); var request = new RestRequest(ISSAdditionalDataEnum.station.ToString(), Method.POST); var cmpId = _configService.Custom["iss_system_cmp_id"]; var cmpHash = _configService.Custom["iss_system_cmp_hash"]; var currentTime = DateTime.Now.ToString("yyyyMMddHHmmss"); var calculateHash = MD5Generator.CalculateMD5Hash(cmpId, currentTime, cmpHash); request.AddParameter("cmp_id", cmpId); request.AddParameter("datetime", currentTime); request.AddParameter("hash", calculateHash); var response = client.Execute(request); return(response.Content .Split('\n') .Select(s => { var split = s.Split('|'); return new ISSStationItem { stationId = int.Parse(split[0]), value = split[1], }; }) .ToList()); }
public async Task <string> GetGravatarImage(string email) { try { var hash = MD5Generator.CalculateMD5Hash(email.ToLower().Trim()); var gravatarUri = new Uri($"/avatar/{hash}?d=404", UriKind.Relative); var res = await _client.GetAsync(gravatarUri); res.EnsureSuccessStatusCode(); return(new Uri(_client.BaseAddress, $"/avatar/{hash}").AbsoluteUri); } catch (Exception ex) { _logger.LogError($"Error obtaining gravatar image\n\t{ex.Message}"); } return(string.Empty); }
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); } }