Пример #1
0
        public void SendMail(string subject, string from, IEnumerable<string> tos, IEnumerable<string> ccs, IEnumerable<string> bccs, LoginUser user, string loginurl, string templatepath, DateTime? dateTime)
        {
            var client = new SmtpClient();
            var mailDefinition = new MailDefinition();
            mailDefinition.Priority = MailPriority.High;
            mailDefinition.From = from;
            mailDefinition.IsBodyHtml = true;
            mailDefinition.Subject = subject;
            mailDefinition.BodyFileName = templatepath;

            var ldReplacement = new ListDictionary();
            if (dateTime.HasValue)
                ldReplacement.Add("<%RegistrationDateTime%>", string.Format("{0:dd/MM/yyyy}", dateTime.Value));
            else
                ldReplacement.Add("<%RegistrationDateTime%>", string.Format("{0:dd/MM/yyyy}", user.CreatedDt));

            ldReplacement.Add("<%FullName%>", user.FullName.Trim().ToUpper());
            ldReplacement.Add("<%UserName%>", user.UserName.Trim().ToUpper());
            if (!string.IsNullOrWhiteSpace(user.Password))
                ldReplacement.Add("<%Password%>", user.Password);
            ldReplacement.Add("<%LoginUrl%>", loginurl);
            var mail = new MailMessage();
            mail = mailDefinition.CreateMailMessage(user.Email, ldReplacement, new Control());
            mail.From = new MailAddress(from, "No Reply");

            if (null != ccs)
                foreach (var cc in ccs.ToList().SelectMany(Spliter))
                {
                    mail.CC.Add(new MailAddress(cc, ""));
                }

            if (null != bccs)
                foreach (var bcc in bccs.ToList().SelectMany(Spliter))
                {
                    mail.Bcc.Add(new MailAddress(bcc, ""));
                }
            mail.Subject = subject;
            mail.IsBodyHtml = true;
            AlternateView htmlView = null;
            htmlView = AlternateView.CreateAlternateViewFromString(mail.Body, null, "text/html");
            mail.AlternateViews.Add(htmlView);

            if (null != tos)
                foreach (var recipient in tos.ToList().SelectMany(Spliter))
                {
                    mail.To.Add(new MailAddress(recipient));
                    try
                    {
                        client.Send(mail);
                    }
                    catch (Exception exm)
                    {

                    }
                }
        }
Пример #2
0
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            var exist = LoginPersistance.GetByUserName(model.IdNumber);
            if (null != exist) ModelState.AddModelError("", "Pengguna dengan Kad Pengenalan : " + model.IdNumber + " sudah wujud.");

            // check validity of id number
            if (!AtmHelper.MyKadValidation(model.IdNumber)) ModelState.AddModelError("", "Kad Pengenalan : " + model.IdNumber + " tidak sah.");
            string message;
            if (!AtmHelper.MyKadAgeValidation(model.IdNumber, out message)) ModelState.AddModelError("", message);
            // checking existing member of atm
            var atmexist = ObjectBuilder.GetObject<IApplicantPersistence>("ApplicantPersistence").ExistingAtmMember(model.IdNumber);
            if (null != atmexist)
            {
                if (atmexist.ExistingMemberStatus.Code.Trim() == "1")
                    ModelState.AddModelError("", "Anda tidak layak memohon kerana anda sedang berkhidmat di dalam ATM");
                if (atmexist.ExistingMemberStatus.Code.Trim() == "4")
                    ModelState.AddModelError("", "Anda tidak layak memohon kerana pernah menyertai ATM dan telah diberhentikan atas sebab tatatertib");
            }

            if (ModelState.IsValid)
            {
                // check no kad pengenalan valid or not
                var rand = new Random();
                model.IdNumber = model.IdNumber.Replace("-", "");
                model.IdNumber = model.IdNumber.Trim();
                var login = new LoginUser()
                {
                    FullName = model.FullName,
                    UserName = model.IdNumber,
                    LoginId = model.IdNumber,
                    Email = model.Email,
                    AlternativeEmail = model.AlternateEmail,
                    Salt = Guid.NewGuid().ToString(),
                    Password = "******" + rand.Next(1, 9999).ToString().PadLeft(4, '0'),
                    FirstTime = true,
                    IsLocked = false,
                    CreatedDt = DateTime.Now,
                    CreatedBy = "Registration"
                };
                var id = login.Save();
                // send notification email
                var from = ConfigurationManager.AppSettings["fromEmail"];
                var url = this.Request.Url;
                if (url != null)
                {
                    var loginurl = ConfigurationManager.AppSettings["server"] + "/Account/Login";
                    var templatepath = Path.Combine(System.Web.HttpContext.Current.Server.MapPath(@"~/Templates"), "Registration.html");
                    var mail = new MailService();
                    mail.Send(from, new List<string> { login.Email, login.AlternativeEmail }, null, null, login, loginurl, templatepath, null);
                }
                TempData["Message"] = "Id pengguna dan Kata laluan telah dihantar ke emel yang didaftarkan. Sila semak emel anda.";
                return RedirectToAction("Login", "Account");
            }
            return View(model);
        }
