From 7c33b3f334cf91918add7af08866f2ea37ed9c3f Mon Sep 17 00:00:00 2001 From: Melodi <62381002+Melodi17@users.noreply.github.com> Date: Thu, 3 Sep 2026 23:06:05 +1000 Subject: chore: initial commit --- src/marlin.web/Controllers/VCSController.cs | 68 +++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/marlin.web/Controllers/VCSController.cs (limited to 'src/marlin.web/Controllers/VCSController.cs') diff --git a/src/marlin.web/Controllers/VCSController.cs b/src/marlin.web/Controllers/VCSController.cs new file mode 100644 index 0000000..86f655b --- /dev/null +++ b/src/marlin.web/Controllers/VCSController.cs @@ -0,0 +1,68 @@ +namespace marlin.web.Controllers; + +using core; +using core.models; +using Data; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +[Route("vcs")] +public class VCSController(ApplicationDbContext dbContext) : Controller +{ + [HttpGet("list")] + public async Task List(CancellationToken ct) + { + var items = await dbContext.Sources + .ToListAsync(ct); + + return this.View(items); + } + + [HttpGet("details/{id}")] + public async Task Details(Guid id, CancellationToken ct) + { + var item = await dbContext.Sources + .FirstOrDefaultAsync(x => x.Id == id, ct); + + if (item == null) + return this.NotFound(); + + return this.View(item); + } + + [HttpPost("edit/{id}")] + public async Task Edit(Guid id, VersionControlSource vcs, CancellationToken ct) + { + var item = await dbContext.Sources + .FirstOrDefaultAsync(x => x.Id == id, ct); + + if (item == null) + return this.NotFound(); + + item.UpstreamUrl = vcs.UpstreamUrl; + item.BranchFilter = vcs.BranchFilter; + item.MainBranch = vcs.MainBranch; + item.MinPollingInterval = vcs.MinPollingInterval; + + await dbContext.SaveChangesAsync(ct); + + return this.RedirectToAction("List"); + } + + [HttpGet("create")] + public async Task Create() + { + return this.View(); + } + + [HttpPost("create")] + public async Task CreatePost(VersionControlSource vcs, CancellationToken ct) + { + vcs.Id = Guid.Empty; + + await dbContext.AddAsync(vcs, ct); + await dbContext.SaveChangesAsync(ct); + + return this.RedirectToAction("Details", new { id = vcs.Id }); + } +} \ No newline at end of file -- cgit v1.3.1