Esempio n. 1
0
        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"));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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
            }));
        }
Esempio n. 8
0
        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"));
        }