コード例 #1
0
        public ActionResult ResetPassword(ResetPassword resetPassword)
        {
            if (ModelState.IsValid)
            {
                var checkEmail = unitOfWork.Users.GetUserByLoginData(resetPassword.Email);
                if (checkEmail == null)
                {
                    ModelState.AddModelError("", "Пользователь с таким Email не зарегистрирован");
                    return(View());
                }
                Random random = new Random();
                int    code   = random.Next(1000, 9999);

                MailTools mail = new MailTools();

                var result = mail.SendMailToUser(resetPassword.Email, "Сброс пароля", $"<p>Код для сброса пароля: <b>{ code }</b></p>");

                if (result != null)
                {
                    ModelState.AddModelError("", result);
                    return(View());
                }

                HttpCookie cookie = new HttpCookie("code", code.ToString());
                cookie.Expires = DateTime.Now.AddHours(2);

                Response.Cookies.Add(cookie);
                return(RedirectToAction("ResetCode", new { email = resetPassword.Email }));
            }
            return(View());
        }
コード例 #2
0
        private bool SendEmailAPI(string email, string title, string meetingName, string DocName, string data)
        {
            string Body = "<img src=\"http://open.weixin.ecache.com.cn/IO/Content/images/ioemail2.png\"/>" +
                          "<p>尊敬的" + DocName + "医生:</p>" +
                          "<p>    感谢您参加" + meetingName + ",该会议资料下载地址如下:</p>" +
                          data +
                          "<p>    此邮件的信息只发送给医药专业人员,不应转发给其他任何人。</p>" +
                          "<p>    ©️2018,Bristol-Myers Squibb 保留所有权利。</p>";
            string    Host      = ConfigurationManager.ConnectionStrings["EmailHost"].ConnectionString;
            string    userName  = ConfigurationManager.ConnectionStrings["EmailUserName"].ConnectionString;
            string    passWord  = ConfigurationManager.ConnectionStrings["EmailPassWord"].ConnectionString;
            int       Port      = Convert.ToInt32(ConfigurationManager.ConnectionStrings["EmailPort"].ConnectionString);
            bool      EnableSsl = Convert.ToBoolean(ConfigurationManager.ConnectionStrings["EmailEnableSsl"].ConnectionString);
            MailTools mailTools = new MailTools(Host, userName, passWord, email, title, Body, null, null)
            {
                Port       = Port,
                EnableSsl  = EnableSsl,
                IsBodyHtml = true
            };

            try
            {
                mailTools.Send();
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #3
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new Customer {
                    UserName = model.Email, Email = model.Email
                };
                var result = await SecureAuthUserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    string code = await SecureAuthUserManager.GenerateEmailConfirmationTokenAsync(user.Id);

                    code = System.Web.HttpUtility.UrlEncode(code);
                    var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);

                    string mailBody = new MailTools().BodyGenerate(MailTools.EmailType.Account, callbackUrl);
                    await SecureAuthUserManager.SendEmailAsync(user.Id, "確認您的帳戶", mailBody);

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            return(View(model));
        }
コード例 #4
0
ファイル: TasksController.cs プロジェクト: RamishkaX/slothfl
        public ActionResult AddRequest(TaskRequests taskRequests)
        {
            taskRequests.UserId = int.Parse(User.Identity.Name);
            if (ModelState.IsValid)
            {
                unitOfWork.TaskRequests.AddNewItem(taskRequests);
                unitOfWork.Save();

                var task = unitOfWork.Tasks.GetTaskByIdWithJoin(taskRequests.TaskId, false, false, true, true);

                MailTools mail = new MailTools();

                mail.SendMailToUser(task.Users.Email, "На вашу задачу оставили заявку!", $"<p>На вашу задачу оставили заявку! Зайдите на сайт и проверьте ее.</p>");

                return(RedirectToLocal("~/Account/MyRequests"));
            }
            return(PartialView("_AddRequest"));
        }
