示例#1
0
        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());
        }
示例#2
0
        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);
        }
示例#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);
            }
        }