Esempio n. 1
0
        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"));
        }
Esempio n. 2
0
        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));
        }