/// <summary> /// 註冊使用者 /// <para>回傳項目</para> /// <para>Item1(bool) 註冊結果</para> /// <para>Item2(List<stirng>) 錯誤代碼</para> /// <para>Item3(string) 相關訊息</para> /// <para>Item4(UserList) 使用者資訊</para> /// </summary> /// <param name="userAccount">使用者名稱</param> /// <param name="userPw1">使用者密碼</param> /// <param name="userPw2">使用者密碼</param> /// <param name="email">Email</param> /// <returns></returns> public Tuple <bool, List <string>, string, UserList> RegisterUser(string userAccount, string userPw1, string userPw2, string email) { bool result = false; List <string> errorList = GetFieldCheckError(userAccount, userPw1, userPw2, email); string msg = "註冊失敗"; UserList userList = new UserList(); if (!errorList.Any()) { try { userList = new UserList { CreateDate = DateTime.Now, CreateIP = PBTool.GetIP(), UserEmail = email, UserName = userAccount, UserPW = GetSaltPW(userPw1), UserAccess = 1, UserStatus = true }; messageBoardEntities.UserList.Add(userList); messageBoardEntities.SaveChanges(); DoUserLog(userList.UserID, "註冊成功"); msg = "註冊成功,即將跳轉至登入頁"; result = true; } catch (Exception err) { errorList.Add("發生錯誤"); LogTool.DoErrorLog($"{err.Message}\r\n{err.StackTrace}"); } } return(Tuple.Create(result, errorList, msg, userList)); }
/// <summary> /// 設定使用者新密碼 /// </summary> /// <param name="userName">使用者名稱</param> /// <param name="userEmail">使用者信箱</param> /// <param name="newPW">新的密碼</param> /// <returns>回傳設定結果</returns> public bool isSetNewPW(string userName, string userEmail, string newPW) { bool result = false; if (isUserPWCorrect(newPW)) { var userInfo = messageBoardEntities.UserList .Where(r => r.UserName.Equals(userName, StringComparison.CurrentCultureIgnoreCase) && r.UserEmail.Equals(userEmail, StringComparison.CurrentCultureIgnoreCase)); if (userInfo.Any()) { try { var userUpdate = messageBoardEntities.UserList.Find(userInfo.FirstOrDefault().UserID); userUpdate.UserPW = GetSaltPW(newPW); messageBoardEntities.SaveChanges(); result = true; DoUserLog(userInfo.FirstOrDefault().UserID, "改密碼成功"); } catch (Exception err) { DoUserLog(userInfo.FirstOrDefault().UserID, "改密碼失敗"); LogTool.DoErrorLog($"#{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff")}:{err.Message}\r\n"); throw; } } } return(result); }
/// <summary> /// 儲存使用者圖示 /// </summary> /// <param name="httpPostedFile">傳遞的檔案</param> /// <param name="userID">儲存檔案名稱</param> public static void SaveUserPic(HttpPostedFileBase httpPostedFile, int userID) { try { string realFileViturePath = $"UserIcon/UserIcon_{userID}{Path.GetExtension(httpPostedFile.FileName)}"; string tmpFilePath = HttpContext.Current.Server.MapPath($@"~/UserIcon/2_UserIcon{userID}{Path.GetExtension(httpPostedFile.FileName)}"); string realFilePath = HttpContext.Current.Server.MapPath($@"~/{realFileViturePath}"); if (File.Exists(tmpFilePath)) { File.Delete(HttpContext.Current.Server.MapPath(tmpFilePath)); } httpPostedFile.SaveAs(tmpFilePath); using (Image originImg = Image.FromFile(tmpFilePath)) { using (var formattedImg = AddFrame(GetResizeImage(originImg, 100, 100), 100, 100)) { formattedImg.Save(realFilePath); } } if (File.Exists(tmpFilePath)) { File.Delete(tmpFilePath); MessageBoardEntities messageBoardEntities = new MessageBoardEntities(); var user = messageBoardEntities.UserList.Find(userID); user.UserIcon = realFileViturePath; messageBoardEntities.SaveChanges(); } GC.Collect(); } catch (Exception err) { LogTool.DoErrorLog($"#{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff")}:{err.Message}\r\n{err.StackTrace}\r\n"); throw; } }
/// <summary> /// 儲存使用者 Log 檔 /// </summary> /// <param name="userID">使用者 ID</param> /// <param name="userOperator">訊息</param> private void DoUserLog(int userID, string userOperator) { try { UserLog userLog = new UserLog { UserID = userID, UserOperator = userOperator, IP = PBTool.GetIP(), CreateDate = DateTime.Now }; messageBoardEntities.UserLog.Add(userLog); messageBoardEntities.SaveChanges(); // ToDo 20180817 操作紀錄 //var userJSON = JsonConvert.SerializeObject(userLog); } catch (Exception err) { LogTool.DoErrorLog($"#{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff")}:{err.Message}\r\n"); throw; } }
public static void SaveMessagePic(HttpPostedFileBase httpPostedFile, int userID, int messageID) { try { string fileName = Guid.NewGuid().ToString(); string realFileViturePath = $"messagePics/origin/{fileName}{Path.GetExtension(httpPostedFile.FileName)}"; string tmpFilePath = HttpContext.Current.Server.MapPath($@"~/messagePics/{fileName}{Path.GetExtension(httpPostedFile.FileName)}"); string realFilePath = HttpContext.Current.Server.MapPath($@"~/{realFileViturePath}"); httpPostedFile.SaveAs(realFilePath); using (Image originImg = Image.FromFile(realFilePath)) { using (var formattedImg = GetResizeImage(originImg, 60, 60)) { formattedImg.Save(tmpFilePath); } } MessageBoardEntities messageBoardEntities = new MessageBoardEntities(); MessagePic messagePic = new MessagePic() { CreateDate = DateTime.Now, MessageID = messageID, CreateUserID = userID, PicURL = realFileViturePath, picStatus = true }; messageBoardEntities.MessagePic.Add(messagePic); messageBoardEntities.SaveChanges(); GC.Collect(); } catch (Exception err) { LogTool.DoErrorLog($"#{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff")}:{err.Message}\r\n{err.StackTrace}\r\n"); } }