Пример #3
0
        public int AddNew(LoginUser loginUser)
        {
            if (null != loginUser)
            {
                using (var entities = new atmEntities())
                {
                    // check existing
                    var exist = (from a in entities.tblUsers where a.LoginId == loginUser.LoginId select a).SingleOrDefault();
                    if (null != exist)
                    {
                        loginUser.UserId = exist.UserId;
                        return Update(loginUser);
                    }

                    var u = new tblUser
                    {
                        UserName = loginUser.UserName,
                        AlternativeEmail = loginUser.AlternativeEmail,
                        ApplicantId = loginUser.ApplicantId,
                        Email = loginUser.Email,
                        FullName = loginUser.FullName.ToUpper(),
                        Password = loginUser.Password,
                        Salt = loginUser.Salt,
                        LoginId = loginUser.LoginId,
                        FirstTime = loginUser.FirstTime,
                        IsLocked = loginUser.IsLocked,
                        LastLoginDt = loginUser.LastLoginDt,
                        LastLoginDt2 = loginUser.LastLoginDt2,
                        ServiceCd = loginUser.ServiceCd,
                        CreatedBy = loginUser.CreatedBy,
                        CreatedDt = DateTime.Now,
                        ModifiedBy = loginUser.ModifiedBy,
                        ModifiedDt = loginUser.ModifiedDt
                    };

                    entities.tblUsers.Add(u);
                    if (entities.SaveChanges() != 0)
                        return u.UserId;
                }
            }
            return 0;
        }
Пример #4
0
 public int Update(LoginUser user, List<string> messages)
 {
     using (var entities = new atmEntities())
     {
         var exist = (from a in entities.tblUsers where a.UserId == user.UserId select a).SingleOrDefault();
         if (null == exist) return 0;
         exist.AlternativeEmail = user.AlternativeEmail;
         exist.ApplicantId = user.ApplicantId;
         exist.Email = user.Email;
         exist.ModifiedBy = user.ModifiedBy;
         exist.ModifiedDt = DateTime.Now;
         exist.ServiceCd = user.ServiceCd;
         exist.IsLocked = user.IsLocked;
         exist.LastLoginDt = user.LastLoginDt;
         exist.FirstTime = user.FirstTime;
         exist.FullName = user.FullName;
         exist.Salt = user.Salt;
         entities.SaveChanges();
         return exist.UserId;
     }
     return 0;
 }
