You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1194 lines
59 KiB
1194 lines
59 KiB
|
|
using EasyBL.WebApi;
|
|
using EasyBL.WebApi.Common;
|
|
using EasyBL.WebApi.Message;
|
|
using EasyNet;
|
|
using Entity.ShowEasyDtos;
|
|
using Entity.Sugar;
|
|
using Entity.ViewModels;
|
|
using Newtonsoft.Json;
|
|
using SqlSugar;
|
|
using SqlSugar.Base;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
using System.Text;
|
|
using System.Web;
|
|
using System.Net.Mail;
|
|
using EasyBL.WEBAPP.ShowEasy;
|
|
|
|
namespace EasyBL.WEBAPP.SYS
|
|
{
|
|
public class SignupService : ServiceBase
|
|
{
|
|
//public static string SERVER_IP = "localhost";
|
|
// public static string SERVER_PORT = "3466";
|
|
|
|
//public static string SERVER_IP = "www.origtek.com";
|
|
//public static string SERVER_PORT = "9105";
|
|
|
|
//使用者以信箱註冊(連結)
|
|
public HttpResponseMessage SignupWithEmail_Link(SETB_CMS_Member newUser)
|
|
{
|
|
//string sMsg = null;
|
|
SuccessResponseMessage srm = null;
|
|
var db = SugarBase.GetIntance();
|
|
string sError = null;
|
|
|
|
|
|
try {
|
|
do
|
|
{
|
|
string sAccount = newUser.Email;
|
|
string sPassword = newUser.Password;
|
|
string sEmail = newUser.Email;
|
|
string sFirstName = newUser.FirstName;
|
|
string sLastName = newUser.LastName;
|
|
//string sSubscribe = newUser.Subscribe;
|
|
string sMemberID = Guid.NewGuid().ToString(); //會員編號為GUID
|
|
string sOrgID = "TG"; //公司編號預設為TG
|
|
string sStatus = "0"; //會員狀態為未驗證(F)
|
|
string sType = "Email";
|
|
|
|
var checkAccount = db.Queryable<SETB_CMS_Member>()
|
|
.Where(x => x.OrgID == sOrgID && x.Account == sAccount)
|
|
.Count();
|
|
|
|
if (checkAccount > 0)
|
|
{
|
|
|
|
sError = @"該帳號已註冊"; //該帳號無效
|
|
break;
|
|
|
|
}
|
|
|
|
string sEncryptPwd = SecurityUtil.Encrypt(sPassword); //密碼加密
|
|
newUser.MemberID = sMemberID;
|
|
newUser.OrgID = sOrgID;
|
|
newUser.Status = sStatus;
|
|
newUser.Password = sEncryptPwd;
|
|
newUser.Account = newUser.Email;
|
|
newUser.MemberType = sType;
|
|
|
|
var iRel = db.Insertable(newUser).ExecuteCommand();
|
|
|
|
//開始寄信
|
|
var oEmail = new Emails(); //寄件人
|
|
var toEmail = new List<EmailTo>(); //收件人
|
|
var oEmailTo = new EmailTo //收件人資訊
|
|
{
|
|
ToUserID = newUser.MemberID,
|
|
ToUserName = newUser.LastName,
|
|
ToEmail = newUser.Email,
|
|
Type = "to"
|
|
};
|
|
toEmail.Add(oEmailTo);
|
|
oEmail.FromUserName = " ShowEasy 簡單平台股份有限公司";
|
|
oEmail.FromEmail = "No-Reply@showeasy.com";
|
|
oEmail.FromUserName = "【ShowEasy 會員認證】"; //取fonfig
|
|
oEmail.Title = "感謝您註冊ShowEasy"; //取fonfig
|
|
oEmail.EmailBody = VerifyAccount_Mail(newUser.OrgID, newUser.MemberID, newUser.FirstName);
|
|
oEmail.IsCCSelf = false;
|
|
oEmail.Attachments = null;
|
|
oEmail.EmailTo = toEmail;
|
|
var bSend = new MailService(sOrgID, true).MailFactory(oEmail, out sError);
|
|
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, newUser);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sError = Util.GetLastExceptionMsg(ex);
|
|
}
|
|
finally
|
|
{
|
|
if (null != sError)
|
|
{
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.ParameterError,
|
|
MSG = sError
|
|
};
|
|
}
|
|
}
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
//使用者以信箱註冊(認證碼)
|
|
public HttpResponseMessage SignupWithEmail(SETB_CMS_Member newUser)
|
|
{
|
|
//string sMsg = null;
|
|
SuccessResponseMessage srm = null;
|
|
var db = SugarBase.GetIntance();
|
|
string sError = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
string sAccount = newUser.Email;
|
|
string sPassword = newUser.Password;
|
|
string sEmail = newUser.Email;
|
|
string sFirstName = newUser.FirstName;
|
|
string sLastName = newUser.LastName;
|
|
//string sSubscribe = newUser.Subscribe;
|
|
string sMemberID = Guid.NewGuid().ToString(); //會員編號為GUID
|
|
string sOrgID = "TG"; //公司編號預設為TG
|
|
string sStatus = "0"; //會員狀態為未驗證
|
|
string sType = "Email";
|
|
|
|
var RandomTest = 6;
|
|
|
|
string[] strings = new string[RandomTest];
|
|
string[] str = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
|
|
|
|
Random r = new Random();
|
|
string sRandom = "";
|
|
for(int i = 0; i< RandomTest; i++)
|
|
{
|
|
sRandom += str[r.Next(str.Length)];
|
|
}
|
|
|
|
var checkAccount = db.Queryable<SETB_CMS_Member>()
|
|
.Where(x => x.OrgID == sOrgID && x.Account == sAccount)
|
|
.Count();
|
|
|
|
if (checkAccount > 0)
|
|
{
|
|
|
|
sError = @"該帳號已註冊"; //該帳號無效
|
|
break;
|
|
|
|
}
|
|
|
|
string sEncryptPwd = SecurityUtil.Encrypt(sPassword); //密碼加密
|
|
newUser.MemberID = sMemberID;
|
|
newUser.OrgID = sOrgID;
|
|
newUser.Status = sStatus;
|
|
newUser.Password = sEncryptPwd;
|
|
newUser.Account = newUser.Email;
|
|
newUser.MemberType = sType;
|
|
newUser.VerifyCode = sRandom; //認證碼
|
|
|
|
var iExpireTime = 5; //(5分鐘到期)
|
|
var sExpireTime = Common.GetSystemSetting(db, sOrgID, @"VerifyCodeExpireTime");
|
|
if (!string.IsNullOrEmpty(sExpireTime))
|
|
{
|
|
iExpireTime = int.Parse(sExpireTime);
|
|
}
|
|
newUser.ExpireTime = DateTime.Now.AddMinutes(iExpireTime);
|
|
|
|
var iRel = db.Insertable(newUser).ExecuteCommand();
|
|
|
|
//開始寄信
|
|
var oEmail = new Emails(); //寄件人
|
|
var toEmail = new List<EmailTo>(); //收件人
|
|
var oEmailTo = new EmailTo //收件人資訊
|
|
{
|
|
ToUserID = newUser.MemberID,
|
|
ToUserName = newUser.LastName,
|
|
ToEmail = newUser.Email,
|
|
Type = "to"
|
|
};
|
|
toEmail.Add(oEmailTo);
|
|
oEmail.FromUserName = " ShowEasy 簡單平台股份有限公司";
|
|
oEmail.FromEmail = "No-Reply@showeasy.com";
|
|
oEmail.FromUserName = "【ShowEasy 會員認證】"; //取fonfig
|
|
oEmail.Title = "感謝您註冊ShowEasy"; //取fonfig
|
|
oEmail.EmailBody = VerifyAccountWithCode_Mail(newUser.FirstName, newUser.VerifyCode);
|
|
oEmail.IsCCSelf = false;
|
|
oEmail.Attachments = null;
|
|
oEmail.EmailTo = toEmail;
|
|
var bSend = new MailService(sOrgID, true).MailFactory(oEmail, out sError);
|
|
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, newUser);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sError = Util.GetLastExceptionMsg(ex);
|
|
}
|
|
finally
|
|
{
|
|
if (null != sError)
|
|
{
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.ParameterError,
|
|
MSG = sError
|
|
};
|
|
}
|
|
}
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
//重新寄送認證信
|
|
public HttpResponseMessage ReSendVerifyMail(string Email)
|
|
{
|
|
//string sMsg = null;
|
|
SuccessResponseMessage srm = SugarBase.ExecTran(db =>
|
|
{
|
|
do
|
|
{
|
|
var User = db.Queryable<SETB_CMS_Member>().Single(x => x.Email == Email); //找會員
|
|
string sOrgID = User.OrgID;
|
|
|
|
//每次重新寄出都要更新認證碼
|
|
var RandomTest = 6;
|
|
|
|
string[] strings = new string[RandomTest];
|
|
string[] str = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
|
|
|
|
Random r = new Random();
|
|
string sRandom = "";
|
|
for (int i = 0; i < RandomTest; i++)
|
|
{
|
|
sRandom += str[r.Next(str.Length)];
|
|
}
|
|
|
|
//每次重新寄出都要更新時效
|
|
var iExpireTime = 5; //(5分鐘到期)
|
|
var sExpireTime = Common.GetSystemSetting(db, sOrgID, @"VerifyCodeExpireTime");
|
|
if (!string.IsNullOrEmpty(sExpireTime))
|
|
{
|
|
iExpireTime = int.Parse(sExpireTime);
|
|
}
|
|
|
|
var aExpireTime = DateTime.Now.AddMinutes(iExpireTime);
|
|
|
|
var newVerifyCode = db.Updateable<SETB_CMS_Member>() //更新認證碼
|
|
.UpdateColumns(x => new SETB_CMS_Member { VerifyCode = sRandom, ExpireTime = aExpireTime })
|
|
.Where(x => x.Email == Email)
|
|
.ExecuteCommand();
|
|
|
|
var Mailto = db.Queryable<SETB_CMS_Member>().Single(x => x.Email == Email); //找會員
|
|
string sError = "";
|
|
|
|
var oEmail = new Emails(); //寄件人
|
|
var toEmail = new List<EmailTo>(); //收件人
|
|
var oEmailTo = new EmailTo //收件人資訊
|
|
{
|
|
ToUserID = Mailto.MemberID,
|
|
ToUserName = Mailto.LastName,
|
|
ToEmail = Mailto.Email,
|
|
Type = "to"
|
|
};
|
|
toEmail.Add(oEmailTo);
|
|
oEmail.FromUserName = "【ShowEasy 會員認證】"; //取fonfig
|
|
oEmail.Title = "感謝您註冊ShowEasy"; //取fonfig
|
|
oEmail.EmailBody = VerifyAccountWithCode_Mail(Mailto.FirstName, Mailto.VerifyCode);
|
|
oEmail.IsCCSelf = false;
|
|
oEmail.Attachments = null;
|
|
oEmail.EmailTo = toEmail;
|
|
var bSend = new MailService(sOrgID, true).MailFactory(oEmail, out sError);
|
|
//if (sError != null)
|
|
//{
|
|
// break;
|
|
//}
|
|
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, Mailto);
|
|
} while (false);
|
|
|
|
return srm;
|
|
|
|
});
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
//會員認證(連結)
|
|
public HttpResponseMessage VerifyAccount_Link(string OrgID, string MemberID)
|
|
{
|
|
//string sMsg = null;
|
|
SuccessResponseMessage srm = SugarBase.ExecTran(db =>
|
|
{
|
|
do
|
|
{
|
|
var oUser = db.Queryable<SETB_CMS_Member>().Single(x => x.OrgID == OrgID && x.MemberID == MemberID);
|
|
oUser.Status = "1"; //註冊成功
|
|
var iRel = db.Updateable(oUser).ExecuteCommand();
|
|
//注冊成功后默認登錄
|
|
var ticket = new OTB_SYS_TicketAuth
|
|
{
|
|
OrgID = oUser.OrgID,
|
|
UserID = oUser.Account,
|
|
UserName = oUser.FirstName,
|
|
Token = SignExtension.CreateToken(),
|
|
// LoginIp = i_crm.ClientIP,
|
|
LoginTime = DateTime.Now
|
|
};
|
|
var iExpireTime = 240;
|
|
var sExpireTime = Common.GetSystemSetting(db, oUser.OrgID, @"ExpireTime");
|
|
if (!string.IsNullOrEmpty(sExpireTime))
|
|
{
|
|
iExpireTime = int.Parse(sExpireTime);
|
|
}
|
|
else
|
|
{
|
|
iExpireTime = int.Parse(Common.GetAppSettings(@"ExpireTime"));
|
|
}
|
|
ticket.ExpireTime = DateTime.Now.AddMinutes(iExpireTime); //30分钟过期
|
|
ticket.IsVerify = @"Y";
|
|
var oTicket = db.Queryable<OTB_SYS_TicketAuth>().Single(x => x.OrgID == OrgID && x.UserID == oUser.Account);
|
|
if (oTicket != null)
|
|
{
|
|
db.Updateable(ticket).IgnoreColumns(x => x.OutlookId).Where(x => x.NO == oTicket.NO).ExecuteCommand();
|
|
}
|
|
else
|
|
{
|
|
ticket.CreateTime = DateTime.Now;
|
|
db.Insertable(ticket).ExecuteCommand();
|
|
}
|
|
//記錄log日誌
|
|
db.Insertable(new OTB_SYS_LoginLog
|
|
{
|
|
OrgId = ticket.OrgID,
|
|
UserId = ticket.UserID,
|
|
UserName = ticket.UserName,
|
|
LoginIp = ticket.LoginIp,
|
|
LoginTime = ticket.LoginTime
|
|
}).ExecuteCommand();
|
|
HttpRuntimeCache.Set(ticket.OrgID + ticket.UserID, ticket, iExpireTime * 60, true);
|
|
HttpContext.Current.Session.Add(@"orgid", ticket.OrgID);
|
|
HttpContext.Current.Session.Add(@"userid", ticket.UserID);
|
|
HttpCookie cookie = new HttpCookie("EURO_COOKIE"); //初始化並設置Cookie的名稱
|
|
DateTime dt = DateTime.Now;
|
|
TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0); //過期時間為1分鐘
|
|
cookie.Expires = dt.Add(ts); //設置過期時間
|
|
cookie.Values.Add("orgid", ticket.OrgID);
|
|
cookie.Values.Add("userid", ticket.UserID);
|
|
HttpContext.Current.Response.AppendCookie(cookie);
|
|
|
|
var strtoken = string.Format(@"orgid:{0},userid:{1},token:{2}", ticket.OrgID, ticket.UserID, ticket.Token);
|
|
|
|
//開始寄信
|
|
var sError = "";
|
|
var sOrgID = oUser.OrgID;
|
|
|
|
var oEmail = new Emails(); //寄件人
|
|
var toEmail = new List<EmailTo>(); //收件人
|
|
var oEmailTo = new EmailTo //收件人資訊
|
|
{
|
|
ToUserID = oUser.MemberID,
|
|
ToUserName = oUser.LastName,
|
|
ToEmail = oUser.Email,
|
|
Type = "to"
|
|
};
|
|
toEmail.Add(oEmailTo);
|
|
oEmail.FromUserName = "【ShowEasy 認證成功】"; //取fonfig
|
|
oEmail.Title = "歡迎加入ShowEasy🧡"; //取fonfig
|
|
oEmail.EmailBody = CompleteRegistration_Mail(oUser.FirstName);
|
|
oEmail.IsCCSelf = false;
|
|
oEmail.Attachments = null;
|
|
oEmail.EmailTo = toEmail;
|
|
var bSend = new MailService(sOrgID, true).MailFactory(oEmail, out sError);
|
|
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add("authtoken", SecurityUtil.Encrypt(strtoken));
|
|
|
|
} while (false);
|
|
|
|
return srm;
|
|
});
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
//會員認證(認證碼)
|
|
public HttpResponseMessage VerifyAccount(string OrgID, string MemberID, string Code)
|
|
{
|
|
|
|
SuccessResponseMessage srm = null;
|
|
string sError = null;
|
|
var db = SugarBase.GetIntance();
|
|
int errorStaus = 500;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
|
|
var oUser = db.Queryable<SETB_CMS_Member>().Single(x => x.OrgID == OrgID && x.MemberID == MemberID);
|
|
var Time = DateTime.Now; //取當下時間
|
|
|
|
if(Time > oUser.ExpireTime)
|
|
{
|
|
|
|
sError = @"認證時間已過期"; //驗證碼輸入錯誤
|
|
errorStaus = (int)StatusCodeEnum.TokenVerifyFailed;
|
|
break;
|
|
|
|
}
|
|
else
|
|
{
|
|
if (!string.IsNullOrEmpty(Code))
|
|
{
|
|
if (Code == oUser.VerifyCode)
|
|
{
|
|
oUser.Status = "1"; //註冊成功
|
|
}
|
|
else
|
|
{
|
|
sError = @"驗證碼輸入錯誤"; //驗證碼輸入錯誤
|
|
errorStaus = (int)StatusCodeEnum.Error;
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
var iRel = db.Updateable(oUser).ExecuteCommand();
|
|
//注冊成功后默認登錄
|
|
var ticket = new OTB_SYS_TicketAuth
|
|
{
|
|
OrgID = oUser.OrgID,
|
|
UserID = oUser.Account,
|
|
UserName = oUser.FirstName,
|
|
Token = SignExtension.CreateToken(),
|
|
// LoginIp = i_crm.ClientIP,
|
|
LoginTime = DateTime.Now
|
|
};
|
|
var iExpireTime = 240;
|
|
var sExpireTime = Common.GetSystemSetting(db, oUser.OrgID, @"ExpireTime");
|
|
if (!string.IsNullOrEmpty(sExpireTime))
|
|
{
|
|
iExpireTime = int.Parse(sExpireTime);
|
|
}
|
|
else
|
|
{
|
|
iExpireTime = int.Parse(Common.GetAppSettings(@"ExpireTime"));
|
|
}
|
|
ticket.ExpireTime = DateTime.Now.AddMinutes(iExpireTime); //30分钟过期
|
|
ticket.IsVerify = @"Y";
|
|
var oTicket = db.Queryable<OTB_SYS_TicketAuth>().Single(x => x.OrgID == OrgID && x.UserID == oUser.Account);
|
|
if (oTicket != null)
|
|
{
|
|
db.Updateable(ticket).IgnoreColumns(x => x.OutlookId).Where(x => x.NO == oTicket.NO).ExecuteCommand();
|
|
}
|
|
else
|
|
{
|
|
ticket.CreateTime = DateTime.Now;
|
|
db.Insertable(ticket).ExecuteCommand();
|
|
}
|
|
//記錄log日誌
|
|
db.Insertable(new OTB_SYS_LoginLog
|
|
{
|
|
OrgId = ticket.OrgID,
|
|
UserId = ticket.UserID,
|
|
UserName = ticket.UserName,
|
|
LoginIp = ticket.LoginIp,
|
|
LoginTime = ticket.LoginTime
|
|
}).ExecuteCommand();
|
|
HttpRuntimeCache.Set(ticket.OrgID + ticket.UserID, ticket, iExpireTime * 60, true);
|
|
HttpContext.Current.Session.Add(@"orgid", ticket.OrgID);
|
|
HttpContext.Current.Session.Add(@"userid", ticket.UserID);
|
|
HttpCookie cookie = new HttpCookie("EURO_COOKIE"); //初始化並設置Cookie的名稱
|
|
DateTime dt = DateTime.Now;
|
|
TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0); //過期時間為1分鐘
|
|
cookie.Expires = dt.Add(ts); //設置過期時間
|
|
cookie.Values.Add("orgid", ticket.OrgID);
|
|
cookie.Values.Add("userid", ticket.UserID);
|
|
HttpContext.Current.Response.AppendCookie(cookie);
|
|
|
|
var strtoken = string.Format(@"orgid:{0},userid:{1},token:{2}", ticket.OrgID, ticket.UserID, ticket.Token);
|
|
|
|
//開始寄信
|
|
var sOrgID = oUser.OrgID;
|
|
|
|
var oEmail = new Emails(); //寄件人
|
|
var toEmail = new List<EmailTo>(); //收件人
|
|
var oEmailTo = new EmailTo //收件人資訊
|
|
{
|
|
ToUserID = oUser.MemberID,
|
|
ToUserName = oUser.LastName,
|
|
ToEmail = oUser.Email,
|
|
Type = "to"
|
|
};
|
|
toEmail.Add(oEmailTo);
|
|
oEmail.FromUserName = "【ShowEasy 認證成功】"; //取fonfig
|
|
oEmail.Title = "歡迎加入ShowEasy🧡"; //取fonfig
|
|
oEmail.EmailBody = CompleteRegistration_Mail(oUser.FirstName);
|
|
oEmail.IsCCSelf = false;
|
|
oEmail.Attachments = null;
|
|
oEmail.EmailTo = toEmail;
|
|
var bSend = new MailService(sOrgID, true).MailFactory(oEmail, out sError);
|
|
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add("authtoken", SecurityUtil.Encrypt(strtoken));
|
|
|
|
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sError = Util.GetLastExceptionMsg(ex);
|
|
System.Diagnostics.Debug.WriteLine(sError);
|
|
}
|
|
finally
|
|
{
|
|
if (null != sError)
|
|
{
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = errorStaus,
|
|
MSG = sError
|
|
};
|
|
}
|
|
}
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
|
|
}
|
|
|
|
//Verify Account Mail Template(連結)
|
|
private string VerifyAccount_Mail(string OrgID, string MemberID, string FirstName)
|
|
{
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
EmailTemplate_CH mailTemplate = new EmailTemplate_CH();
|
|
var Server = Common.ConfigGetValue("", "ida:RedirectUri");
|
|
|
|
sb.Append(mailTemplate.MailHeader());
|
|
sb.Append(mailTemplate.MailCSS());
|
|
sb.Append(mailTemplate.MailShowEasyLogo());
|
|
//Email Body
|
|
sb.Append("<tr>");
|
|
sb.Append("<td style = \"padding: 0 50px 0 50px; background-color: #f8f8f8\" class=\"sm-p bar\">");
|
|
sb.Append("<table border=\"0\" cellspacing=\"0\" role=\"presentation\" style=\"width: 100%\">");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td>");
|
|
sb.Append("<table border = \"0\" cellpadding = \"0\" cellspacing = \"0\" role = \"presentation\" align = \"center\"> ");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block; padding-top: 30px; padding-left: 20px; padding-right: 0; font-family: arial, sans-serif; color: #000000; text-align: left;\"> ");
|
|
sb.Append("<img class=\"confirm-img\" style = \"display: block\" src = \"https://d3kpqi6h465b7i.cloudfront.net/email/verifyAccount.png \" width = \"50\" height = \"50\"/> ");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:VerifyYourAccount
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 30px;padding-left: 20px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left\";>");
|
|
sb.Append("<h1 class=\"title1\" style = \"font-family: 'arial', 'sans-serif'; font-weight: 700; font-size: 20px; line-height: 18px; color: #000000; margin: 0 0 0 0;\">");
|
|
sb.Append("EMAIL認證信");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:Hi,xxx
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 35px;padding-left: 20px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left;\">");
|
|
sb.Append("<h1 class=\"title1\" style = \"font-family: 'arial', 'sans-serif';font-weight: 700;font-size: 20px;line-height: 20px;color: #000000;margin: 0 0 0 0;\">");
|
|
sb.Append("您好 " + FirstName + ",");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:Welcome to....
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" width = \"440px\" style = \"display: block;padding-top: 10px;padding-left: 20px;padding-right: 0;color: #9c9c9c;text-align: left;\">");
|
|
sb.Append("<p style = \"font-weight: 400;font-size: 16px;line-height: 18px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("歡迎您加入ShowEasy成為會員!<br />");
|
|
sb.Append("請點選<span style=\"color: #f48800;\">會員認證</span>完成註冊並啟用您的帳戶</br>");
|
|
sb.Append("<br />");
|
|
sb.Append("提醒您,下方連結將於30分鐘後失效</br>");
|
|
//sb.Append("in 30 minutes.");
|
|
sb.Append("</p>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</tr>");
|
|
//Button:Verify my account
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" style = \"display: block;padding-top: 35px;font-family: arial, sans-serif;color: #232323;text-align: left;width: 460px;\"> ");
|
|
sb.Append("<table align = \"center\" border = \"0\" cellspacing = \"0\" role = \"presentation\">");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td class=\"s-btn s-btn__primary\" style=\"border-radius: 16px; background: #ee9546\">");
|
|
sb.Append("<a class=\"s-btn s-btn__primary\" href=\"");
|
|
sb.Append(Server + "/api/Signup/VerifyAccount?OrgID=" + OrgID + "&MemberID=" + MemberID);
|
|
//sb.Append(Server + "/api/Signup/VerifyAccount?OrgID=" + OrgID + "&MemberID=" + MemberID);
|
|
sb.Append(" \" target=\"_parent\" style=\"background: #ee9546;border: 1px solid #ee9546;font-family: arial, sans-serif; font-size: 14px;line-height: 16px; color: #ffffff;text-align: center;text-decoration: none;padding: 12px 20px; display: block; border-radius: 16px; white-space: nowrap;\">");
|
|
sb.Append("會員認證");
|
|
sb.Append("</a>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//If the button isn't working, you can click
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" width = \"440px\" style = \"display: block;padding-bottom: 30px;padding-top: 30px;padding-left: 0;padding-right: 0;color: #9c9c9c;text-align: center;width: 460px;\">");
|
|
sb.Append("<p style = \"font-weight: 400;font-size: 16px;line-height: 16px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("如果按鈕無法點擊,你可以直接點擊");
|
|
sb.Append("<a href =\"");
|
|
sb.Append(Server + "/api/Signup/VerifyAccount?OrgID=" + OrgID + "&MemberID=" + MemberID);
|
|
sb.Append("\" style = \"color: #7997ff;font-size: 16px;font-weight: 400;font-family: 'Arial', '微軟正黑體','Microsoft JhengHei', 'Helvetica Neue',Helvetica, Arial, sans-serif;padding: 0;margin: 0;text-align: center;padding-left: 0px;padding-right: 30px;padding-top: 4px;text-decoration: underline;\">");
|
|
sb.Append("<span align=\"center\" width=\"440\">這裡</span>");
|
|
sb.Append("</a>");
|
|
sb.Append("</p>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
|
|
|
|
|
|
//sb.Append(mailTemplate.MailButtom());
|
|
sb.Append(mailTemplate.MailFooter());
|
|
|
|
return sb.ToString();
|
|
|
|
}
|
|
|
|
//Verify Account Mail Template(認證碼)
|
|
private string VerifyAccountWithCode_Mail(string FirstName, string Code)
|
|
{
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
EmailTemplate_CH mailTemplate = new EmailTemplate_CH();
|
|
var Server = Common.ConfigGetValue("", "ida:RedirectUri");
|
|
|
|
sb.Append(mailTemplate.MailHeader());
|
|
sb.Append(mailTemplate.MailCSS());
|
|
sb.Append(mailTemplate.MailShowEasyLogo());
|
|
//Email Body
|
|
sb.Append("<tr>");
|
|
sb.Append("<td style = \"padding: 0 50px 0 50px; background-color: #f8f8f8\" class=\"sm-p bar\">");
|
|
sb.Append("<table border=\"0\" cellspacing=\"0\" role=\"presentation\" style=\"width: 100%\">");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td>");
|
|
sb.Append("<table border = \"0\" cellpadding = \"0\" cellspacing = \"0\" role = \"presentation\" align = \"center\"> ");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block; padding-top: 30px; padding-left: 20px; padding-right: 0; font-family: arial, sans-serif; color: #000000; text-align: left;\"> ");
|
|
sb.Append("<img class=\"confirm-img\" style = \"display: block\" src = \"https://d3kpqi6h465b7i.cloudfront.net/email/verifyAccount.png \" width = \"50\" height = \"50\"/> ");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:VerifyYourAccount
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 10px;padding-left: 20px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left\";>");
|
|
sb.Append("<h1 class=\"title1\" style = \"font-family: 'arial', 'sans-serif'; font-weight: 700; font-size: 24px; line-height: 18px; color: #000000; margin: 0 0 0 0;\">");
|
|
sb.Append("EMAIL認證信");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:Hi,xxx
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 35px;padding-left: 20px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left;\">");
|
|
sb.Append("<h1 class=\"title1\" style = \"font-family: 'arial', 'sans-serif';font-weight: 700;font-size: 20px;line-height: 20px;color: #000000;margin: 0 0 0 0;\">");
|
|
sb.Append("您好 " + FirstName + ",");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:Welcome to....
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" width = \"440px\" style = \"display: block;padding-top: 20px;padding-left: 20px;padding-right: 0;color: #9c9c9c;text-align: left;\">");
|
|
sb.Append("<p style = \"font-weight: 400;font-size: 16px;line-height: 18px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("歡迎您加入ShowEasy成為會員!<br />");
|
|
sb.Append("請使用下方的<span style=\"color: #f48800;\">認證碼</span>完成註冊並啟用您的帳戶<br />");
|
|
sb.Append("<br />");
|
|
sb.Append("提醒您,下方認證碼將於30分鐘後失效<br />");
|
|
//sb.Append("in 30 minutes.");
|
|
sb.Append("</p>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</tr>");
|
|
//Button:Verify my account
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" style = \"display: block;padding-top: 35px;padding-bottom: 80px;font-family: arial, sans-serif;color: #232323;text-align: left;width: 460px;\"> ");
|
|
sb.Append("<table align = \"center\" border = \"0\" cellspacing = \"0\" role = \"presentation\">");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td class=\"s-btn s-btn__primary\" style=\"border-radius: 16px; background: #f1f1f1;width: 440px;height: 40px;text-align: center;font-weight: bold;font-size: 30px;\">");
|
|
sb.Append(Code);
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//sb.Append(mailTemplate.MailButtom());
|
|
sb.Append(mailTemplate.MailFooter());
|
|
|
|
return sb.ToString();
|
|
|
|
}
|
|
|
|
//寄送忘記密碼信
|
|
public HttpResponseMessage SendForgotMail(string Email)
|
|
{
|
|
//string sMsg = null;
|
|
SuccessResponseMessage srm = null;
|
|
var db = SugarBase.GetIntance();
|
|
string sError = null;
|
|
|
|
|
|
try
|
|
{
|
|
do
|
|
{
|
|
|
|
var Mailto = db.Queryable<SETB_CMS_Member>().First(x => x.Email == Email);
|
|
|
|
if (Mailto == null)
|
|
{
|
|
sError = @"帳號或密碼不正確"; //帳號或密碼不正確
|
|
break;
|
|
}
|
|
|
|
if (Mailto.Status != "1")
|
|
{
|
|
|
|
sError = Mailto.Status; //該帳號無效
|
|
break;
|
|
|
|
}
|
|
var sOrgID = Mailto.OrgID;
|
|
//開始寄信
|
|
var oEmail = new Emails(); //寄件人
|
|
var toEmail = new List<EmailTo>(); //收件人
|
|
var oEmailTo = new EmailTo //收件人資訊
|
|
{
|
|
ToUserID = Mailto.MemberID,
|
|
ToUserName = Mailto.LastName,
|
|
ToEmail = Mailto.Email,
|
|
Type = "to"
|
|
};
|
|
toEmail.Add(oEmailTo);
|
|
oEmail.FromUserName = "【ShowEasy 重設密碼】"; //取fonfig
|
|
oEmail.Title = "修改會員密碼"; //取fonfig
|
|
oEmail.EmailBody = Forgot_Mail(Mailto.Email, Mailto.FirstName);
|
|
oEmail.IsCCSelf = false;
|
|
oEmail.Attachments = null;
|
|
oEmail.EmailTo = toEmail;
|
|
var bSend = new MailService(sOrgID, true).MailFactory(oEmail, out sError);
|
|
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, Mailto);
|
|
} while (false);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sError = Util.GetLastExceptionMsg(ex);
|
|
}
|
|
finally
|
|
{
|
|
if (null != sError)
|
|
{
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.TokenVerifyFailed,
|
|
MSG = sError
|
|
};
|
|
}
|
|
}
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
//return srm;
|
|
|
|
|
|
|
|
//return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
//Send Forgot Password Mail Template
|
|
private string Forgot_Mail(string Email, string FirstName)
|
|
{
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
EmailTemplate_CH mailTemplate = new EmailTemplate_CH();
|
|
var Server = Common.ConfigGetValue("", "ida:RedirectUri");
|
|
|
|
|
|
sb.Append(mailTemplate.MailHeader());
|
|
sb.Append(mailTemplate.MailCSS());
|
|
sb.Append(mailTemplate.MailShowEasyLogo());
|
|
//Email Body
|
|
sb.Append("<tr>");
|
|
sb.Append("<td style = \"padding: 0 50px 0 50px; background-color: #f8f8f8\" class=\"sm-p bar\">");
|
|
sb.Append("<table border=\"0\" cellspacing=\"0\" role=\"presentation\" style=\"width: 100%\">");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td>");
|
|
sb.Append("<table border = \"0\" cellpadding = \"0\" cellspacing = \"0\" role = \"presentation\" align = \"center\"> ");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block; padding-top: 30px; padding-left: 20px; padding-right: 0; font-family: arial, sans-serif; color: #000000; text-align: left;\"> ");
|
|
sb.Append("<img style = \"display: block\" src = \"https://d3kpqi6h465b7i.cloudfront.net/email/unlock-alt.png \" width = \"50\" height = \"50\"/> ");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:VerifyYourAccount
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 30px;padding-left: 20px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left\";>");
|
|
sb.Append("<h1 style = \"font-family: 'arial', 'sans-serif'; font-weight: 700; font-size: 20px; line-height: 18px; color: #000000; margin: 0 0 0 0;\">");
|
|
sb.Append("密碼重設信");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:Hi,xxx
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 35px;padding-left: 20px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left;\">");
|
|
sb.Append("<h1 style = \"font-family: 'arial', 'sans-serif';font-weight: 700;font-size: 20px;line-height: 20px;color: #000000;margin: 0 0 0 0;\">");
|
|
sb.Append(FirstName + ",");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:oh no....
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" width = \"440px\" style = \"display: block;padding-top: 10px;padding-left: 20px;padding-right: 0;color: #9c9c9c;text-align: left;\">");
|
|
sb.Append("<p style = \"font-weight: 400;font-size: 16px;line-height: 18px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("喔不您忘記您的密碼了嗎?<br />");
|
|
sb.Append("沒關係,我們一直都在!<br />");
|
|
sb.Append("<br />");
|
|
sb.Append("請點選<span style=\"color: #f48800;\">重設密碼</span>重新設置一個新的密碼</br>");
|
|
sb.Append("提醒您,下方連結將於30分鐘後失效<br />");
|
|
sb.Append("<br />");
|
|
sb.Append("<span style=\"color: #faae69;\">如果您沒有申請重設您的密碼請忽略這封信</span></br>");
|
|
//sb.Append("<span style=\"color: #faae69;\">this mail.</span></br>");
|
|
sb.Append("</p>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</tr>");
|
|
//Button:Reset password
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" style = \"display: block;padding-top: 35px;font-family: arial, sans-serif;color: #232323;text-align: left;width: 460px;\"> ");
|
|
sb.Append("<table align = \"center\" border = \"0\" cellspacing = \"0\" role = \"presentation\">");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td class=\"s-btn s-btn__primary\" style=\"border-radius: 16px; background: #ee9546\">");
|
|
sb.Append("<a class=\"s-btn s-btn__primary\" href=\"");
|
|
//sb.Append(Server + "/api/Signup/ResetPage?Email=" + Email);
|
|
sb.Append(Server + "/api/Signup/ResetPage?Email=" + Email);
|
|
//sb.Append(Server + "/api/Signup/ResetPage?Email=" + Email);
|
|
sb.Append(" \" target=\"_parent\" style=\"background: #ee9546;border: 1px solid #ee9546;font-family: arial, sans-serif; font-size: 14px;line-height: 16px; color: #ffffff;text-align: center;text-decoration: none;padding: 12px 20px; display: block; border-radius: 16px; white-space: nowrap;\">");
|
|
sb.Append("重設密碼");
|
|
sb.Append("</a>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//If the button isn't working, you can click
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" width = \"440px\" style = \"display: block;padding-bottom: 30px;padding-top: 30px;padding-left: 0;padding-right: 0;color: #9c9c9c;text-align: center;width: 460px;\">");
|
|
sb.Append("<p style = \"font-weight: 400;font-size: 16px;line-height: 16px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("如果按鈕無法點擊,你可以直接點擊");
|
|
sb.Append("<a href =\"");
|
|
sb.Append(Server + "/api/Signup/ResetPage?Email=" + Email);
|
|
sb.Append("\" style = \"color: #7997ff;font-size: 12px;font-weight: 400;font-family: 'Arial', '微軟正黑體','Microsoft JhengHei', 'Helvetica Neue',Helvetica, Arial, sans-serif;padding: 0;margin: 0;text-align: center;padding-left: 0px;padding-right: 30px;padding-top: 4px;text-decoration: underline;\">");
|
|
sb.Append("<span align=\"center\" width=\"340\">這裡</span>");
|
|
sb.Append("</a>");
|
|
sb.Append("</p>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//sb.Append(mailTemplate.MailButtom());
|
|
sb.Append(mailTemplate.MailFooter());
|
|
|
|
return sb.ToString();
|
|
|
|
}
|
|
|
|
//確認要修改密碼(導向修改密碼的頁面)
|
|
public HttpResponseMessage ResetPage(string Email)
|
|
{
|
|
//string sMsg = null;
|
|
SuccessResponseMessage srm = SugarBase.ExecTran(db =>
|
|
{
|
|
do
|
|
{
|
|
var sUser = db.Queryable<SETB_CMS_Member>().Single(x => x.Email == Email);
|
|
|
|
string sAccount = sUser.Account;
|
|
string sPassword = sUser.Password;
|
|
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, sUser.Account);
|
|
} while (false);
|
|
|
|
return srm;
|
|
|
|
});
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
//輸入新密碼
|
|
public HttpResponseMessage ResetPassword(string Email, string Password)
|
|
{
|
|
//string sMsg = null;
|
|
SuccessResponseMessage srm = SugarBase.ExecTran(db =>
|
|
{
|
|
do
|
|
{
|
|
Console.WriteLine(Email);
|
|
var sUser = db.Queryable<SETB_CMS_Member>().Single(x => x.Email == Email);
|
|
sUser.Password = SecurityUtil.Encrypt(Password); //新密碼加密
|
|
var iRel = db.Updateable(sUser).ExecuteCommand(); //將新密碼更新至資料庫
|
|
|
|
var sError = ""; //寄信返回之錯誤
|
|
var sOrgID = sUser.OrgID;
|
|
|
|
//開始寄信
|
|
var oEmail = new Emails(); //寄件人
|
|
var toEmail = new List<EmailTo>(); //收件人
|
|
var oEmailTo = new EmailTo //收件人資訊
|
|
{
|
|
ToUserID = sUser.MemberID,
|
|
ToUserName = sUser.LastName,
|
|
ToEmail = sUser.Email,
|
|
Type = "to"
|
|
};
|
|
toEmail.Add(oEmailTo);
|
|
oEmail.FromUserName = "【ShowEasy 密碼已重設】"; //取fonfig
|
|
oEmail.Title = "已修改會員密碼"; //取fonfig
|
|
oEmail.EmailBody = PasswordChange_Mail(sUser.Email, sUser.FirstName);
|
|
oEmail.IsCCSelf = false;
|
|
oEmail.Attachments = null;
|
|
oEmail.EmailTo = toEmail;
|
|
var bSend = new MailService(sOrgID, true).MailFactory(oEmail, out sError);
|
|
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, sUser.Password);
|
|
} while (false);
|
|
|
|
return srm;
|
|
|
|
});
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
}
|
|
|
|
//Send Password Change Mail Template
|
|
private string PasswordChange_Mail(string Email, string FirstName)
|
|
{
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
EmailTemplate_CH mailTemplate = new EmailTemplate_CH();
|
|
var Server = Common.ConfigGetValue("", "ida:RedirectUri");
|
|
|
|
|
|
sb.Append(mailTemplate.MailHeader());
|
|
sb.Append(mailTemplate.MailCSS());
|
|
sb.Append(mailTemplate.MailShowEasyLogo());
|
|
//Email Body
|
|
sb.Append("<tr>");
|
|
sb.Append("<td style = \"padding: 0 50px 0 50px; background-color: #f8f8f8\" class=\"sm-p bar\">");
|
|
sb.Append("<table border=\"0\" cellspacing=\"0\" role=\"presentation\" style=\"width: 100%\">");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td>");
|
|
sb.Append("<table border = \"0\" cellpadding = \"0\" cellspacing = \"0\" role = \"presentation\" align = \"center\"> ");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block; padding-top: 30px; padding-left: 20px; padding-right: 0; font-family: arial, sans-serif; color: #000000; text-align: left;\"> ");
|
|
sb.Append("<img style = \"display: block\" src = \"https://d3kpqi6h465b7i.cloudfront.net/email/PasswordChange.png \" width = \"50\" height = \"50\"/> ");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:PASSWORD CHANGE NOTICE
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 30px;padding-left: 20px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left\";>");
|
|
sb.Append("<h1 style = \"font-family: 'arial', 'sans-serif'; font-weight: 700; font-size: 20px; line-height: 18px; color: #000000; margin: 0 0 0 0;\">");
|
|
sb.Append("密碼變更通知信");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:Hi,xxx
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 35px;padding-left: 20px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left;\">");
|
|
sb.Append("<h1 style = \"font-family: 'arial', 'sans-serif';font-weight: 700;font-size: 20px;line-height: 20px;color: #000000;margin: 0 0 0 0;\">");
|
|
sb.Append(FirstName + ",ShowEasy已成功為您更新密碼<br />");
|
|
//sb.Append("successfully.");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:Don't forget....
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" width = \"440px\" style = \"display: block;padding-top: 30px;padding-left: 20px;padding-right: 0;color: #9c9c9c;text-align: left;\">");
|
|
sb.Append("<p style = \"font-weight: 400;font-size: 16px;line-height: 18px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("下次登入ShowEasy時記得使用新的密碼喔!<br />");
|
|
//sb.Append("SowEasy account!<br />");
|
|
sb.Append("<br />");
|
|
sb.Append("如有遇到任何問題請直接與我們聯繫。<br />");
|
|
sb.Append("</p>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 30px;padding-left: 20px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left;\">");
|
|
sb.Append("<img style = \"display:inline-block;\" src = \"https://d3kpqi6h465b7i.cloudfront.net/email/phone.png\" width = \"20\" height = \"20\"/>");
|
|
sb.Append("<span style = \"display: inline-block;font-weight: 400;font-size: 18px;line-height: 18px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("886-2-2725-5000");
|
|
sb.Append("</span>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"440\" style = \"display: block;padding-top: 15px;padding-left: 20px;padding-bottom: 30px;padding-right: 0;font-family: arial, sans-serif;color: #000000;text-align: left;\">");
|
|
sb.Append("<img style = \"display:inline-block;\" src = \"https://d3kpqi6h465b7i.cloudfront.net/email/mail.png\" width = \"20\" height = \"20\"/>");
|
|
sb.Append("<span style = \"display: inline-block;font-weight: 400;font-size: 18px;line-height: 18px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("info@showeasy.com");
|
|
sb.Append("</span>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append(mailTemplate.MailFooter());
|
|
|
|
return sb.ToString();
|
|
|
|
}
|
|
|
|
//CompleteRegistration Mail Template
|
|
private string CompleteRegistration_Mail(string FirstName)
|
|
{
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
EmailTemplate_CH mailTemplate = new EmailTemplate_CH();
|
|
|
|
sb.Append(mailTemplate.MailHeader());
|
|
sb.Append(mailTemplate.MailCSS());
|
|
sb.Append(mailTemplate.MailShowEasyLogo());
|
|
//Email Body
|
|
sb.Append("<tr>");
|
|
sb.Append("<td style = \"padding: 0 50px 0 50px; background-color: #f8f8f8\" class=\"sm-p bar\">");
|
|
sb.Append("<table border=\"0\" cellspacing=\"0\" role=\"presentation\" style=\"width: 100%\">");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td>");
|
|
sb.Append("<table border = \"0\" cellpadding = \"0\" cellspacing = \"0\" role = \"presentation\" align = \"left\"> ");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"340\" style = \"display: block; padding-top: 30px; padding-left: 30px; padding-right: 30px; font-family: arial, sans-serif; color: #000000; text-align: left;\"> ");
|
|
sb.Append("<img style = \"display: block\" src = \"https://d3kpqi6h465b7i.cloudfront.net/email/icon-user-check.png \" width = \"40\" height = \"40\"/> ");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:USER COMPLETE REGISTRATION
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"340\" style = \"display: block;padding-top: 30px;padding-left: 30px;padding-right: 30px;font-family: arial, sans-serif;color: #000000;text-align: left\";>");
|
|
sb.Append("<h1 style = \"font-family: 'arial', 'sans-serif'; font-weight: 700; font-size: 16px; line-height: 18px; color: #000000; margin: 0 0 0 0;\">");
|
|
sb.Append("歡迎加入SHOWEASY!");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:Hi,xxx
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"340\" style = \"display: block;padding-top: 30px;padding-left: 30px;padding-right: 30px;font-family: arial, sans-serif;color: #000000;text-align: left;\">");
|
|
sb.Append("<h1 style = \"font-family: 'arial', 'sans-serif';font-weight: 700;font-size: 16px;line-height: 18px;color: #000000;margin: 0 0 0 0;\">");
|
|
sb.Append(FirstName + ",歡迎加入ShowEasy!");
|
|
sb.Append("</h1>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Text:Oue mission....
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"340\" width = \"340px\" style = \"display: block;padding-top: 10px;padding-left: 30px;padding-right: 30px;color: #9c9c9c;text-align: left;\">");
|
|
sb.Append("<p style = \"font-weight: 400;font-size: 12px;line-height: 14px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("我們的存在是為了滿足您所有參展的需求<br />");
|
|
//sb.Append("<br />");
|
|
sb.Append("在ShowEasy,您可以找到全球展覽資訊以及所有展覽相關服務");
|
|
//sb.Append("around the world and related services for exhibitors and<br />");
|
|
//sb.Append("visitors.");
|
|
sb.Append("</p>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</tr>");
|
|
//Img
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"340\" style = \"display: block;padding-top: 20px;padding-left: 30px;padding-right: 30px;font-family: arial, sans-serif;color: #000000;text-align: center;\"> ");
|
|
sb.Append("<img style = \"display: block;margin-left: auto;margin-right: auto;\" src = \"https://d3kpqi6h465b7i.cloudfront.net/email/icon-success-human.png \" width = \"190\" height = \"190\"/> ");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//Button:Verify my account
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" style = \"display: block;padding-top: 30px;font-family: arial, sans-serif;color: #232323;text-align: left;\"> ");
|
|
sb.Append("<table align = \"center\" border = \"0\" cellspacing = \"0\" role = \"presentation\">");
|
|
sb.Append("<tr>");
|
|
sb.Append("<td class=\"s-btn s-btn__primary\" style=\"border-radius: 16px; background: #ee9546\">");
|
|
sb.Append("<a class=\"s-btn s-btn__primary\"");
|
|
sb.Append("href=\"https://www.showeasy.com\"");
|
|
sb.Append("target=\"_parent\" style=\"background: #ee9546;border: 1px solid #ee9546;font-family: arial, sans-serif; font-size: 14px;line-height: 16px; color: #ffffff;text-align: center;text-decoration: none;padding: 12px 20px; display: block; border-radius: 16px; white-space: nowrap;\">");
|
|
sb.Append("讓我們啟程吧");
|
|
sb.Append("</a>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//If the button isn't working, you can click
|
|
sb.Append("<tr>");
|
|
sb.Append("<td bgcolor = \"#FEFEFE\" width = \"340\" width = \"340px\" style = \"display: block;padding-bottom: 30px;padding-top: 30px;padding-left: 30px;padding-right: 30px;color: #9c9c9c;text-align: center;\">");
|
|
sb.Append("<p style = \"font-weight: 400;font-size: 12px;line-height: 14px;letter-spacing: 0.02em;font-family: 'arial', 'sans-serif';margin: 0 0 0px;\" class=\"has-markdown\">");
|
|
sb.Append("如果按鈕無法點擊,你可以直接點擊");
|
|
sb.Append("<a href =\"https://www.showeasy.com\"");
|
|
sb.Append(" style = \"color: #7997ff;font-size: 12px;font-weight: 400;font-family: 'Arial', '微軟正黑體','Microsoft JhengHei', 'Helvetica Neue',Helvetica, Arial, sans-serif;padding: 0;margin: 0;text-align: center;padding-left: 0px;padding-right: 30px;padding-top: 4px;text-decoration: underline;\">");
|
|
sb.Append("<span align=\"center\" width=\"340\">這裡</span>");
|
|
sb.Append("</a>");
|
|
sb.Append("</p>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
sb.Append("</table>");
|
|
sb.Append("</td>");
|
|
sb.Append("</tr>");
|
|
//sb.Append(mailTemplate.MailButtom());
|
|
sb.Append(mailTemplate.MailFooter());
|
|
|
|
return sb.ToString();
|
|
|
|
}
|
|
|
|
//DecryptPassword
|
|
public HttpResponseMessage DecryptPassword(string OrgID, string Account)
|
|
{
|
|
//string sMsg = null;
|
|
SuccessResponseMessage srm = null;
|
|
var db = SugarBase.GetIntance();
|
|
string sError = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var sUser = db.Queryable<SETB_CMS_Member>().Single(x => x.Account == Account && x.OrgID == OrgID);
|
|
|
|
var password = SecurityUtil.Decrypt(sUser.Password);
|
|
|
|
srm = new SuccessResponseMessage(null, null);
|
|
srm.DATA.Add(BLWording.REL, password);
|
|
} while (false);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sError = Util.GetLastExceptionMsg(ex);
|
|
}
|
|
finally
|
|
{
|
|
if (null != sError)
|
|
{
|
|
srm = new SuccessResponseMessage(null, null)
|
|
{
|
|
STATUSCODE = (int)StatusCodeEnum.TokenVerifyFailed,
|
|
MSG = sError
|
|
};
|
|
}
|
|
}
|
|
|
|
return HttpResponseExtension.ToJson(JsonConvert.SerializeObject(srm));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|