コード例 #5
0
        public ActionResult ResetCode(ResetCode resetCode)
        {
            if (ModelState.IsValid)
            {
                HttpCookie cookie = HttpContext.Request.Cookies.Get("code");
                if (resetCode.Code != cookie.Value.ToString())
                {
                    ModelState.AddModelError("", "Код для сброса неверен");
                    return(View(resetCode));
                }

                string password = "";
                Random random   = new Random();

                while (password.Length < 10)
                {
                    char c = (char)random.Next(33, 125);
                    if (char.IsLetterOrDigit(c))
                    {
                        password += c;
                    }
                }

                MailTools mail = new MailTools();

                var result = mail.SendMailToUser(resetCode.Email, "Сброс пароля", $"<p>Ваш новый пароль: <b>{ password }</b></p>");

                if (result != null)
                {
                    ModelState.AddModelError("", result);
                    return(View(resetCode));
                }

                var user = unitOfWork.Users.GetUserByLoginData(resetCode.Email);
                user.Password = password;
                unitOfWork.Dispose();
                unitOfWork = new UnitOfWork();
                unitOfWork.Users.UpdateItem(user);
                unitOfWork.Save();

                ViewBag.SuccessMessage = "Ваш пароль был отправлен на почту";
            }
            return(View(resetCode));
        }
コード例 #6
0
ファイル: TasksController.cs プロジェクト: RamishkaX/slothfl
        public ActionResult AddWork(HttpPostedFileBase uploadFile, WorkOnTask workOnTask)
        {
            if (ModelState.IsValid)
            {
                if (uploadFile == null)
                {
                    ModelState.AddModelError("", "Выберите файл");
                    return(PartialView("_AddWork", workOnTask));
                }
                workOnTask.UserId = int.Parse(User.Identity.Name);
                string path   = Server.MapPath("~/Content/Assets/Tasks/" + workOnTask.TaskId);
                string result = fileManager.AddFile(uploadFile, path, workOnTask);
                var    task   = unitOfWork.Tasks.GetTaskByIdWithJoin(workOnTask.TaskId, false, false, true, true);
                unitOfWork.Dispose();
                unitOfWork = new UnitOfWork();
                if (result == null)
                {
                    if (task == null)
                    {
                        ModelState.AddModelError("", "Задача не найдена");
                        return(PartialView("_AddWork", workOnTask));
                    }

                    workOnTask.File = workOnTask.TaskId + "/" + Path.GetFileName(uploadFile.FileName);
                    unitOfWork.WorkOnTask.AddNewItem(workOnTask);
                    task.Status = "В проверке";
                    unitOfWork.Tasks.UpdateItem(task);
                    unitOfWork.Save();

                    MailTools mail = new MailTools();

                    mail.SendMailToUser(task.Users.Email, "Исполнитель загрузил решение", $"<p>Исполнитель загрузил решение. Проверьте, верное ли оно.</p>");
                }
                else
                {
                    ModelState.AddModelError("", result);
                    return(PartialView("_AddWork", workOnTask));
                }

                return(RedirectToLocal($"~/Tasks/TaskDetails/{workOnTask.TaskId}"));
            }
            return(PartialView("_AddWork", workOnTask));
        }
コード例 #7
0
ファイル: TasksController.cs プロジェクト: RamishkaX/slothfl
        public ActionResult NotAcceptWork(WorkOnTask workOnTask)
        {
            if (ModelState.IsValid)
            {
                workOnTask.UserId = int.Parse(User.Identity.Name);
                var task = unitOfWork.Tasks.GetTaskByIdWithJoin(workOnTask.TaskId, false, true);
                unitOfWork.Dispose();
                unitOfWork = new UnitOfWork();

                if (task == null)
                {
                    return(HttpNotFound());
                }

                task.Status = "В работе";

                unitOfWork.WorkOnTask.AddNewItem(workOnTask);
                unitOfWork.Tasks.UpdateItem(task);
                unitOfWork.Save();

                Users executer = null;

                for (int i = 0; i < task.Requests.Count(); i++)
                {
                    task.Requests.ToList()[i].User = unitOfWork.TaskRequests.GetRequestByIdWithJoin(i + 1, true, false).User;
                    if (task.Requests.ToList()[i].Status == "Выбран")
                    {
                        executer = task.Requests.ToList()[i].User;
                    }
                }

                if (executer != null)
                {
                    MailTools mail = new MailTools();

                    mail.SendMailToUser(executer.Email, "Задача в доработке", $"<p>Заказчик отправил задачу в доработку</p>");
                }

                return(RedirectToAction("TaskDetails", new { id = workOnTask.TaskId }));
            }
            return(HttpNotFound());
        }
