Controller Product
Home

Controller Product

Controller Product

Chapeau

Probleem

De controller moet de volgende use cases implemeteren:

Design

Oplossing

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Webwinkel.Controllers
{
    public class ProductController : Controller
    {
        public ActionResult Administrating()
        {
            Dal.Product dal = new Dal.Product();

            ViewBag.Message = "Beheer producten";
            ViewBag.DatabaseMessage = dal.Message;
            return View(dal.ReadAll());
        }

        public ActionResult Inserting()
        {
            ViewBag.Message = "Een postcode inserten";
            return View();
        }

        [HttpPost]
        public ActionResult Insert(Models.Product product)
        {
            if (ModelState.IsValid)
            {
                ViewBag.Message = "Insert een product in de database";
                Dal.Product dal = new Dal.Product(product);
                dal.Create();
                return View("Administrating", dal.ReadAll());
            }
            else
            {
                ModelState.AddModelError(
                    "Ongeldige gegevens", "Naam van product moet ingevuld zijn.");
                return View("Administrating");
            }
        }

        [HttpGet]
        // ? zorgt er voor dat een null value geen fout geeft
        public ActionResult Updating(int? id)
        {
            if (id == null)
            {
                ViewBag.Message = "Ongeldige Id";
                return View();

            }
            else
            {
                // lookup product to update
                Models.Product product = new Models.Product();
                // store Product Id
                product.Id = (int) id;
                Dal.Product dal = new Dal.Product(product);
                product = dal.ReadOne();

                ViewBag.Message = "Updating product";
                return View(product);
            }
        }

        [HttpGet]
        // ? zorgt er voor dat een null value geen fout geeft
        public ActionResult Delete(int? id)
        {
            if (id == null)
            {
                ViewBag.Message = "Ongeldige Id";
                return View("Administrating");

            }
            else
            {
                // lookup product to update
                Models.Product product = new Models.Product();
                // store Product Id
                product.Id = (int)id;
                Dal.Product dal = new Dal.Product(product);
                dal.Delete();

                ViewBag.Message = "Product deleted";
                return View("Administrating", dal.ReadAll());
            }
        }

        [HttpPost]
        // ? zorgt er voor dat een null value geen fout geeft
        public ActionResult Update(Models.Product product)
        {
            if (ModelState.IsValid)
            {
                Dal.Product dal = new Dal.Product(product);
                dal.Update();
                ViewBag.Message = "Product is geüpdated.";
                return View("Administrating", dal.ReadAll());

            }
            else
            {
                ModelState.AddModelError(
                    "Ongeldige gegevens", "Zie details voor meer uitleg.");
                return View("Administrating");
            }
        }
    }
}

JI
2015-10-15 12:50:03