Skip to content

Commit

Permalink
Fixed editing of Tags descriptions
Browse files Browse the repository at this point in the history
  • Loading branch information
dzaliznyak committed Jan 28, 2019
1 parent 73b50f2 commit 61bc69a
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 78 deletions.
52 changes: 15 additions & 37 deletions PaymentGateway/Controllers/TagMerchantsController.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using PaymentGateway.Data;
using PaymentGateway.Models.TagMerchantViewModels;
using PaymentGateway.Models.Tags;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;

namespace PaymentGateway.Controllers
{
Expand All @@ -22,13 +20,11 @@ public TagMerchantsController(ApplicationDbContext context)
_context = context;
}

// GET: TagMerchants
public async Task<IActionResult> Index()
{
return View(await _context.TagMerchant.Where(x=>x.User.Id == GetUserId()).ToListAsync());
}

// GET: TagMerchants/Details/5
public async Task<IActionResult> Details(int? id)
{
if (id == null)
Expand All @@ -51,15 +47,11 @@ public async Task<IActionResult> Details(int? id)
return View(tagMerchant);
}

// GET: TagMerchants/Create
public IActionResult Create()
{
return View();
}

// POST: TagMerchants/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Name,Description")] TagMerchant tagMerchant)
Expand All @@ -76,7 +68,6 @@ public async Task<IActionResult> Create([Bind("Id,Name,Description")] TagMerchan
return View(tagMerchant);
}

// GET: TagMerchants/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
Expand All @@ -97,47 +88,35 @@ public async Task<IActionResult> Edit(int? id)
return View(tagMerchant);
}

// POST: TagMerchants/Edit/5
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,Name,Description")] TagMerchant tagMerchant)
public async Task<IActionResult> Edit(int id, [Bind("Id,Name,Description")] TagMerchantViewModel model)
{
if (id != tagMerchant.Id)
{
return NotFound();
}
var tagMerchant = await _context.TagMerchant
.SingleOrDefaultAsync(s => s.Id == id && s.User.Id == GetUserId());

if (!CanEditThisConnection(id))
{
if (tagMerchant == null)
return NotFound();
}

if (ModelState.IsValid)
{
try
{
tagMerchant.Name = model.Name;
tagMerchant.Description = model.Description;

_context.Update(tagMerchant);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
catch (DbUpdateConcurrencyException)
catch (DbUpdateException ex)
{
if (!TagMerchantExists(tagMerchant.Id))
{
return NotFound();
}
else
{
throw;
}
ModelState.AddModelError("", ex.Message);
}
return RedirectToAction(nameof(Index));
}
return View(tagMerchant);
}

// GET: TagMerchants/Delete/5
public async Task<IActionResult> Delete(int? id)
{
if (id == null)
Expand All @@ -160,7 +139,6 @@ public async Task<IActionResult> Delete(int? id)
return View(tagMerchant);
}

// POST: TagMerchants/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
Expand Down
54 changes: 16 additions & 38 deletions PaymentGateway/Controllers/TagTerminalsController.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using PaymentGateway.Data;
using PaymentGateway.Models.Tags;
using PaymentGateway.Models.TagTerminalViewModels;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;

namespace PaymentGateway.Controllers
{
Expand All @@ -22,13 +20,11 @@ public TagTerminalsController(ApplicationDbContext context)
_context = context;
}

// GET: TagTerminals
public async Task<IActionResult> Index()
{
return View(await _context.TagTerminals.Where(x=>x.User.Id == GetUserId()).ToListAsync());
}

// GET: TagTerminals/Details/5
public async Task<IActionResult> Details(int? id)
{
if (id == null)
Expand All @@ -51,15 +47,11 @@ public async Task<IActionResult> Details(int? id)
return View(tagTerminal);
}

// GET: TagTerminals/Create
public IActionResult Create()
{
return View();
}

// POST: TagTerminals/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Name,Description")] TagTerminal tagTerminal)
Expand All @@ -75,7 +67,6 @@ public async Task<IActionResult> Create([Bind("Id,Name,Description")] TagTermina
return View(tagTerminal);
}

// GET: TagTerminals/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
Expand All @@ -96,47 +87,35 @@ public async Task<IActionResult> Edit(int? id)
return View(tagTerminal);
}

// POST: TagTerminals/Edit/5
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[HttpPost, ActionName("Edit")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,Name,Description")] TagTerminal tagTerminal)
public async Task<IActionResult> EditPost(int id, [Bind("Id,Name,Description")] TagTerminalViewModel model)
{
if (id != tagTerminal.Id)
{
return NotFound();
}
var tagTerminal = await _context.TagTerminals
.SingleOrDefaultAsync(s => s.Id == id && s.User.Id == GetUserId());

if (!CanEditThisConnection(id))
{
if (tagTerminal == null)
return NotFound();
}

if (ModelState.IsValid)
{
try
{
tagTerminal.Name = model.Name;
tagTerminal.Description = model.Description;

_context.Update(tagTerminal);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
catch (DbUpdateConcurrencyException)
catch (DbUpdateException ex)
{
if (!TagTerminalExists(tagTerminal.Id))
{
return NotFound();
}
else
{
throw;
}
ModelState.AddModelError("", ex.Message);
}
return RedirectToAction(nameof(Index));
}
return View(tagTerminal);
}

// GET: TagTerminals/Delete/5
public async Task<IActionResult> Delete(int? id)
{
if (id == null)
Expand All @@ -159,7 +138,6 @@ public async Task<IActionResult> Delete(int? id)
return View(tagTerminal);
}

// POST: TagTerminals/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace PaymentGateway.Models.TagMerchantViewModels
{
public class TagMerchantViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string UserId { get; internal set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace PaymentGateway.Models.TagTerminalViewModels
{
public class TagTerminalViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string UserId { get; internal set; }
}
}
3 changes: 0 additions & 3 deletions PaymentGateway/Models/Tags/TagTerminal.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
using PaymentGateway.Data;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;

namespace PaymentGateway.Models.Tags
{
Expand Down

0 comments on commit 61bc69a

Please sign in to comment.