Пример #5
0
        public LoginUser LoadByUserName(string username)
        {
            if (!string.IsNullOrWhiteSpace(username))
            {
                using (var entities = new atmEntities())
                {
                    var user = (from a in entities.tblUsers where a.LoginId == username select a).SingleOrDefault();
                    if (null != user)
                    {
                        var usr = new LoginUser
                        {
                            AlternativeEmail = user.AlternativeEmail,
                            ApplicantId = user.ApplicantId,
                            CreatedBy = user.CreatedBy,
                            CreatedDt = user.CreatedDt,
                            LoginId = user.LoginId,
                            UserId = user.UserId,
                            ModifiedBy = user.ModifiedBy,
                            ModifiedDt = user.ModifiedDt,
                            Salt = user.Password,
                            ServiceCd = user.ServiceCd,
                            Status = user.IsLocked.HasValue ? user.IsLocked.Value ? "Aktif" : "Tidak Aktif" : "Aktif",
                            UserName = user.UserName,
                            Email = user.Email,
                            FirstTime = user.FirstTime ?? false,
                            FullName = user.FullName,
                            IsLocked = user.IsLocked ?? false,
                            LastLoginDt = user.LastLoginDt
                        };

                        if (!string.IsNullOrWhiteSpace(user.ServiceCd))
                        {
                            var svc = (from a in entities.tblREFServices where a.ServiceCd == user.ServiceCd select a).SingleOrDefault();
                            if (null != svc)
                                usr.ServiceName = svc.Service;
                        }

                        var role = (from a in entities.tblUserRoles where a.UserId == user.UserId select a).SingleOrDefault();
                        if (null != role)
                        {
                            usr.LoginRole = new LoginRole
                            {
                                UserId = usr.UserId,
                                Roles = role.Roles
                            };
                        }
                        return usr;
                    }
                }
            }
            return null;
        }
Пример #6
0
        public IEnumerable<LoginUser> LoadAllByStatus(string status)
        {
            var list = new List<LoginUser>();
            using (var entities = new atmEntities())
            {
                var islock = status == "Aktif";
                var l = from a in entities.tblUsers where a.IsLocked == islock select a;
                if (l.Any())
                {
                    foreach (var user in l)
                    {
                        var usr = new LoginUser
                        {
                            AlternativeEmail = user.AlternativeEmail,
                            ApplicantId = user.ApplicantId,
                            CreatedBy = user.CreatedBy,
                            CreatedDt = user.CreatedDt,
                            LoginId = user.LoginId,
                            UserId = user.UserId,
                            ModifiedBy = user.ModifiedBy,
                            ModifiedDt = user.ModifiedDt,
                            Salt = user.Password,
                            ServiceCd = user.ServiceCd,
                            Status = user.IsLocked.HasValue ? user.IsLocked.Value ? "Aktif" : "Tidak Aktif" : "Aktif",
                            UserName = user.UserName,
                            Email = user.Email,
                            FirstTime = user.FirstTime ?? false,
                            FullName = user.FullName,
                            IsLocked = user.IsLocked ?? false,
                            LastLoginDt = user.LastLoginDt
                        };

                        if (!string.IsNullOrWhiteSpace(user.ServiceCd))
                        {
                            var svc = (from a in entities.tblREFServices where a.ServiceCd == user.ServiceCd select a).SingleOrDefault();
                            if (null != svc)
                                usr.ServiceName = svc.Service;
                        }

                        var role = (from a in entities.tblUserRoles where a.UserId == user.UserId select a).SingleOrDefault();
                        if (null != role)
                        {
                            usr.LoginRole = new LoginRole
                            {
                                UserId = usr.UserId,
                                Roles = role.Roles
                            };
                        }

                        list.Add(usr);
                    }
                }
            }
            return list;
        }
Пример #7
0
 public bool DeleteUser(LoginUser user)
 {
     if (!string.IsNullOrWhiteSpace(user.LoginId))
     {
         using (var entities = new atmEntities())
         {
             var exist = (from a in entities.tblUsers where a.LoginId == user.LoginId select a).SingleOrDefault();
             if (null != exist)
             {
                 entities.tblUsers.Remove(exist);
                 return entities.SaveChanges() > 0;
             }
         }
     }
     return false;
 }
