public async Task <IHttpActionResult> GetToSendBulkMail([FromUri] string passcode) { SmtpSection smtpSection = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp"); if (passcode != smtpSection.Network.Password) { return(BadRequest()); } object retresult = await datacontext.SelectAllPendingPrimaryEvidence(); if (retresult.GetType().ToString() != "System.String") { List <Personnel_with_pending_primary_evidence> list = (List <Personnel_with_pending_primary_evidence>)retresult; foreach (Personnel_with_pending_primary_evidence item in list) { //send mail! object sendresult = await MailingUtils.sendNotificationAllPendingPrimaryEvidence(item); while (sendresult != null) { //send again if fail sendresult = await MailingUtils.sendNotificationAllPendingPrimaryEvidence(item); } } return(Ok()); } else { return(InternalServerError(new Exception(retresult.ToString()))); } }
public async Task <IHttpActionResult> PostForCreateNewAdmin(JObject data) { const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; RNGCryptoServiceProvider gen = new RNGCryptoServiceProvider(); byte[] num = new byte[8]; //GENERATE PASSWORD 8 CHARS string password = ""; gen.GetBytes(num); for (int j = 0; j < 8; j++) { num[j] %= (byte)chars.Length; password += chars[num[j]]; } //========================= string emaillower = data["email"].ToString(); emaillower = emaillower.ToLower(); UsernamePassword u = new UsernamePassword(emaillower, password); datacontext.admin_creator_id = Convert.ToInt32(data["user_id"]); datacontext.username = emaillower; datacontext.password = u.password; datacontext.t_name = data["t_name"].ToString(); object result = await datacontext.InsertWithSelect(); if (result.GetType().ToString() != "System.String") { object sendresult = await MailingUtils.sendUsernamePasswordMailForAdmin(emaillower, password, datacontext.t_name); if (sendresult == null) { return(Ok(result)); } else { return(InternalServerError((Exception)sendresult)); } } else { return(BadRequest(result.ToString())); } }
public async Task <IHttpActionResult> PostToSendNotifications(oPrimary_evidence data) { object result = await data.SelectPrimaryEvidenceWithTeacherDetail(); if (result.GetType().ToString() != "System.String") { //send mail! object sendresult = await MailingUtils.sendNotificationPrimaryEvidenceIndividual((Evidence_with_teacher_curri_indicator_detail)result); if (sendresult == null) { return(Ok()); } else { return(InternalServerError((Exception)sendresult)); } } else { return(InternalServerError(new Exception(result.ToString()))); } }
public async Task <IHttpActionResult> PostForCreateNewUsersByFile() { if (!Request.Content.IsMimeMultipartContent()) { return(new System.Web.Http.Results.StatusCodeResult(HttpStatusCode.UnsupportedMediaType, Request)); } string savepath = WebApiApplication.SERVERPATH + "temp"; var result = new MultipartFormDataStreamProvider(savepath); List <UsernamePassword> userlist = new List <UsernamePassword>(); List <UsernamePassword> nonencryptuserlist = new List <UsernamePassword>(); List <string> curri_list = new List <string>(); try { await Request.Content.ReadAsMultipartAsync(result); //1.READ JSON DATA PART (curri and type) JObject datareceive = JObject.Parse(result.FormData.GetValues(result.FormData.AllKeys[0])[0]); if (datareceive["curri"] != null) { JArray jcurrilist = (JArray)datareceive["curri"]; foreach (JValue value in jcurrilist) { curri_list.Add(value.ToString()); } } int select_user_type = Convert.ToInt32(datareceive["type"]["user_type_id"]); //2.Read maillist file MultipartFileData file = result.FileData[0]; if (file.Headers.ContentType.ToString() != "text/plain") { return(BadRequest("ไฟล์ที่อัพโหลดไม่เป็นไฟล์ข้อความธรรมดา")); } FileInfo fileInfo = new FileInfo(file.LocalFileName); const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; RNGCryptoServiceProvider gen = new RNGCryptoServiceProvider(); byte[] num = new byte[8]; string text = File.ReadAllText(string.Format("{0}/{1}", savepath, fileInfo.Name)); string[] emaillist = text.Split(' ', '\r', '\t', '\n', '\v', '\f').Where(t => t != "").ToArray(); foreach (string str in emaillist) { //GENERATE PASSWORD 8 CHARS string password = ""; gen.GetBytes(num); for (int j = 0; j < 8; j++) { num[j] %= (byte)chars.Length; password += chars[num[j]]; } //========================= string strlower = str.ToLower(); userlist.Add(new UsernamePassword(strlower, password)); nonencryptuserlist.Add(new UsernamePassword { username = strlower, password = password }); } //3.Delete temp email file //Check whether file exists! if (File.Exists(string.Format("{0}/{1}", savepath, fileInfo.Name))) { File.Delete(string.Format("{0}/{1}", savepath, fileInfo.Name)); } //4.Add user to database base on select_user_type object resultfromdb = null; if (select_user_type == 1) { resultfromdb = await teachercontext.Insert(userlist, curri_list); } else if (select_user_type == 2) { resultfromdb = await staffcontext.Insert(userlist, curri_list); } else if (select_user_type == 3) { resultfromdb = await studentcontext.Insert(userlist, curri_list); } else if (select_user_type == 4) { resultfromdb = await alumnicontext.Insert(userlist, curri_list); } else if (select_user_type == 5) { resultfromdb = await companycontext.Insert(userlist, curri_list); } else if (select_user_type == 6) { resultfromdb = await assessorcontext.Insert(userlist, curri_list); } else if (select_user_type != 0) { resultfromdb = await userscontext.InsertWithUserType(userlist, curri_list, select_user_type); } else { return(BadRequest("กรุณาเลือกประเภทผู้ใช้งาน")); } //5.If result is list,try to send mail (send only mail that not it resultfromdb) //Otherwise send errorresult back to user. if (resultfromdb == null) { foreach (UsernamePassword item in nonencryptuserlist) { //send mail! await MailingUtils.sendUsernamePasswordMail(item.username, item.password); } return(Ok()); } else if (resultfromdb.GetType().ToString() != "System.String") { List <string> erroremail = (List <string>)resultfromdb; if (userlist.Count == erroremail.Count) { return(BadRequest("ทุกอีเมล์ในไฟล์ดังกล่าวมีอยู่แล้วในระบบ")); } foreach (UsernamePassword item in nonencryptuserlist) { //If current mail is not in erroremail => SEND! if (erroremail.FirstOrDefault(t => t == item.username) == null) { //send mail! await MailingUtils.sendUsernamePasswordMail(item.username, item.password); } } return(Ok(resultfromdb)); } else { return(InternalServerError(new Exception(resultfromdb.ToString()))); } } catch (Exception e) { return(InternalServerError(e)); } }
public async Task <IHttpActionResult> PostForCreateNewUsersByTyping(JObject data) { List <UsernamePassword> userlist = new List <UsernamePassword>(); List <UsernamePassword> nonencryptuserlist = new List <UsernamePassword>(); List <string> curri_list = new List <string>(); //1.READ JSON DATA PART (curri and type) if (data["curri"] != null) { JArray jcurrilist = (JArray)data["curri"]; foreach (JValue value in jcurrilist) { curri_list.Add(value.ToString()); } } int select_user_type = Convert.ToInt32(data["type"]["user_type_id"]); //2.Read maillist const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; RNGCryptoServiceProvider gen = new RNGCryptoServiceProvider(); byte[] num = new byte[8]; JArray emaillist = (JArray)data["new_emails"]; foreach (JValue value in emaillist) { //GENERATE PASSWORD 8 CHARS string password = ""; gen.GetBytes(num); for (int j = 0; j < 8; j++) { num[j] %= (byte)chars.Length; password += chars[num[j]]; } //========================= string strlower = value.ToString().ToLower(); userlist.Add(new UsernamePassword(strlower, password)); nonencryptuserlist.Add(new UsernamePassword { username = strlower, password = password }); } //3.Add user to database base on select_user_type object resultfromdb = null; if (select_user_type == 1) { resultfromdb = await teachercontext.Insert(userlist, curri_list); } else if (select_user_type == 2) { resultfromdb = await staffcontext.Insert(userlist, curri_list); } else if (select_user_type == 3) { resultfromdb = await studentcontext.Insert(userlist, curri_list); } else if (select_user_type == 4) { resultfromdb = await alumnicontext.Insert(userlist, curri_list); } else if (select_user_type == 5) { resultfromdb = await companycontext.Insert(userlist, curri_list); } else if (select_user_type == 6) { resultfromdb = await assessorcontext.Insert(userlist, curri_list); } else if (select_user_type != 0) { resultfromdb = await userscontext.InsertWithUserType(userlist, curri_list, select_user_type); } else { return(BadRequest("กรุณาเลือกประเภทผู้ใช้งาน")); } //4.If result is list,try to send mail (send only mail that not it resultfromdb) //Otherwise send errorresult back to user. if (resultfromdb == null) { foreach (UsernamePassword item in nonencryptuserlist) { //send mail! await MailingUtils.sendUsernamePasswordMail(item.username, item.password); } return(Ok()); } else if (resultfromdb.GetType().ToString() != "System.String") { List <string> erroremail = (List <string>)resultfromdb; if (userlist.Count == erroremail.Count) { return(BadRequest("ทุกอีเมล์ที่ต้องการสร้างมีอยู่แล้วในระบบ")); } foreach (UsernamePassword item in nonencryptuserlist) { //If current mail is not in erroremail => SEND! if (erroremail.FirstOrDefault(t => t == item.username) == null) { //send mail! await MailingUtils.sendUsernamePasswordMail(item.username, item.password); } } return(Ok(resultfromdb)); } else { return(InternalServerError(new Exception(resultfromdb.ToString()))); } }