Example #1
0
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/api/route/{from}/{destination}", async context =>
                {
                    try
                    {
                        var from        = context.Request.RouteValues["from"];
                        var destination = context.Request.RouteValues["destination"];


                        var result = CalculateRoute(from.ToString(), destination.ToString());

                        if (result.HasErrors)
                        {
                            await context.BadRequest(result.Errors);
                            return;
                        }

                        await context.Ok(result.ToString());
                    }
                    catch (Exception e)
                    {
                        await context.InternalServerError(e);
                    }
                });

                endpoints.MapPost("/api/route", async context =>
                {
                    try
                    {
                        using var newRoute = new StreamReader(context.Request.Body);

                        var result = RouteFile.WriteFile(CSV_FILE, await newRoute.ReadLineAsync());

                        if (result.HasErrors)
                        {
                            await context.BadRequest(result.Errors);
                            return;
                        }

                        await context.Created("Route included successfully!");
                    }
                    catch (Exception e)
                    {
                        await context.InternalServerError(e);
                    }
                });
            });
        }