Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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;
            }
        }
Exemplo n.º 4
0
        /// <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;
            }
        }
Exemplo n.º 5
0
        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");
            }
        }