public async Task <ObjectResult> CancelHolds([FromBody] CancelHoldsRequest request) { if (request == null) { return(new BadRequestObjectResult("Null request.")); } if (request.ListHoldIds.IsNullOrEmpty()) { return(new BadRequestObjectResult("No Hold Ids provided.")); } if (request.ListMetadataIds.IsNullOrEmpty()) { return(new BadRequestObjectResult("No metadataids provided")); } if (request.ListHoldIds.Count != request.ListMetadataIds.Count) { return(new BadRequestObjectResult("A different number of hold ids than metadata ids.")); } WcclsWebScraping scraping = new WcclsWebScraping(_sessionInfo.Client, _systemClock); try { await scraping.CancelHolds(_sessionInfo.UserId, request.ListHoldIds, request.ListMetadataIds); } catch (Exception e) { return(new BadRequestObjectResult("bad")); } return(Ok("Success")); }
public async Task <ObjectResult> PauseHolds([FromBody] PauseHoldsRequest request) { if (request == null) { return(new BadRequestObjectResult("Null request.")); } if (request.EndDate <= _systemClock.UtcNow.LocalDateTime) { return(new BadRequestObjectResult("Bad EndDate")); } if (request.ListHoldIds.IsNullOrEmpty()) { return(new BadRequestObjectResult("No Hold Ids provided.")); } PauseHoldsResult result; WcclsWebScraping scraping = new WcclsWebScraping(_sessionInfo.Client, _systemClock); try { result = await scraping.PauseHolds(_sessionInfo.UserId, request.ListHoldIds, request.EndDate, request.IsCurrentlyActive); } catch (Exception e) { return(new BadRequestObjectResult("bad")); } return(Ok(result)); }
public async Task <ObjectResult> RenewItem([FromBody] RenewItemsRequest request) { if (request?.ListCheckoutIds == null || request.ListCheckoutIds.Count == 0) { return(new BadRequestObjectResult("Checkout IDs required")); } WcclsWebScraping scraping = new WcclsWebScraping(_sessionInfo.Client, _systemClock); RenewItemsResult result = await scraping.RenewItems(request.ListCheckoutIds, _sessionInfo.UserId); return(Ok(result)); }
public async Task <ObjectResult> GetHolds() { WcclsWebScraping scraping = new WcclsWebScraping(_sessionInfo.Client, _systemClock); HoldsResult result; try { result = await scraping.GetHolds(_sessionInfo.UserId); } catch (Exception e) { return(new BadRequestObjectResult("bad")); } return(Ok(result)); }
public async Task <ObjectResult> Borrowing([FromQuery] string sessionId) { if (string.IsNullOrWhiteSpace(sessionId)) { return(new BadRequestObjectResult("Invalid Session Id.")); } WcclsWebScraping scraping = new WcclsWebScraping(_sessionInfo.Client, _systemClock); Borrowing retVal; try { retVal = await scraping.GetBorrowing(); } catch (Exception e) { return(new BadRequestObjectResult("bad")); } return(Ok(retVal)); }
public async Task <ObjectResult> ResumeHolds([FromBody] ResumeHoldsRequest request) { if (request == null) { return(new BadRequestObjectResult("Null request.")); } if (request.ListHoldIds.IsNullOrEmpty()) { return(new BadRequestObjectResult("No Hold Ids provided.")); } ResumeHoldsResult result; WcclsWebScraping scraping = new WcclsWebScraping(_sessionInfo.Client, _systemClock); try { result = await scraping.ResumeHolds(_sessionInfo.UserId, request.ListHoldIds); } catch (Exception e) { return(new BadRequestObjectResult("bad")); } return(Ok(result)); }
public async Task <ObjectResult> Login([FromQuery] LoginRequest request) { if (string.IsNullOrWhiteSpace(request?.Username) || string.IsNullOrWhiteSpace(request?.Password)) { return(new BadRequestObjectResult("Invalid Username or Password.")); } CookieContainer container = new CookieContainer(); using HttpClient client = new HttpClient(new HttpClientHandler { CookieContainer = container }); WcclsWebScraping scraping = new WcclsWebScraping(client, _systemClock); (long userId, string username) = await scraping.Login(request.Username, request.Password); if (userId <= 0) { return(BadRequest("Invalid Username or Password.")); } string sessionGuid = _sessionCache.AddSession(container, userId); return(Ok(new LoginResult { Username = username, SessionId = sessionGuid, PaymentUrl = PAYMENT_URL })); }
public async Task <ObjectResult> ChangeHoldsLocation([FromBody] ChangeHoldsLocationRequest request) { if (request == null) { return(new BadRequestObjectResult("Null request.")); } if (request.ListHoldIds.IsNullOrEmpty()) { return(new BadRequestObjectResult("No Hold Ids provided.")); } if (request.NewLocation == Library.Unknown || request.NewLocation == Library.WCCLSCourier) { return(new BadRequestObjectResult($"Invalid library: {request.NewLocation.ToString()}")); } WcclsWebScraping scraping = new WcclsWebScraping(_sessionInfo.Client, _systemClock); try { await scraping.ChangeHoldsLocation(_sessionInfo.UserId, request.ListHoldIds, request.NewLocation); } catch (Exception e) { return(new BadRequestObjectResult("bad")); } return(Ok("Success")); }