public ActionResult Edit(string id, EmployeeEditModel viewModel) { var topicchecks = (List <TopicCheck>)Session["TopicChecked"]; //TODO: validate to make sure at least one role is selected if (ModelState.IsValid) { Registered_Person rp = db.Registered_Person.Find(id); rp.Person_ID = id; rp.Person_Name = viewModel.person_name; rp.Person_Surname = viewModel.person_surname; rp.Person_Email = viewModel.person_email; rp.Person_Type = "Employee"; db.Entry(rp).State = EntityState.Modified; var roleRemove = db.Person_Role.Where(x => x.Person_ID == id); foreach (var item in roleRemove) { db.Person_Role.Remove(item); } foreach (var item in viewModel.emprolecheckeditlist) { if (item.role_ind == true) { var pRole = new Person_Role(); pRole.Person_ID = id; pRole.Role_ID = item.role_id; db.Person_Role.Add(pRole); } } var trainerRemove = db.Trainer_Topic.Where(x => x.Person_ID == id); foreach (var item in trainerRemove) { db.Trainer_Topic.Remove(item); } if (viewModel.emprolecheckeditlist.Where(x => x.role_id == 7).Where(y => y.role_ind == true).Any()) { foreach (var item in topicchecks) { if (item.topic_ind == true) { var tTopic = new Trainer_Topic(); tTopic.Person_ID = id; tTopic.Topic_Seq = item.topic_seq; db.Trainer_Topic.Add(tTopic); } } } db.SaveChanges(); } TempData["Check2"] = false; ViewBag.Person_Type = new SelectList(db.Person_Type, "Person_Type1", "Person_Type1", 2); return(RedirectToAction("Index")); }
public ActionResult Create(EmployeeAddModel viewModel) { TempData["Show"] = false; var topicchecklist = (List <TopicCheck>)Session["Topic_Checked"]; if (db.Registered_Person.Any(x => x.Person_ID == viewModel.person_id)) { ModelState.AddModelError("person_id", "Username is already registered"); } if (!db.Registered_Person.Any(x => x.Person_ID.StartsWith("p"))) { ModelState.AddModelError("person_id", "Username must start with a 'p' and follow with 8 digits"); } if (ModelState.IsValid) { string password = Membership.GeneratePassword(5, 1); var hashed = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5"); var emp = new Registered_Person(); emp.Person_ID = viewModel.person_id; emp.Person_Name = viewModel.person_name; emp.Person_Surname = viewModel.person_surname; emp.Person_Type = "Employee"; emp.Person_Password = hashed; emp.Person_Registration_DateTime = DateTime.Now; emp.Person_Email = viewModel.person_email; db.Registered_Person.Add(emp); foreach (var item in viewModel.role_check) { var prole = new Person_Role(); if (item.role_ind) { prole.Role_ID = item.role_id; prole.Person_ID = emp.Person_ID; db.Person_Role.Add(prole); } } try { foreach (var item in topicchecklist) { var trainertopic = new Trainer_Topic(); if (item.topic_ind) { trainertopic.Person_ID = emp.Person_ID; trainertopic.Topic_Seq = item.topic_seq; db.Trainer_Topic.Add(trainertopic); } } } catch { } //Email start MailMessage message = new MailMessage(); SmtpClient client = new SmtpClient(); client.Host = "smtp.gmail.com"; client.Port = 587; message.From = new MailAddress("*****@*****.**"); message.To.Add(viewModel.person_email); message.Subject = "Employee Registration"; message.Body = "Hi, " + viewModel.person_id + " you have been registered to UP Library Assistant by an Admin, use your UP username to login, your password is: " + password; message.IsBodyHtml = true; client.EnableSsl = true; client.UseDefaultCredentials = true; client.Credentials = new System.Net.NetworkCredential("*****@*****.**", "tester123#"); client.Send(message); //Email end db.SaveChanges(); TempData["Msg"] = "New employee created successfully."; TempData["Show"] = true; TempData["color"] = "alert-success"; return(RedirectToAction("Index")); } ViewBag.Check1 = true; ViewBag.Check2 = true; viewModel.role = (db.Roles .Include(i => i.Role_Action.Select(x => x.Action))).ToList(); var rolechecklist = new List <RoleCheck>(); for (int i = 0; i < viewModel.role.Count(); i++) { var roleCheck = new RoleCheck(); roleCheck.role_id = viewModel.role[i].Role_ID; rolechecklist.Add(roleCheck); } viewModel.role_check = rolechecklist; ViewBag.Person_Type = new SelectList(db.Person_Type, "Person_Type1", "Person_Type1", 2); TempData["Msg"] = "Something went wrong."; TempData["Show"] = true; TempData["color"] = "alert-success"; return(View(viewModel)); }