public ActionResult Login(string returnUrl, int?serviceid, int?isdefault) { ViewBag.ReturnUrl = returnUrl; var loginmodel = new AppLoginModel(); loginmodel.ServiceId = serviceid ?? 0; loginmodel.UserName = WebApp.Services.GlobalUserContext.GetProfile(string.Format(pnameusername, loginmodel.ServiceId)); loginmodel.Password = WebApp.Services.GlobalUserContext.GetProfile(string.Format(pnamepassword, loginmodel.ServiceId)); if (isdefault == 1) { try { if (String.IsNullOrEmpty(loginmodel.UserName) || String.IsNullOrEmpty(loginmodel.Password) || loginmodel.ServiceId == 0) { throw new InvalidOperationException("Phải nhập tên đăng nhập và mật khẩu."); } WebApp.Models.SenContext sendb = new WebApp.Models.SenContext(); var company = sendb.SenServices.Where(m => m.ServiceId == loginmodel.ServiceId && m.UserProfile.UserName == User.Identity.Name).FirstOrDefault(); if (company.SenCompany.IsApproved != true) { throw new InvalidOperationException("Doanh nghiệp đang chờ duyệt./n Không thể truy cập được."); } string cnn = company.SenCompany.ConnectionString; WebAppAccEntities db = new WebAppAccEntities(cnn); string CompanyName = db.SysCompanies.Where(m => m.EnumValue == "CompanyName").FirstOrDefault().EnumName; WebApp.Areas.Accounting.Services.GlobalVariant.SetConnection(cnn); WebApp.Areas.Accounting.Services.GlobalVariant.SetCompanyName(CompanyName); WebApp.Areas.Accounting.Services.GlobalVariant.SetCompanyId(company.CompanyId.ToString()); if (!WebApp.Areas.Accounting.Services.User.Login(loginmodel.UserName, loginmodel.Password)) { throw new InvalidOperationException("Tên đăng nhập và mật khẩu không hợp lệ."); } WebApp.Services.GlobalUserContext.AddProfile(string.Format(pnameusername, loginmodel.ServiceId), loginmodel.UserName); WebApp.Services.GlobalUserContext.AddProfile(string.Format(pnamepassword, loginmodel.ServiceId), loginmodel.Password); company.SenCompany.LastLoginDate = DateTime.Now; sendb.Entry(company.SenCompany).State = System.Data.Entity.EntityState.Modified; sendb.SaveChanges(); return(RedirectToLocal(returnUrl)); } catch (Exception) { } } return(View(loginmodel)); }
public ActionResult ContractNotification(int ContractId, int ContractType) { try { #region mail cho người dùng var contract = _dataobject.GetById(ContractId); var user = contract.Assign; //IWebHelper webhelper = new WebHelper(this.HttpContext); //var urlactive = Url.Action("RegisterActive").Remove(0, 1); //string RegisterActiveUrl = string.Format("{0}{1}?id={2}", webhelper.GetStoreLocation(), urlactive, user.UserId); string emailto = user.Email; // xử lí tạm cần dùng một mẫu tạm để gửi cho khách hàng #region thiết lập token //GlobalToken.setToken("Account.RegisterActiveURL", RegisterActiveUrl); GlobalToken.setToken("Account.Name", user.UserName); GlobalToken.setToken("SenContract.ContractNumber", contract.ContractNumber); #endregion string SenMessageTemplate_Name = "sencontract.notificationnew"; if (ContractType == 1) { SenMessageTemplate_Name = "sencontract.notificationupdate"; } if (ContractType == 2) { SenMessageTemplate_Name = "sencontract.notificationend"; } var db = new WebApp.Models.SenContext(); var messagetemplate = db.SenMessageTemplates.SingleOrDefault(m => m.Name == SenMessageTemplate_Name && m.IsActive == true); var queuedemail = new WebApp.Models.SenQueuedEmail(); queuedemail.CreatedOnUtc = DateTime.UtcNow; queuedemail.EmailAccountId = messagetemplate.EmailAccountId; queuedemail.From = messagetemplate.SenEmailAccount.Email; queuedemail.FromName = messagetemplate.SenEmailAccount.DisplayName; queuedemail.Bcc = messagetemplate.BccEmailAddresses; queuedemail.Subject = GlobalToken.MappingToken(messagetemplate.Subject); queuedemail.To = emailto; queuedemail.ToName = user.UserName; queuedemail.Priority = 0; queuedemail.Body = GlobalToken.MappingToken(messagetemplate.Body); db.SenQueuedEmails.Add(queuedemail); db.SaveChanges(); #endregion } catch (Exception ex) { return(Json(new { ketqua = ex.Message })); } return(Json(new { ketqua = "Đã email Ok." })); }
public ActionResult Login(Models.AppLoginModel model, string returnUrl) { try { if (String.IsNullOrEmpty(model.UserName) || String.IsNullOrEmpty(model.Password) || model.ServiceId == 0) { throw new InvalidOperationException("Phải nhập tên đăng nhập và mật khẩu."); } WebApp.Models.SenContext sendb = new WebApp.Models.SenContext(); var company = sendb.SenServices.Where(m => m.ServiceId == model.ServiceId && m.UserProfile.UserName == User.Identity.Name).FirstOrDefault(); if (company.SenCompany.IsApproved != true) { throw new InvalidOperationException("Doanh nghiệp đang chờ duyệt./n Không thể truy cập được."); } string cnn = company.SenCompany.ConnectionString; Models.WebAppAccEntities db = new Models.WebAppAccEntities(cnn); string CompanyName = db.SysCompanies.Where(m => m.EnumValue == "CompanyName").FirstOrDefault().EnumName; Services.GlobalVariant.SetConnection(cnn); Services.GlobalVariant.SetCompanyName(CompanyName); Services.GlobalVariant.SetCompanyId(company.CompanyId.ToString()); if (!Services.User.Login(model.UserName, model.Password)) { throw new InvalidOperationException("Tên đăng nhập và mật khẩu không hợp lệ."); } WebApp.Services.GlobalUserContext.AddProfile(string.Format(pnameusername, model.ServiceId), model.UserName); WebApp.Services.GlobalUserContext.AddProfile(string.Format(pnamepassword, model.ServiceId), model.Password); company.SenCompany.LastLoginDate = DateTime.Now; sendb.Entry(company.SenCompany).State = System.Data.Entity.EntityState.Modified; sendb.SaveChanges(); return(RedirectToLocal(returnUrl)); } catch (Exception ex) { Services.GlobalErrors.Parse(ModelState, ex); return(View(model)); } }