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()); }
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); } }
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)); }
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")); }
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)); }
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)); }
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()); }
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 })); }
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 })); }
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); } }
/// <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); } }