Пример #8
0
        public int CreateNewUser(LoginUser user, List<string> messages)
        {
            using (var entities = new atmEntities())
            {
                var exist = (from a in entities.tblUsers where a.LoginId == user.LoginId select a).SingleOrDefault();
                if (null != exist) return 0;
                var usr = new tblUser
                {
                    AlternativeEmail = user.AlternativeEmail,
                    ApplicantId = user.ApplicantId,
                    CreatedBy = user.CreatedBy,
                    CreatedDt = DateTime.Now,
                    FullName = user.FullName,
                    FirstTime = user.FirstTime,
                    Email = user.Email,
                    IsLocked = user.IsLocked,
                    LastLoginDt = user.LastLoginDt,
                    LoginId = user.LoginId,
                    Password = ObjectBuilder.GetObject<ICryptorService>("CryptorService").ComputeHashInString(user.Salt, user.Password),
                    Salt = user.Salt,
                    ServiceCd = user.ServiceCd,
                    UserName = user.UserName
                };

                if (entities.SaveChanges() > 0)
                {
                    messages.Add("Berjaya");
                    return usr.UserId;
                }
                messages.Add("Tidak Berjaya");
            }
            return 0;
        }
Пример #9
0
 public void DeleteRoles(LoginUser user, List<string> roles)
 {
     using (var entities = new atmEntities())
     {
         foreach (var exist in roles.Select(role => (from a in entities.tblUserRoles where a.UserId == user.UserId select a).SingleOrDefault()).Where(exist => null != exist))
         {
             entities.tblUserRoles.Remove(exist);
             entities.SaveChanges();
         }
     }
 }
Пример #10
0
        public int Update(LoginUser loginUser)
        {
            if (null != loginUser)
            {
                using (var entities = new atmEntities())
                {
                    var exist = (from a in entities.tblUsers where a.UserId == loginUser.UserId select a).SingleOrDefault();
                    if (null != exist)
                    {
                        exist.UserName = loginUser.UserName;
                        exist.ServiceCd = loginUser.ServiceCd;
                        exist.ModifiedBy = loginUser.ModifiedBy;
                        exist.ModifiedDt = DateTime.Now;
                        exist.IsLocked = loginUser.IsLocked;
                        exist.LastLoginDt = loginUser.LastLoginDt;
                        exist.LastLoginDt2 = loginUser.LastLoginDt2;
                        exist.FullName = loginUser.FullName.ToUpper();
                        exist.Email = loginUser.Email;
                        exist.AlternativeEmail = loginUser.AlternativeEmail;
                        exist.FirstTime = loginUser.FirstTime;
                        exist.ApplicantId = loginUser.ApplicantId;

                        if (loginUser.LoginRole != null)
                        {
                            if (loginUser.LoginRole.Roles != RolesString.AWAM)
                            {
                                // can update roles
                                var role = (from a in entities.tblUserRoles where a.UserId == loginUser.UserId select a).SingleOrDefault();
                                if (null != role)
                                {
                                    role.Roles = loginUser.LoginRole.Roles;
                                }
                            }
                        }

                        entities.SaveChanges();

                        return exist.UserId;
                    }
                }
            }
            return 0;
        }