コード例 #8
0
ファイル: TasksController.cs プロジェクト: RamishkaX/slothfl
        public ActionResult SetExecuter(int?id, int?userId, int?requestId)
        {
            if (id == null || userId == null)
            {
                return(HttpNotFound());
            }

            var task    = unitOfWork.Tasks.GetTaskByIdWithJoin(id, false, true);
            var user    = unitOfWork.Users.GetItemById(userId);
            var request = unitOfWork.TaskRequests.GetRequestByIdWithJoin(requestId, true, false);

            unitOfWork.Dispose();

            if (task.UserId != int.Parse(User.Identity.Name) || task == null || user == null || request == null)
            {
                return(HttpNotFound());
            }

            unitOfWork = new UnitOfWork();

            for (int i = 0; i < task.Requests.Count(); i++)
            {
                task.Requests.ToList()[i].Status = "Не выбран";
            }

            task.Status = "В работе";
            unitOfWork.Tasks.UpdateItem(task);

            request.Status = "Выбран";
            unitOfWork.TaskRequests.UpdateItem(request);

            unitOfWork.Save();

            MailTools mail = new MailTools();

            mail.SendMailToUser(request.User.Email, "Вас выбрали исполнителем!", $"<p>Вас выбрали исполнителем! Можете приступать к работе</p>");

            return(RedirectToAction("TaskDetails", new { id }));
        }
コード例 #9
0
ファイル: TasksController.cs プロジェクト: RamishkaX/slothfl
        public ActionResult AcceptWork(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }

            var task     = unitOfWork.Tasks.GetTaskByIdWithJoin(id, false, false, true);
            var request  = unitOfWork.Tasks.GetSelectedRequest(id);
            var executer = unitOfWork.Users.GetItemById(request.UserId);

            unitOfWork.Dispose();
            unitOfWork = new UnitOfWork();

            if (task == null || task.UserId != int.Parse(User.Identity.Name))
            {
                return(HttpNotFound());
            }

            MoneyAccount moneyAccount = new MoneyAccount(unitOfWork);
            var          result       = moneyAccount.TaskPayment(task.Users, executer, request.Price);

            if (result != null)
            {
                return(RedirectToAction("NoMoneyNoHoney", "Account"));
            }

            task.Status = "Закрыта";
            unitOfWork.Tasks.UpdateItem(task);
            unitOfWork.Save();

            MailTools mail = new MailTools();

            mail.SendMailToUser(executer.Email, "Задача закрыта", $"<p>Заказчик принял вашу работу! На ваш счет начислено <b>{request.Price} рублей.</b></p>");

            return(RedirectToAction("TaskDetails", "Tasks", new { id = task.TaskId }));
        }
