//PersonalController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication3.Models;
namespace WebApplication3.Controllers
{
public class PersonalController : Controller
{
public void my_viewbags(int _department_id, int _asset_id)
{
var _department = department_manager.get_all();
var _asset = asset_manager.get_all();
ViewBag.department_dropdownlist = new SelectList(_department, "id", "name", _department_id);
ViewBag.asset_dropdownlist = new SelectList(_asset, "id", "asset1", _asset_id);
}
// GET: Personal
public ActionResult Index()
{
var _personal = personal_manager.get_all();
return View(_personal.OrderBy(x=>x.name));
}
// GET: Personal/Details/5
public ActionResult Details(int id)
{
return View();
}
// GET: Personal/Create
public ActionResult Create()
{
my_viewbags(0,0);
return View();
}
// POST: Personal/Create
[HttpPost]
public ActionResult Create(FormCollection collection)
{
try
{
// TODO: Add insert logic here
if (collection["name"] == "")
{
ViewBag.error_message = "please enter name";
my_viewbags(0,0);
return View();
}
if(personal_manager.check_duplicate(collection["name"]))
{
ViewBag.error_message = collection["name"] + " already exists";
my_viewbags(0,0);
return View();
}
var _personal = new personal_dto()
{
id = Convert.ToInt32(collection["id"]),
name = collection["name"],
deparment_id = Convert.ToInt32(Request.Form["department_dropdownlist"]),
asset_id = Convert.ToInt32(Request.Form["asset_dropdownlist"])
};
personal_manager.add(_personal);
TempData["index_status"] = collection["name"] + " is created";
return RedirectToAction("Index");
}
catch
{
return View();
}
}
// GET: Personal/Edit/5
public ActionResult Edit(int id=0)
{
var _personal = personal_manager.find(id);
my_viewbags(_personal.deparment_id,_personal.asset_id);
return View(_personal);
}
// POST: Personal/Edit/5
[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: Add update logic here
var _personal = personal_manager.find(id);
if (collection["name"] == "")
{
ViewBag.error_message = "please enter name";
my_viewbags(_personal.deparment_id, _personal.asset_id);
return View();
}
//name changed but coincide with another existing name
if (collection["name"] != _personal.name && personal_manager.check_duplicate(collection["name"]))
{
ViewBag.error_message = collection["name"] + " already exists";
my_viewbags(_personal.deparment_id, _personal.asset_id);
return View();
}
var new_personal = new personal_dto()
{
id = Convert.ToInt32(collection["id"]),
name = collection["name"],
deparment_id = Convert.ToInt32(Request.Form["department_dropdownlist"]),
asset_id = Convert.ToInt32(Request.Form["asset_dropdownlist"])
};
personal_manager.update(id, new_personal);
TempData["index_status"] = collection["name"] + " is updated";
return RedirectToAction("Index");
}
catch
{
return View();
}
}
// GET: Personal/Delete/5
public ActionResult Delete(int id)
{
var _name = personal_manager.find(id).name;
personal_manager.delete(id);
TempData["index_status"] = _name + " is deleted";
return RedirectToAction("Index");
}
// POST: Personal/Delete/5
[HttpPost]
public ActionResult Delete(int id, FormCollection collection)
{
try
{
// TODO: Add delete logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}
-----------------------------------------------------------
//~/Views/Index.cshtml
@model IEnumerable<WebApplication3.Models.personal_dto>
@{
ViewBag.Title = "personal";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table table-striped">
<tr>
<th>
@Html.DisplayNameFor(model => model.name)
</th>
<th>
@Html.DisplayNameFor(model => model.deparment_name)
</th>
<th>
@Html.DisplayNameFor(model => model.asset_name)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
<td>
@Html.DisplayFor(modelItem => item.deparment_name)
</td>
<td>
@Html.DisplayFor(modelItem => item.asset_name)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.id }) |
@Html.ActionLink("Details", "Details", new { id=item.id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.id }, new { onclick = "return confirm('Are you sure you wish to delete?');" })
</td>
</tr>
}
</table>
<div class="form-group">
<div>
@if (TempData["index_status"] != null)
{
@Html.Label("status:", htmlAttributes: new { @class = "text-left text-index-status col-md-1" })
@Html.Label("status", (string)TempData["index_status"], htmlAttributes: new { @class = "text-left text-index-status col-md-11" })
}
</div>
</div>
-------------------------------------------------------------------------
//~/Views/Create.cshtml
@model WebApplication3.Models.personal_dto
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>personal_dto</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.deparment_name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("department_dropdownlist", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.deparment_name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.asset_name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("asset_dropdownlist", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.asset_name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div>
@if (ViewBag.error_message != null)
{
@Html.Label("error:", htmlAttributes: new { @class = "text-right text-danger col-md-2" })
@Html.Label("error", (string)ViewBag.error_message, htmlAttributes: new { @class = "text-left text-danger col-md-10" })
}
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
-------------------------------------------------------
//~/Views/Edit.cshtml
@model WebApplication3.Models.personal_dto
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>personal_dto</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.id)
<div class="form-group">
@Html.LabelFor(model => model.name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.deparment_name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("department_dropdownlist", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.deparment_name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.asset_name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("asset_dropdownlist", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.asset_name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div>
@if (ViewBag.error_message != null)
{
@Html.Label("error:", htmlAttributes: new { @class = "text-right text-danger col-md-2" })
@Html.Label("error", (string)ViewBag.error_message, htmlAttributes: new { @class = "text-left text-danger col-md-10" })
}
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
------------------------------------------------------------------------------
//~/App_Start/BundleConfig.cs
using System.Web;
using System.Web.Optimization;
namespace WebApplication3
{
public class BundleConfig
{
// For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css",
"~/Content/Mystyle.css"));
}
}
}
---------------------------------------------------------
//~/Content/MyStyle.css
body {
}
.text-index-status{
color:gold;
font-weight: bold;
font-size: 18px;
}
-----------------------------------------------------------------------
//~/Models/personal_manager.cs
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using WebApplication3.sql_data;
namespace WebApplication3.Models
{
public class personal_manager
{
public static testEntities3 db = new testEntities3();
public static List<personal_dto> get_all()
{
var _personal = db.personals.Select(x => new personal_dto
{
id = x.id,
name = x.name,
asset_name = db.assets.FirstOrDefault(y => y.id == x.asset_id).asset1,
deparment_name = db.departments.FirstOrDefault(z => z.id == x.deparment_id).name
}).ToList();
return _personal;
}
public static void add(personal_dto _personal)
{
var new_personal = new personal
{
id = _personal.id,
name = _personal.name,
asset_id = _personal.asset_id,
deparment_id = _personal.deparment_id
};
db.personals.Add(new_personal);
db.SaveChanges();
}
public static void delete(int _id)
{
var _personal = db.personals.Find(_id);
db.personals.Remove(_personal);
db.SaveChanges();
}
public static bool check_duplicate(string _name)
{
var _personal = db.personals.FirstOrDefault(x => x.name == _name);
if(_personal==null)
{
return false;
}
else
{
return true;
}
}
public static personal_dto find(int _id)
{
var _personal = db.personals.Find(_id);
var _personal_dto = new personal_dto()
{
id = _personal.id,
name = _personal.name,
deparment_id = Convert.ToInt32( _personal.deparment_id),
asset_id = Convert.ToInt32(_personal.asset_id)
};
return _personal_dto;
}
public static void update(int _id, personal_dto _personal)
{
var new_personal = db.personals.Find(_id);
new_personal.name = _personal.name;
new_personal.deparment_id = _personal.deparment_id;
new_personal.asset_id = _personal.asset_id;
db.SaveChanges();
}
}
public class personal_dto
{
public int id { get; set; }
public string name { get; set; }
public int deparment_id { get; set; }
public string deparment_name { get; set; }
public int asset_id { get; set; }
public string asset_name { get; set; }
}
}
--------------------------------------------------------------
//~/Models/department_manager.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication3.Models
{
public class department_manager
{
public static List<department_dto> get_all()
{
var _department = personal_manager.db.departments.Select(x => new department_dto
{
id=x.id,
name=x.name
}).ToList();
return _department;
}
public static int find(int _id)
{
var department_id = personal_manager.db.personals.FirstOrDefault(x => x.id == _id).deparment_id;
return Convert.ToInt32( department_id);
}
}
public class department_dto
{
public int id { get; set; }
public string name { get; set; }
}
}
Reference:
http://www.itorian.com/2013/05/three-ways-to-populate-selected-value.html
http://stackoverflow.com/questions/22991387/how-to-set-default-value-for-asp-net-mvc-dropdownlist-from-model
http://stackoverflow.com/questions/27901175/how-to-get-dropdownlist-selectedvalue-in-controller-in-mvc
http://stackoverflow.com/questions/11103288/html-label-color-in-asp-net-mvc
http://stackoverflow.com/questions/7190682/add-html-textbox-value-from-viewbag
http://stackoverflow.com/questions/16083794/how-to-add-new-css-class-in-html-textbox-mvc4
https://msdn.microsoft.com/en-us/library/bb398783(v=vs.110).aspx
http://stackoverflow.com/questions/14892030/how-to-change-defult-css-file-which-is-apply-to-the-layout-cshtml-using-code-in
http://www.w3schools.com/bootstrap/bootstrap_tables.asp
No comments:
Post a Comment