Пример #11
0
        public IEnumerable<LoginUser> LoadAllUser(bool internaluser, bool? isactive, string servicecode, string search, int? take, int? skip, out int total)
        {
            var list = new List<LoginUser>();
            total = 0;
            using (var entities = new atmEntities())
            {
                var l = from a in entities.tblUsers select a;

                if (internaluser)
                    l = from c in entities.tblUsers join b in entities.tblUserRoles on c.UserId equals b.UserId select c;
                else
                {
                    var uroles = from a in entities.tblUserRoles select a;
                    if (uroles.Any())
                    {
                        var uss = uroles.Select(a => a.UserId).ToArray();
                        l = l.Where(a => !uss.Contains(a.UserId));
                    }
                }
                //if (isactive.HasValue)
                //    l = l.Where(a => a.user.IsLocked == isactive.Value);
                //if (!string.IsNullOrWhiteSpace(servicecode))
                //    l = l.Where(a => a.user.ServiceCd == servicecode);
                //if (skip.HasValue && skip.Value != 0)
                //    l = l.Skip(skip.Value);
                //if (take.HasValue)
                //    l = l.Take(take.Value);
                if (!string.IsNullOrWhiteSpace(search))
                    l = l.Where(a => a.FullName.Contains(search) || a.LoginId.Contains(search));

                total = l.Count();
                if (take.HasValue && skip.HasValue)
                    l = l.OrderBy(a => a.CreatedDt).Skip(skip.Value).Take(take.Value);

                if (l.Any())
                    foreach (var exist in l.ToList())
                    {
                        var log = new LoginUser
                        {
                            UserId = exist.UserId,
                            Email = exist.Email,
                            LoginId = exist.LoginId,
                            ModifiedBy = exist.ModifiedBy,
                            CreatedDt = exist.CreatedDt,
                            CreatedBy = exist.CreatedBy,
                            FirstTime = exist.FirstTime ?? false,
                            FullName = exist.FullName,
                            ApplicantId = exist.ApplicantId,
                            AlternativeEmail = exist.AlternativeEmail,
                            IsLocked = exist.IsLocked ?? false,
                            LastLoginDt = exist.LastLoginDt,
                            LastLoginDt2 = exist.LastLoginDt2,
                            ModifiedDt = exist.ModifiedDt,
                            ServiceCd = exist.ServiceCd,
                            UserName = exist.UserName
                        };

                        if (!string.IsNullOrWhiteSpace(exist.ServiceCd))
                        {
                            var svc = (from a in entities.tblREFServices where a.ServiceCd == exist.ServiceCd select a).SingleOrDefault();
                            if (null != svc)
                                log.ServiceName = svc.Service;
                        }

                        if (internaluser)
                        {
                            var role = (from a in entities.tblUserRoles where a.UserId == exist.UserId select a).SingleOrDefault();
                            if (null != role)
                            {
                                log.LoginRole = new LoginRole
                                {
                                    UserId = role.UserId,
                                    Roles = role.Roles
                                };
                            }
                        }
                        else
                        {
                            log.LoginRole = new LoginRole
                            {
                                Roles = RolesString.AWAM
                            };

                        }

                        list.Add(log);
                    }
            }

            return list;
        }
Пример #12
0
        public LoginUser GetByUserName(string username)
        {
            if (!string.IsNullOrWhiteSpace(username))
            {
                using (var entities = new atmEntities())
                {
                    var exist = (from a in entities.tblUsers where a.LoginId == username select a).SingleOrDefault();
                    if (null != exist)
                    {
                        var log = new LoginUser
                        {
                            UserId = exist.UserId,
                            Email = exist.Email,
                            LoginId = exist.LoginId,
                            ModifiedBy = exist.ModifiedBy,
                            CreatedDt = exist.CreatedDt,
                            CreatedBy = exist.CreatedBy,
                            FirstTime = exist.FirstTime ?? false,
                            FullName = exist.FullName,
                            ApplicantId = exist.ApplicantId,
                            AlternativeEmail = exist.AlternativeEmail,
                            IsLocked = exist.IsLocked ?? false,
                            LastLoginDt = exist.LastLoginDt,
                            LastLoginDt2 = exist.LastLoginDt2,
                            ModifiedDt = exist.ModifiedDt,
                            ServiceCd = exist.ServiceCd,
                            UserName = exist.UserName
                        };

                        if (!string.IsNullOrWhiteSpace(exist.ServiceCd))
                        {
                            var svc = (from a in entities.tblREFServices where a.ServiceCd == exist.ServiceCd select a).SingleOrDefault();
                            if (null != svc)
                                log.ServiceName = svc.Service;
                        }

                        var rol = (from a in entities.tblUserRoles where a.UserId == exist.UserId select a).SingleOrDefault();
                        if (null != rol)
                        {
                            log.LoginRole = new LoginRole
                            {
                                UserId = rol.UserId,
                                Roles = rol.Roles
                            };
                        }

                        return log;
                    }
                }
            }
            return null;
        }