コード例 #10
0
        protected void SaveBtn_Click(object sender, EventArgs e)
        {
            _forgotRepo = RepositoryFactory.CreateForgotPunchRepo();
            //取得頁面資料
            model = PageDataBind();

            var validResult       = PunchDateTimeValidate();
            var duplicateResult   = IsDuplicateSubmit();
            var theSameDateResult = IsTheSameDate();

            if (!validResult.IsValid || !duplicateResult.IsValid || !theSameDateResult.IsValid)
            {
                var errorMessage = String.Concat(validResult.ErrorMessage, ",", duplicateResult.ErrorMessage, ",", theSameDateResult.ErrorMessage);
                Response.Write(String.Join("\r\n", errorMessage.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)).ToAlertFormat());
                return;
            }

            //btn處理
            ViewUtils.ButtonOff(SaveBtn, CoverBtn);

            var responseMessage = String.Empty;

            try
            {
                var modelList = new List <RinnaiForms>();
                modelList.Add(model);
                //存檔
                if (String.IsNullOrEmpty(Request["SignDocID_FK"]))
                {
                    _forgotRepo.CreateData(modelList);
                    responseMessage = "新增成功!";
                }
                else
                {
                    _forgotRepo.EditData(modelList);
                    responseMessage = "編輯成功!";
                }
                #region #0022忘刷送出新增email通知
                //主管ADAccount
                string chiefID = _forgotRepo.FindChiefID(Request["SignDocID_FK"], User.Identity.Name);
                if (!string.IsNullOrEmpty(chiefID))
                {
                    MailerAPI.MailInfo mailInfo = new MailerAPI.MailInfo()
                    {
                        AddresseeTemp = System.Web.Configuration.WebConfigurationManager.AppSettings["MailTemplate"],
                        Subject       = String.Format("系統提醒!簽核單號 : {0} 已經送達!", model.SignDocID_FK),
                        //Subject = "系統部測試,請勿理會此郵件,謝謝!",
                        DomainPattern = ConfigUtils.ParsePageSetting("Pattern")["DomainPattern"],
                        CC            = new System.Collections.Generic.List <string>()
                        {
                            "*****@*****.**"
                        },
                        //To = string.Format("{0}@rinnai.com.tw", chiefID)
                        To = string.Format("{0}@rinnai.com.tw", chiefID)
                    };
                    var portalDomain = ConfigUtils.ParsePageSetting("Domain")["Portal"];

                    string body =
                        MailTools.BodyToTable(
                            String.Format(
                                @"系統提醒!簽核單號 : {0} 已經送達,請儘速檢視!<br /><a href='{1}/Area/Sign/ProcessWorkflowList.aspx?queryText={0}'>連結</a> <br />此件為系統發送,請勿回覆!",
                                //@"系統部測試,請勿理會此郵件,謝謝!",
                                model.SignDocID_FK, portalDomain));
                    mailInfo.Body.Append(body);
                    if (PublicRepository.CurrentWorkflowMode == Enums.WorkflowTypeEnum.RELEASE)
                    {
                        new Mailer(mailInfo).SendMail();
                    }
                }
                #endregion

                ViewUtils.ButtonOn(SaveBtn, CoverBtn);
                responseMessage = responseMessage.ToAlertAndRedirect(@"/Area/Sign/WorkflowQueryList.aspx?orderField=CreateDate&descending=True");
            }
            catch (Exception ex)
            {
                responseMessage = String.Concat("存檔失敗!\r\n錯誤訊息: ", ex.Message).ToAlertFormat();
                ViewUtils.ShowRefreshBtn(CoverBtn, RefreshBtn);
            }
            finally
            {
                Response.Write(responseMessage);
            }
        }
        /// <summary>
        /// 表單送出觸發事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void SaveBtn_Click(object sender, EventArgs e)
        {
            //送簽文件ID
            string signID = Request["SignDocID_FK"];

            //取得資料庫連線字串並建立DB模型
            _trainDetaiRepo = RepositoryFactory.CreateTrainDetailRepo();
            //欲作業的表格對象代碼
            string trainTableID = ((int)TrainingTableTypeEnum.TABLE02).ToString().PadLeft(2, '0');

            //取得頁面資料
            model = PageDataBind();

            #region #0015 取得登入者ID 擴充可幫他人填寫受訓心得表

            var empDc    = ConnectionFactory.GetPortalDC();
            var empRepos = new EmployeeRepository(empDc, new RootRepository(empDc));
            EmployeeViewModel empResult = empRepos.GetEmployeeDataByADAccount(User.Identity.Name);
            (model as RinnaiForms).ApplyID_FK = empResult.EmployeeID;

            #endregion #0015 取得登入者ID 擴充可幫他人填寫受訓心得表

            List <DataRow> QuestionDataList = _trainDetaiRepo.QueryQuestionDataByTableID(trainTableID);

            String chkString = "";
            String ansString = "";
            txterror.Text = "";

            #region 遍歷所有題目 判斷是否有填答案

            QuestionDataList.All(row =>
            {
                //如果題目填答型態為文字
                if (row["ANSTYPE"].ToString() == "C")
                {
                    TextBox tmpbox = PlaceHolder1.FindControl("textbox" + row["serial_no"].ToString()) as TextBox;
                    ansString      = tmpbox.Text;
                    if (ansString == "")
                    {
                        chkString += "第" + row["serial_no"].ToString() + "題 不可空白!";
                    }
                }
                //如果題目填答型態為數字
                else if (row["ANSTYPE"].ToString() == "N")
                {
                    RadioButtonList tmprbl = (RadioButtonList)PlaceHolder1.FindControl("rbl" + row["serial_no"].ToString());
                    ansString = tmprbl.SelectedValue;
                    if (ansString == "")
                    {
                        chkString += "第" + row["serial_no"].ToString() + "題 不可空白!";
                    }
                }
                return(true);
            });

            #endregion 遍歷所有題目 判斷是否有填答案

            //有沒填的就直接回要面並顯示警示訊息
            if (chkString != "")
            {
                txterror.Text = chkString;
                return;
            }

            //回傳至頁面的訊息
            var responseMessage = "";
            try
            {
                var modelList = new List <RinnaiForms>();
                modelList.Add(model);

                //新增畫面(即未傳入簽核ID)
                if (String.IsNullOrEmpty(signID))
                {
                    #region 建立簽核(送出簽核)

                    _trainDetaiRepo.CreateSignData(modelList);

                    #endregion 建立簽核(送出簽核)

                    string classID   = Request["CLID"];
                    string studentID = Request["SID"];

                    #region 先刪後增

                    #region 刪除答案

                    //刪除課程與簽核的關聯檔
                    _trainDetaiRepo.FromTableNameDeleteValue("FORM_SIGN", classID, studentID, trainTableID);
                    //===刪除全部原有答案===
                    //文字型態
                    _trainDetaiRepo.FromTableNameDeleteValue("CHARACTER_ANSWER", classID, studentID, trainTableID);
                    //數字型態
                    _trainDetaiRepo.FromTableNameDeleteValue("NUMERIC_ANSWER", classID, studentID, trainTableID);

                    #endregion 刪除答案

                    #region 新增答案

                    QuestionDataList.All(row =>
                    {
                        //文字類型
                        if (row["ANSTYPE"].ToString() == "C")
                        {
                            //新增
                            TextBox tmpbox = PlaceHolder1.FindControl("textbox" + row["serial_no"].ToString()) as TextBox;
                            _trainDetaiRepo.AddAnswer_C(Request["CLID"].ToString(), Request["SID"].ToString(), row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmpbox.Text, User.Identity.Name);
                        }
                        //數字類型
                        else if (row["ANSTYPE"].ToString() == "N")
                        {
                            //新增
                            RadioButtonList tmprbl = (RadioButtonList)PlaceHolder1.FindControl("rbl" + row["serial_no"].ToString());
                            _trainDetaiRepo.AddAnswer_N(Request["CLID"].ToString(), Request["SID"].ToString(), row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmprbl.SelectedValue, User.Identity.Name);
                        }
                        return(true);
                    });

                    #endregion 新增答案

                    #endregion 先刪後增

                    string EID = _trainDetaiRepo.Find_EDITIONID(trainTableID);
                    bool   hasEmptySignFormRecords = _trainDetaiRepo.CheckHasSignFormRecords(Request["CLID"].ToString(), trainTableID, EID);

                    //寫入空白單記錄
                    if (!hasEmptySignFormRecords)
                    {
                        _trainDetaiRepo.AddRECORDS(Request["CLID"].ToString(), trainTableID, EID);
                    }

                    #region 建立關聯簽核主檔

                    _trainDetaiRepo.AddFormSign(Request["CLID"].ToString(), Request["SID"].ToString(), trainTableID, false, modelList);

                    #endregion 建立關聯簽核主檔
                }

                //編輯畫面
                else
                {
                    //送出簽核
                    _trainDetaiRepo.EditData(modelList);

                    //刪除原有答案
                    string strCLID = _trainDetaiRepo.Find_CLID(Request["SignDocID_FK"]);
                    string strSID  = _trainDetaiRepo.Find_SID(Request["SignDocID_FK"]);

                    _trainDetaiRepo.FromTableNameDeleteValue("CHARACTER_ANSWER", strCLID, strSID, trainTableID);
                    _trainDetaiRepo.FromTableNameDeleteValue("NUMERIC_ANSWER", strCLID, strSID, trainTableID);

                    QuestionDataList.All(row =>
                    {
                        if (row["ANSTYPE"].ToString() == "C")//填文字
                        {
                            //新增
                            TextBox tmpbox = PlaceHolder1.FindControl("textbox" + row["serial_no"].ToString()) as TextBox;
                            _trainDetaiRepo.AddAnswer_C(strCLID, strSID, row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmpbox.Text, User.Identity.Name);
                        }
                        else if (row["ANSTYPE"].ToString() == "N")
                        {
                            //新增
                            RadioButtonList tmprbl = (RadioButtonList)PlaceHolder1.FindControl("rbl" + row["serial_no"].ToString());
                            _trainDetaiRepo.AddAnswer_N(strCLID, strSID, row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmprbl.SelectedValue, User.Identity.Name);
                        }
                        return(true);
                    });

                    String EID = _trainDetaiRepo.Find_EDITIONID(trainTableID);
                    bool   hasEmptySignFormRecords = _trainDetaiRepo.CheckHasSignFormRecords(strCLID, trainTableID, EID);
                    //寫入空白單記錄
                    if (!hasEmptySignFormRecords)
                    {
                        _trainDetaiRepo.AddRECORDS(strCLID, trainTableID, EID);
                    }
                }
                responseMessage = "送出成功!";

                #region 寄送email通知

                MailInfo mailInfo = new MailInfo()
                {
                    AddresseeTemp = System.Web.Configuration.WebConfigurationManager.AppSettings["MailTemplate"],
                    Subject       = String.Format("系統提醒!簽核單號 : {0} 已經送達!", model.SignDocID_FK),
                    DomainPattern = ConfigUtils.ParsePageSetting("Pattern")["DomainPattern"],
                };

                // 主管簽核 會簽 mail
                var deptData = _rootRepo.QueryForDepartmentByDeptID(model.DepartmentID_FK.ToString());
                var empData  = _rootRepo.QueryForEmployeeByEmpID(deptData["ChiefID_FK"].ToString());
                var chiefAD  = empData["ADAccount"].ToString();
                mailInfo.To += String.Format(mailInfo.AddresseeTemp, chiefAD) + ",";

                var portalDomain = ConfigUtils.ParsePageSetting("Domain")["Portal"];

                string body =
                    MailTools.BodyToTable(
                        String.Format(
                            @"系統提醒!簽核單號 : {0} 已經送達,請儘速檢視!<br /><a href='{1}/Area/Sign/ProcessWorkflowList.aspx?queryText={0}'>連結</a> <br />此件為系統發送,請勿回覆!",
                            model.SignDocID_FK, portalDomain));

                mailInfo.Body.Append(body);

                mailInfo.CC = new List <string>()
                {
                    String.Format(mailInfo.AddresseeTemp, User.Identity.Name)
                };
                mailInfo.To = mailInfo.To.TrimEnd(new char[] { ',' });
                if (PublicRepository.CurrentWorkflowMode == Enums.WorkflowTypeEnum.RELEASE)
                {
                    new Mailer(mailInfo).SendMail();
                }

                #endregion 寄送email通知

                _log.Trace(String.Format("MailTo : {0}\r\ncc : {1}\r\nTitle : {2}\r\nContent : {3}\r\n", mailInfo.To, String.Join(",", mailInfo.CC), mailInfo.Subject, mailInfo.Body));
                //btn處理
                ViewUtils.ButtonOn(SaveBtn, CoverBtn);
                responseMessage = responseMessage.ToAlertAndRedirect(@"/Area/Sign/WorkflowQueryList.aspx?orderField=CreateDate&descending=True");
            }
            catch (Exception ex)
            {
                responseMessage = String.Concat("送出失敗!\r\n錯誤訊息: ", ex.Message).ToAlertFormat();
                ViewUtils.ShowRefreshBtn(CoverBtn, RefreshBtn);
            }
            finally
            {
                Response.Write(responseMessage);
            }
        }
