示例#1
0
        public Response GenerateDeliverySchedule(APIGatewayProxyRequest request, ILambdaContext context)
        {
            var getRequestGateway      = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString));
            var driveHelper            = new DriveHelper();
            var utilityHelper          = new UtilityHelper(getRequestGateway);
            var deliveryScheduleObject = new DeliveryScheduleUseCase(getRequestGateway, driveHelper);

            try
            {
                var request_params = request.QueryStringParameters;
                var limit          = Int32.Parse(request_params["limit"]);
                var confirmed      = bool.Parse(request_params["confirmed"]);
                var deliveryDay    = utilityHelper.GetNextWorkingDay(DateTime.Today);
                var resp           = deliveryScheduleObject.CreateDeliverySchedule(limit, confirmed, deliveryDay);
                LambdaLogger.Log(("Records retrieval success: " + resp.ToString()));
                var response = new Response();
                response.isBase64Encoded = true;
                response.statusCode      = "200";
                response.body            = JsonConvert.SerializeObject(resp);
                return(response);
            }
            catch (Exception e)
            {
                LambdaLogger.Log("Error: " + e.Message);
                var response = new Response();
                response.isBase64Encoded = true;
                response.statusCode      = "500";
                response.body            = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace;
                return(response);
            }
        }
示例#2
0
        public Response DeleteDeliveryBatch(APIGatewayProxyRequest request, ILambdaContext context)
        {
            var deleteBatchGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString));
            var driveHelper        = new DriveHelper();
            var deleteBatchObject  = new DeliveryScheduleUseCase(deleteBatchGateway, driveHelper);
            var requestParams      = request.PathParameters;
            int batchId;

            try
            {
                batchId = Int32.Parse(requestParams["id"]);
            }
            catch
            {
                var response = new Response();
                response.isBase64Encoded = true;
                LambdaLogger.Log("No batch id specified.");
                response.statusCode = "400";
                return(response);
            }
            try
            {
                deleteBatchObject.DeleteDeliveryBatch(batchId);
                var response = new Response();
                response.isBase64Encoded = true;
                LambdaLogger.Log("Batch successfully deleted.");
                response.statusCode = "200";
                return(response);
            }
            catch (Exception e)
            {
                LambdaLogger.Log("Error: " + e.Message);
                var response = new Response();
                response.isBase64Encoded = true;
                response.statusCode      = "500";
                response.body            = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace;
                return(response);
            }
        }
示例#3
0
        public Response GetDeliveryBatch(APIGatewayProxyRequest request, ILambdaContext context)
        {
            var getBatchGateway = new INeedHelpGateway(new Cv19SupportDbContext(_connectionString));
            var getBatchObject  = new DeliveryScheduleUseCase(getBatchGateway, null);
            var utilityHelper   = new UtilityHelper(getBatchGateway);

            try
            {
                var deliveryDay = utilityHelper.GetNextWorkingDay(DateTime.Today);
                var resp        = getBatchObject.GetDeliveryBatch(deliveryDay);
                var response    = new Response();
                response.isBase64Encoded = true;
                if (resp == null)
                {
                    LambdaLogger.Log("No batch available for date specified.");
                    response.statusCode = "200";
                }
                else
                {
                    LambdaLogger.Log("Batch retrieval success: " + JsonConvert.SerializeObject(resp));
                    response.statusCode = "200";
                    response.body       = JsonConvert.SerializeObject(resp);
                }
                return(response);
            }
            catch (Exception e)
            {
                LambdaLogger.Log("Error: " + e.Message);
                var response = new Response
                {
                    isBase64Encoded = true,
                    statusCode      = "500",
                    body            = "Error processing request: " + ". Error Details: " + e.Message + e.StackTrace
                };
                return(response);
            }
        }