private void AddSeedsForNewUserRequestsFromLibris() { try { var sigels = ConfigurationManager.AppSettings["librarySigel"].Split(',').Select(x => x.Trim()).ToList(); foreach (var sigel in sigels) { var addressStr = ConfigurationManager.AppSettings["librisApiBaseAddress"] + "/api/userrequests/" + sigel; var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("api-key", ConfigurationManager.AppSettings["librisApiKey"]); var task = httpClient.GetStringAsync(new Uri(addressStr)); task.Wait(); var userRequestsQueryResult = JsonConvert.DeserializeObject <dynamic>(task.Result); var userRequests = userRequestsQueryResult.user_requests; for (int index = 0; index < userRequestsQueryResult.count.Value; index++) { try { var req = userRequests[index]; var seed = new OrderItemSeedModel(); seed.Id = "LIBRIS-LTB-" + req.request_id.Value; if (!OrderWithSeedIdAlreadyExists(seed.Id)) { seed.PatronEmail = req.user.email.Value; seed.PatronName = req.user.full_name.Value; seed.PatronCardNumber = req.user.library_card.Value; seed.DeliveryLibrarySigel = sigel; seed.Message = "Författare: " + ReplaceWithNotAvailableIfEmptyString(req.author.Value) + "\n" + "Titel: " + ReplaceWithNotAvailableIfEmptyString(req.title.Value) + "\n" + "Utgivning: " + ReplaceWithNotAvailableIfEmptyString(req.imprint.Value) + "\n" + "ISBN/ISSN: " + ReplaceWithNotAvailableIfEmptyString(req.isxn.Value) + "\n" + "Meddelande från låntagare: " + ReplaceWithNotAvailableIfEmptyString(req.user_message.Value); seed.MessagePrefix = "LIBRIS LÅNTAGARBESTÄLLNING" + "\n\n" + ConfigurationManager.AppSettings["librisApiBaseAddress"] + ConfigurationManager.AppSettings["librisApiUserRequestSuffix"] + "\n\n"; _seeds.Add(seed); } } catch (Exception e) { var msg = "Error when trying to add seed for a new user request. "; _result.Errors++; _result.Messages.Add(msg + e.Message); _umbraco.LogError <LibrisOrderItemsSource>(msg, e); } } } } catch (Exception e) { throw new SourcePollingException("Error when trying to add seeds for new user requests.", e); } }
public IPatronDataProvider Connect() { try { _connection.Open(); } catch (Exception e) { _umbraco.LogError <Sierra>("Failed to open connection with Sierra.", e); } return(this); // For call chaining }