コード例 #12
0
ファイル: Err.cs プロジェクト: AgentTy/General
        /// <summary>
        /// For Web Applications only, processes ASP.Net Error
        /// </summary>
        public static void ProcessDefault(Exception e)
        {
            HttpContext _context = HttpContext.Current;

            StringBuilder sbBody = new StringBuilder();

            sbBody.Append(DateTime.Now.ToString() + "\n\n");
            sbBody.Append("general site error on " + _context.Request.Url.ToString() + "\n\n");
            sbBody.Append("BASE EXCEPTION: " + e.GetBaseException() + "\n\n");
            sbBody.Append("SOURCE: " + e.Source.ToString() + "\n\n");
            sbBody.Append("MESSAGE: " + e.Message.ToString() + "\n\n");

            sbBody.Append("SESSION DUMP:\n");
            if (_context.Session.Count > 0)
            {
                foreach (string str_sessionKey in _context.Session.Keys)
                {
                    sbBody.Append(str_sessionKey + " = " + _context.Session[str_sessionKey].ToString() + "\n");
                }
            }
            sbBody.Append("\n\n");

            sbBody.Append("REQUEST DUMP:\n");
            if (_context.Request.Form.Count > 0)
            {
                foreach (string str_formKey in _context.Request.Form.Keys)
                {
                    if (str_formKey != "__VIEWSTATE")
                    {
                        sbBody.Append(str_formKey + " = " + _context.Request.Form[str_formKey].ToString() + "\n");
                    }
                }
            }
            sbBody.Append("\n\n");

            sbBody.Append("INNER ERROR: " + e.InnerException.ToString() + "\n\n");
            sbBody.Append("TARGET SITE NAME: " + e.TargetSite.Name.ToString() + "\n\n");
            sbBody.Append("STACK TRACE: " + e.StackTrace.ToString() + "\n\n");
            sbBody.Append("\n\n");

            sbBody.Append("COOKIES DUMP (EXCLUDING BINARY OBJECTS):\n");
            if (_context.Request.Cookies.Count > 0)
            {
                foreach (string str_cookieKey in _context.Request.Cookies.Keys)
                {
                    switch (str_cookieKey.ToLower())
                    {
                    case "":
                        //DO NOTHING
                        break;

                    default:
                        if (!str_cookieKey.EndsWith("object"))
                        {
                            sbBody.Append(str_cookieKey + " = " + _context.Request.Cookies[str_cookieKey].Value.ToString() + "\n");
                        }
                        break;
                    }
                }
            }
            sbBody.Append("\n\n");

            sbBody.Append("SYSTEM VARIABLES: \n");
            foreach (string str_variableKey in _context.Request.ServerVariables.Keys)
            {
                switch (str_variableKey.ToLower())
                {
                case "cookie":
                case "http_cookie":
                case "all_raw":
                case "all_http":
                    //DO NOTHING
                    break;

                default:
                    sbBody.Append(str_variableKey + " = " + _context.Request.ServerVariables[str_variableKey].ToString() + "\n");
                    break;
                }
            }
            sbBody.Append("\n\n");

            MailTools.SendEmail(GlobalConfiguration.GlobalSettings["error_email_from"], GlobalConfiguration.GlobalSettings["error_email_to"], ".Net Site Error", sbBody.ToString(), false);

            _context.Server.ClearError();
            _context.Response.Redirect("~/errors.aspx?error_description=" + _context.Server.UrlEncode(e.GetBaseException().ToString()));
        }
        /// <summary>
        /// Ændrer Kontaktformular hørende til bruger specificeret ved id, UserName og
        /// Password.
        /// </summary>
        /// <remarks>
        /// UserName og Password skal være gemt i Web API'ets database for at være gyldige. Og
        /// Kontaktformular med specificeret id, skal være gemt af nuværende bruger før.
        /// </remarks>
        /// <param name="json_Object">json_Objekt er et objekt i jSon format. Det skal indeholde
        /// data til funktionen med følgende felter specificeret : ContactNameFrom, ContactNameEmail
        /// og ContactText. Herudover kan jSon_Objektet indeholde felterne : ContactNamePhoneNumber,
        /// ContactSubject og ContactEmailRecipient. Hvis ikke feltet ContactFormEmailRecipient er
        /// specificeret, vil den ændrede kontaktformular "kun" blive gemt i databasen og ikke sendt på mail.
        /// </param>
        /// <param name="id">Integer der specificerer id på kontaktformular.</param>
        /// <param name="Password">Password for nuværende bruger.</param>
        /// <param name="UserName">Brugernavn for nuværende bruger.</param>
        /// <returns>
        /// UpdateOperationOk (værdien 1) hvis Kontaktformular er gemt ok.
        /// Eller en retur kode med en værdi mindre end 0, hvis noget gik galt.
        /// Se en oversigt over return koder i ReturnCodesAndStrings eller klik
        /// her : <see cref="ReturnCodeAndReturnString"/>
        /// </returns>
        // PUT api/<controller>/5
        public int Put(int id, dynamic json_Object, string UserName, string Password)
        {
            ContactForm ContactForm_Object = new ContactForm();
            int         NumberOfContactFormsSaved;

            int UserID = 0;

            UserID = UserInfo.FindUserInDatabase(UserName, Password);

            if (Const.UserNotFound < UserID)
            {
                ContactForm_Object = db.ContactForms.Find(id);
                if (null != ContactForm_Object)
                {
                    if (UserID == ContactForm_Object.UserInfoID)
                    {
                        if ((null == json_Object.ContactNameFrom) ||
                            (null == json_Object.ContactNameEmail) ||
                            (null == json_Object.ContactText))
                        {
                            return(Const.WrongjSonObjectParameters);
                        }
                        else
                        {
                            ContactForm_Object.ContactNameFrom  = json_Object.ContactNameFrom;
                            ContactForm_Object.ContactNameEmail = json_Object.ContactNameEmail;
                            ContactForm_Object.ContactText      = json_Object.ContactText;

                            if (null != json_Object.ContactNamePhoneNumber)
                            {
                                ContactForm_Object.ContactNamePhoneNumber = json_Object.ContactNamePhoneNumber;
                            }
                            else
                            {
                                ContactForm_Object.ContactNamePhoneNumber = null;
                            }

                            if (null != json_Object.ContactSubject)
                            {
                                ContactForm_Object.ContactSubject = json_Object.ContactSubject;
                            }
                            else
                            {
                                ContactForm_Object.ContactSubject = null;
                            }

                            if (null != json_Object.ContactEmailRecipient)
                            {
                                ContactForm_Object.ContactEmailRecipient = json_Object.ContactEmailRecipient;
                            }
                            else
                            {
                                ContactForm_Object.ContactEmailRecipient = null;
                            }

                            NumberOfContactFormsSaved = db.SaveChanges();
                            if (1 == NumberOfContactFormsSaved)
                            {
                                if (null != ContactForm_Object.ContactEmailRecipient)
                                {
                                    string MailBody = MailTools.PackMail(ContactForm_Object.ContactSubject,
                                                                         ContactForm_Object.ContactText,
                                                                         ContactForm_Object.ContactNameEmail,
                                                                         ContactForm_Object.ContactNamePhoneNumber);

                                    Mail.SendMail(ContactForm_Object.ContactNameEmail,
                                                  ContactForm_Object.ContactEmailRecipient,
                                                  ContactForm_Object.ContactSubject,
                                                  MailBody);
                                }
                                LogData.LogDataToDatabase(UserName, DataBaseOperation.UpdateData_Enum, ModelDatabaseNumber.ContactForm_Enum);
                                return(Const.UpdateOperationOk);
                            }
                            else
                            {
                                return(Const.UpdateOperationFailed);
                            }
                        }
                    }
                    else
                    {
                        return(Const.ObjectNotSavedByCurrentUserOriginally);
                    }
                }
                else
                {
                    return(Const.ObjectNotFound);
                }
            }
            else
            {
                return(Const.UserNotFound);
            }
        }