blob: 9f6cf0c10c2b351769da28d6aec645c60107096f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
using System.Data;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using MyDarling.Models;
namespace MyDarling.Controllers
{
[Authorize]
public class FigureController : Controller
{
private DataContext context;
private IWebHostEnvironment environment;
public FigureController(DataContext context, IWebHostEnvironment environment)
{
this.context = context;
this.environment = environment;
}
public async Task<IActionResult> Details(int id)
{
return View(await context.Figures.Where(f => f.Id == id).FirstOrDefaultAsync());
}
[HttpPost]
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
{
return NotFound();
}
var figure = await context.Figures.FindAsync(id);
if (figure == null)
{
return NotFound();
}
var bundle = await context.UnderwearBundles
.Where(b => b.Figures.Contains(figure))
.FirstOrDefaultAsync();
if (await TryUpdateModelAsync<Figure>(
figure,
"",
f => f.Description))
{
try
{
await context.SaveChangesAsync();
return RedirectToAction("Details", "Bundle", new { Id = bundle?.Id});
}
catch (SystemException)
{
ModelState.AddModelError("", "Unable to save changes");
}
}
return View(figure);
}
[HttpPost]
public async Task<ActionResult> Delete(int id)
{
var figureToDelete = await context.Figures.FindAsync(id);
if (figureToDelete == null)
{
return NotFound();
}
try
{
FileInfo figureFile = new FileInfo(environment.WebRootPath + figureToDelete.FilePath);
if (figureFile.Exists)
{
figureFile.Delete();
}
context.Figures.Remove(figureToDelete);
await context.SaveChangesAsync();
return RedirectToAction(nameof(Index), "Bundle");
}
catch (DbUpdateException)
{
return RedirectToAction(nameof(Delete), new { id = id, saveChangesError = true });
}
}
}
}
|