//Export to Excel public ActionResult Export() { List <ContactModel> allContacts = new List <ContactModel>(); using (MyContactBookEntities dc = new MyContactBookEntities()) { var v = (from a in dc.Contacts join b in dc.Countries on a.CountryID equals b.CountryID join c in dc.States on a.StateID equals c.StateID select new ContactModel { ContactID = a.ContactID, FirstName = a.ContactPersonFname, LastName = a.ContactPersonLname, ContactNo1 = a.ContactNo1, ContactNo2 = a.ContactNo2, EmailID = a.EmailID, Country = b.CountryName, State = c.StateName, Address = a.Address, ImagePath = a.ImagePath }).ToList(); allContacts = v; } return(View(allContacts)); }
private Contact GetContact(int contactID) { Contact contact = null; using (MyContactBookEntities dc = new MyContactBookEntities()) { var v = (from a in dc.Contacts join b in dc.Countries on a.CountryID equals b.CountryID join c in dc.States on a.StateID equals c.StateID where a.ContactID.Equals(contactID) select new { a, b.CountryName, c.StateName }).FirstOrDefault(); if (v != null) { contact = v.a; contact.CountryName = v.CountryName; contact.StateName = v.StateName; } } return(contact); }
// fetch states from jquery code public JsonResult GetStates(int countryID) { using (MyContactBookEntities dc = new MyContactBookEntities()) { var State = (from a in dc.States where a.CountryID.Equals(countryID) orderby a.StateName select a).ToList(); return(new JsonResult { Data = State, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } }
public ActionResult Add() { //fetch country data List <Country> AllCountry = new List <Country>(); List <State> states = new List <State>(); // db MyContactBookEntities is our DbContext using (MyContactBookEntities dc = new MyContactBookEntities()) { AllCountry = dc.Countries.OrderBy(a => a.CountryName).ToList(); } ViewBag.Country = new SelectList(AllCountry, "CountryID", "CountryName"); ViewBag.State = new SelectList(states, "StateID", "StateName"); return(View()); }
[ActionName("Delete")] // Here Action Name is required as we can not make same signature for Get & Post Method public ActionResult DeleteConfirm(int id) { using (MyContactBookEntities dc = new MyContactBookEntities()) { var contact = dc.Contacts.Where(a => a.ContactID.Equals(id)).FirstOrDefault(); if (contact != null) { dc.Contacts.Remove(contact); dc.SaveChanges(); return(RedirectToAction("Index")); } else { return(HttpNotFound("Contact Not Found!")); } } }
public FileResult ExportData() { List <ContactModel> allContacts = new List <ContactModel>(); using (MyContactBookEntities dc = new MyContactBookEntities()) { var v = (from a in dc.Contacts join b in dc.Countries on a.CountryID equals b.CountryID join c in dc.States on a.StateID equals c.StateID select new ContactModel { ContactID = a.ContactID, FirstName = a.ContactPersonFname, LastName = a.ContactPersonLname, ContactNo1 = a.ContactNo1, ContactNo2 = a.ContactNo2, EmailID = a.EmailID, Country = b.CountryName, State = c.StateName, Address = a.Address, ImagePath = a.ImagePath }).ToList(); allContacts = v; } var grid = new WebGrid(source: allContacts, canPage: false, canSort: false); string exportData = grid.GetHtml( columns: grid.Columns( grid.Column("ContactID", "Contact ID"), grid.Column("FirstName", "First Name"), grid.Column("LastName", "Last Name"), grid.Column("ContactNo1", "Contact No1"), grid.Column("ContactNo2", "Contact No2"), grid.Column("EmailID", "Email ID") ) ).ToHtmlString(); return(File(new System.Text.UTF8Encoding().GetBytes(exportData), "application/vnd.ms-excel", "Contacts.xls")); }
// Edit Part public ActionResult Edit(int id) { // Fetch Contact Contact c = null; c = GetContact(id); // GetContact I have created in the previous part if (c == null) { return(HttpNotFound("Contact Not Found!")); } // Fetch Country & State List <Country> allCountry = new List <Country>(); List <State> states = new List <State>(); using (MyContactBookEntities dc = new MyContactBookEntities()) { allCountry = dc.Countries.OrderBy(a => a.CountryName).ToList(); states = dc.States.Where(a => a.CountryID.Equals(c.CountryID)).OrderBy(a => a.StateName).ToList(); } ViewBag.Country = new SelectList(allCountry, "CountryID", "CountryName", c.CountryID); ViewBag.State = new SelectList(states, "StateID", "StateName", c.StateID); return(View(c)); }
public ActionResult Add(Contact c, HttpPostedFileBase file) { #region // Fetch Country & State List <Country> allCountry = new List <Country>(); List <State> states = new List <State>(); using (MyContactBookEntities dc = new MyContactBookEntities()) { allCountry = dc.Countries.OrderBy(a => a.CountryName).ToList(); if (c.CountryID > 0) { states = dc.States.Where(a => a.CountryID.Equals(c.CountryID)).OrderBy(a => a.StateName).ToList(); } } ViewBag.Country = new SelectList(allCountry, "CountryID", "CountryName", c.CountryID); ViewBag.State = new SelectList(states, "StateID", "StateName", c.StateID); #endregion #region// Validate file if selected if (file != null) { if (file.ContentLength > (512 * 1000)) // 512 KB { ModelState.AddModelError("FileErrorMessage", "File size must be within 512 KB"); } string[] allowedType = new string[] { "image/png", "image/gif", "image/jpeg", "image/jpg" }; bool isFileTypeValid = false; foreach (var i in allowedType) { if (file.ContentType == i.ToString()) { isFileTypeValid = true; break; } } if (!isFileTypeValid) { ModelState.AddModelError("FileErrorMessage", "Only .png, .gif and .jpg file type allowed"); } } #endregion #region// Validate Model & Save to Database if (ModelState.IsValid) { //Save here if (file != null) { string savePath = Server.MapPath("~/Image"); string fileName = Guid.NewGuid() + Path.GetExtension(file.FileName); file.SaveAs(Path.Combine(savePath, fileName)); c.ImagePath = fileName; } using (MyContactBookEntities dc = new MyContactBookEntities()) { dc.Contacts.Add(c); dc.SaveChanges(); } return(RedirectToAction("Index")); } else { return(View(c)); } #endregion }
public ActionResult Edit(Contact c, HttpPostedFileBase file) { #region//fetch country & state for dropdown List <Country> allCountry = new List <Country>(); List <State> states = new List <State>(); using (MyContactBookEntities dc = new MyContactBookEntities()) { allCountry = dc.Countries.OrderBy(a => a.CountryName).ToList(); if (c.CountryID > 0) { states = dc.States.Where(a => a.CountryID.Equals(c.CountryID)).OrderBy(a => a.StateName).ToList(); } } ViewBag.Country = new SelectList(allCountry, "CountryID", "CountryName", c.CountryID); ViewBag.State = new SelectList(states, "StateID", "StateName", c.StateID); #endregion #region//validate file is selected if (file != null) { if (file.ContentLength > (512 * 1000)) // 512 KB { ModelState.AddModelError("FileErrorMessage", "File size must be within 512KB"); } string[] allowedType = new string[] { "image/png", "image/gif", "image/jpg", "image/jpeg" }; bool isFileTypeValid = false; foreach (var i in allowedType) { if (file.ContentType == i.ToString()) { isFileTypeValid = true; break; } } if (!isFileTypeValid) { ModelState.AddModelError("FileErrorMessage", "Only .png, .gif and .jpg file allowed"); } } #endregion // Update Contact if (ModelState.IsValid) { if (file != null) { string savePath = Server.MapPath("~/image"); string fileName = Guid.NewGuid() + Path.GetExtension(file.FileName); file.SaveAs(Path.Combine(savePath, fileName)); c.ImagePath = fileName; } using (MyContactBookEntities dc = new MyContactBookEntities()) { var v = dc.Contacts.Where(a => a.ContactID.Equals(c.ContactID)).FirstOrDefault(); if (v != null) { v.ContactPersonFname = c.ContactPersonFname; v.ContactPersonLname = c.ContactPersonLname; v.ContactNo1 = c.ContactNo1; v.ContactNo2 = c.ContactNo2; v.EmailID = c.EmailID; v.CountryID = c.CountryID; v.StateID = c.StateID; v.Address = c.Address; if (file != null) { v.ImagePath = c.ImagePath; } } dc.SaveChanges(); } return(RedirectToAction("Index")); } else { return(View(c)); } }