Saturday 26 December 2015

Add Edit Delete in XML file using MVC

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.Mvc;  
  6. using MvcXML.Models;  
  7. using System.Data;  
  8. using System.Xml.Linq;  
  9. using System.Xml;  
  10. namespace MvcXML.Controllers   
  11. {  
  12.     public class AdminController: Controller   
  13.     {  
  14.         //  
  15.         // GET: /Admin/  
  16.         public ActionResult Index()   
  17.         {  
  18.             List < ProjectModels > lstProject = new List < ProjectModels > ();  
  19.             DataSet ds = new DataSet();  
  20.             ds.ReadXml(Server.MapPath("~/XML/ProjectList.xml"));  
  21.             DataView dvPrograms;  
  22.             dvPrograms = ds.Tables[0].DefaultView;  
  23.             dvPrograms.Sort = "Id";  
  24.             foreach(DataRowView dr in dvPrograms)   
  25.             {  
  26.                 ProjectModels model = new ProjectModels();  
  27.                 model.Id = Convert.ToInt32(dr[0]);  
  28.   
  29.                 model.ProjectName = Convert.ToString(dr[1]);  
  30.   
  31.                 model.Location = Convert.ToString(dr[2]);  
  32.                 lstProject.Add(model);  
  33.             }  
  34.             if (lstProject.Count > 0)   
  35.             {  
  36.                 return View(lstProject);  
  37.             }  
  38.             return View();  
  39.             return View();  
  40.         }  
  41.         ProjectModels model = new ProjectModels();  
  42.         public ActionResult AddEditProject(int ? id)   
  43.                 {  
  44.                 int Id = Convert.ToInt32(id);  
  45.                 if (Id > 0)   
  46.                 {  
  47.                     GetDetailsById(Id);  
  48.                     model.IsEdit = true;  
  49.                     return View(model);  
  50.                 } else   
  51.                 {  
  52.                     model.IsEdit = false;  
  53.                     return View(model);  
  54.                 }  
  55.             }  
  56.             [HttpPost]  
  57.         public ActionResult AddEditProject(ProjectModels mdl)  
  58.             {  
  59.   
  60.             if (mdl.Id > 0) {  
  61.                 XDocument xmlDoc = XDocument.Load(Server.MapPath("~/XML/ProjectList.xml"));  
  62.                 var items = (from item in xmlDoc.Descendants("Project") select item).ToList();  
  63.                 XElement selected = items.Where(p => p.Element("Id").Value == mdl.Id.ToString()).FirstOrDefault();  
  64.   
  65.                 selected.Remove();  
  66.                 xmlDoc.Save(Server.MapPath("~/XML/ProjectList.xml"));  
  67.                 xmlDoc.Element("Projects").Add(new XElement("Project",  
  68.                     new XElement("Id", mdl.Id),  
  69.   
  70.                     new XElement("ProjectName", mdl.ProjectName),  
  71.   
  72.                     new XElement("Location", mdl.Location)  
  73.                 ));  
  74.                 xmlDoc.Save(Server.MapPath("~/XML/ProjectList.xml"));  
  75.   
  76.                 return RedirectToAction("Index""Admin");  
  77.             } else {  
  78.                 XmlDocument oXmlDocument = new XmlDocument();  
  79.                 oXmlDocument.Load(Server.MapPath("~/XML/ProjectList.xml"));  
  80.                 XmlNodeList nodelist = oXmlDocument.GetElementsByTagName("Project");  
  81.                 var x = oXmlDocument.GetElementsByTagName("Id");  
  82.                 int Max = 0;  
  83.                 foreach(XmlElement item in x) {  
  84.                     int EId = Convert.ToInt32(item.InnerText.ToString());  
  85.                     if (EId > Max) {  
  86.                         Max = EId;  
  87.                     }  
  88.                 }  
  89.                 Max = Max + 1;  
  90.                 XDocument xmlDoc = XDocument.Load(Server.MapPath("~/XML/ProjectList.xml"));  
  91.                 xmlDoc.Element("Projects").Add(new XElement("Project",  
  92.                     new XElement("Id", Max),  
  93.   
  94.                     new XElement("ProjectName", mdl.ProjectName),  
  95.   
  96.                     new XElement("Location", mdl.Location)  
  97.                 ));  
  98.                 xmlDoc.Save(Server.MapPath("~/XML/ProjectList.xml"));  
  99.                 return RedirectToAction("Index""Admin");  
  100.             }  
  101.   
  102.         }  
  103.   
  104.         public ActionResult Delete(int Id) {  
  105.             if (Id > 0) {  
  106.                 XDocument xmlDoc = XDocument.Load(Server.MapPath("~/XML/ProjectList.xml"));  
  107.                 var items = (from item in xmlDoc.Descendants("Project") select item).ToList();  
  108.                 XElement selected = items.Where(p => p.Element("Id").Value == Id.ToString()).FirstOrDefault();  
  109.                 selected.Remove();  
  110.                 xmlDoc.Save(Server.MapPath("~/XML/ProjectList.xml"));  
  111.             }  
  112.             return RedirectToAction("Index""Admin");  
  113.   
  114.         }  
  115.   
  116.   
  117.         public void GetDetailsById(int Id) {  
  118.             XDocument oXmlDocument = XDocument.Load(Server.MapPath("~/XML/ProjectList.xml"));  
  119.             var items = (from item in oXmlDocument.Descendants("Project") where Convert.ToInt32(item.Element("Id").Value) == Id select new projectItems {  
  120.                 Id = Convert.ToInt32(item.Element("Id").Value),  
  121.   
  122.                     ProjectName = item.Element("ProjectName").Value,  
  123.   
  124.                     Location = item.Element("Location").Value,  
  125.             }).SingleOrDefault();  
  126.             if (items != null) {  
  127.                 model.Id = items.Id;  
  128.   
  129.                 model.ProjectName = items.ProjectName;  
  130.   
  131.                 model.Location = items.Location;  
  132.             }  
  133.         }  
  134.         public class projectItems {  
  135.             public int Id {  
  136.                 get;  
  137.                 set;  
  138.             }  
  139.   
  140.             public string ProjectName {  
  141.                 get;  
  142.                 set;  
  143.             }  
  144.   
  145.             public string Location {  
  146.                 get;  
  147.                 set;  
  148.             }  
  149.             public projectItems() {}  
  150.         }  
  151.     }  

No comments:

Post a Comment