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 int CreateOrderItemInDbFromOrderItemSeedModel(OrderItemSeedModel model, bool doReindex = true, bool doSignal = true) { // Temporary OrderId with MD5 Hash var orderId = "cthb-" + Helpers.CalculateMD5Hash(DateTime.Now.Ticks.ToString()); var contentName = orderId; // Create the OrderItem var uh = new Umbraco.Web.UmbracoHelper(Umbraco.Web.UmbracoContext.Current); IContent content = _contentService.CreateContent(contentName, uh.TypedContentAtXPath("//" + ConfigurationManager.AppSettings["umbracoOrderListContentDocumentType"]).First().Id, "ChalmersILLOrderItem"); // Set properties content.SetValue("originalOrder", model.Message); content.SetValue("reference", model.MessagePrefix + model.Message); content.SetValue("patronName", model.PatronName); content.SetValue("patronEmail", model.PatronEmail); content.SetValue("patronCardNo", model.PatronCardNumber); content.SetValue("followUpDate", DateTime.Now); content.SetValue("editedBy", ""); content.SetValue("status", _umbraco.DataTypePrevalueId(ConfigurationManager.AppSettings["umbracoOrderStatusDataTypeDefinitionName"], "01:Ny")); content.SetValue("pType", model.SierraPatronInfo.ptype); content.SetValue("homeLibrary", model.SierraPatronInfo.home_library); content.SetValue("log", JsonConvert.SerializeObject(new List <LogItem>())); content.SetValue("attachments", JsonConvert.SerializeObject(new List <OrderAttachment>())); content.SetValue("sierraInfo", JsonConvert.SerializeObject(model.SierraPatronInfo)); content.SetValue("sierraPatronRecordId", model.SierraPatronInfo.record_id); content.SetValue("seedId", model.Id); if (model.DeliveryLibrarySigel == "Z") { content.SetValue("deliveryLibrary", _umbraco.DataTypePrevalueId(ConfigurationManager.AppSettings["umbracoOrderDeliveryLibraryDataTypeDefinitionName"], "Huvudbiblioteket")); } else if (model.DeliveryLibrarySigel == "ZL") { content.SetValue("deliveryLibrary", _umbraco.DataTypePrevalueId(ConfigurationManager.AppSettings["umbracoOrderDeliveryLibraryDataTypeDefinitionName"], "Lindholmenbiblioteket")); } else if (model.DeliveryLibrarySigel == "ZA") { content.SetValue("deliveryLibrary", _umbraco.DataTypePrevalueId(ConfigurationManager.AppSettings["umbracoOrderDeliveryLibraryDataTypeDefinitionName"], "Arkitekturbiblioteket")); } else if (!String.IsNullOrEmpty(model.SierraPatronInfo.home_library)) { if (model.SierraPatronInfo.home_library.ToLower() == "hbib") { content.SetValue("deliveryLibrary", _umbraco.DataTypePrevalueId(ConfigurationManager.AppSettings["umbracoOrderDeliveryLibraryDataTypeDefinitionName"], "Huvudbiblioteket")); } else if (model.SierraPatronInfo.home_library.ToLower() == "abib") { content.SetValue("deliveryLibrary", _umbraco.DataTypePrevalueId(ConfigurationManager.AppSettings["umbracoOrderDeliveryLibraryDataTypeDefinitionName"], "Arkitekturbiblioteket")); } else if (model.SierraPatronInfo.home_library.ToLower() == "lbib") { content.SetValue("deliveryLibrary", _umbraco.DataTypePrevalueId(ConfigurationManager.AppSettings["umbracoOrderDeliveryLibraryDataTypeDefinitionName"], "Lindholmenbiblioteket")); } else { content.SetValue("deliveryLibrary", ""); } } // Save the OrderItem to get an Id SaveWithoutEventsAndWithSynchronousReindexing(content, false, false); // Shorten the OrderId and include the NodeId content.SetValue("orderId", orderId.Substring(0, 13) + "-" + content.Id.ToString()); content.Name = orderId.Substring(0, 13) + "-" + content.Id.ToString(); // Save SaveWithoutEventsAndWithSynchronousReindexing(content, doReindex, doSignal); return(content.Id); }