Пример #13
0
 public ActionResult SubmitUser(LoginUser loguser)
 {
     if (loguser.LoginRole != null && !string.IsNullOrWhiteSpace(loguser.LoginRole.Roles))
     {
         if (loguser.LoginRole != null)
         {
             if (loguser.LoginRole.Roles != RolesString.AWAM)
             {
                 loguser.Email = "NA";
                 loguser.AlternativeEmail = "NA";
                 if (loguser.UserId == 0)
                     loguser.Salt = Guid.NewGuid().ToString();
             }
         }
         loguser.CreatedDt = DateTime.Now;
         loguser.CreatedBy = User.Identity.Name;
         loguser.IsLocked = loguser.Status != "Aktif";
         if (loguser.Save() > 0)
         {
             var user = ObjectBuilder.GetObject<ILoginUserPersistance>("LoginUserPersistance").GetByUserName(User.Identity.Name);
             if (null != user)
                 ObjectBuilder.GetObject<ILoginUserPersistance>("LoginUserPersistance").LoggingUser(user.UserId, LogStatusCodeString.Create_User, User.Identity.Name, DateTime.Now);
             return Json(new { OK = true, message = "Berjaya." });
         }
     }
     return Json(new { OK = false, message = "Tidak Berjaya." });
 }
Пример #14
0
        public ActionResult SubmitAndEmailUser(LoginUser loguser)
        {
            if (loguser.LoginRole != null && !string.IsNullOrWhiteSpace(loguser.Email))
            {
                if (loguser.LoginRole != null)
                {
                    if (loguser.LoginRole.Roles != RolesString.AWAM)
                    {
                        loguser.Email = "NA";
                        loguser.AlternativeEmail = "NA";
                        if (loguser.UserId == 0)
                            loguser.Salt = Guid.NewGuid().ToString();
                    }
                }
                if (loguser.UserId == 0)
                {
                    loguser.CreatedDt = DateTime.Now;
                    loguser.CreatedBy = User.Identity.Name;
                }
                loguser.IsLocked = loguser.Status != "Aktif";
                loguser.FirstTime = true;
                if (loguser.Save() > 0)
                {
                    // change the password if the is new password
                    if (loguser.UserId != 0)
                        loguser.ChangePassword(loguser.Password);

                    var user = ObjectBuilder.GetObject<ILoginUserPersistance>("LoginUserPersistance").GetByUserName(User.Identity.Name);
                    if (null != user)
                    {
                        var url = this.Request.Url;
                        if (url != null)
                        {
                            var from = ConfigurationManager.AppSettings["fromEmail"];
                            var loginurl = ConfigurationManager.AppSettings["server"] + "/Account/Login";
                            var templatepath = Path.Combine(System.Web.HttpContext.Current.Server.MapPath(@"~/Templates"), "TempPassword.html");
                            var mail = new MailService();
                            mail.SendMail("[JOM MASUK TENTERA]Notifikasi Kata Laluan Sementara", from, new List<string> { loguser.Email, loguser.AlternativeEmail }, null, null, loguser, loginurl, templatepath, DateTime.Now);
                        }
                        ObjectBuilder.GetObject<ILoginUserPersistance>("LoginUserPersistance").LoggingUser(user.UserId, LogStatusCodeString.Create_User, User.Identity.Name, DateTime.Now);
                    }
                    return Json(new { OK = true, message = "Berjaya." });
                }
            }
            return Json(new { OK = false, message = "Tidak Berjaya." });
        }
Пример #15
0
        public void SendWithMessage(string from, IEnumerable<string> tos, IEnumerable<string> ccs, IEnumerable<string> bccs, LoginUser user, string subject, string body, DateTime? dateTime)
        {
            var client = new SmtpClient();

            var mail = new MailMessage { From = new MailAddress(@from, "No Reply") };

            if (null != ccs)
                foreach (var cc in ccs.ToList().SelectMany(Spliter))
                {
                    mail.CC.Add(new MailAddress(cc, ""));
                }

            if (null != bccs)
                foreach (var bcc in bccs.ToList().SelectMany(Spliter))
                {
                    mail.Bcc.Add(new MailAddress(bcc, ""));
                }

            mail.Subject = subject;
            mail.IsBodyHtml = true;
            mail.Body = body;
            AlternateView htmlView = null;
            if (mail.Body != null) htmlView = AlternateView.CreateAlternateViewFromString(mail.Body, null, "text/html");
            mail.AlternateViews.Add(htmlView);

            if (null != tos)
                foreach (var recipient in tos.ToList().SelectMany(Spliter))
                {
                    mail.To.Add(new MailAddress(recipient));
                    try
                    {
                        client.Send(mail);
                    }
                    catch (Exception ex)
                    {
                    }
                }
        }