/// <summary> /// 发送错误邮件 /// </summary> /// <param name="Controller"></param> /// <param name="Action"></param> /// <param name="ErrorMsg"></param> private void SendErrorEmail(string Controller, string Action, string ErrorMsg) { Email email = new Email { Message = string.Format("StarmileFx.Api系统出错\r\n客户端IP地址:{0}\r\nController:{1}\r\nAction:{2}\r\n错误信息:{3}", GetUserIp(), Controller, Action, ErrorMsg), Subject = "StarmileFx.Api系统出错", type = StarmileFx.Models.Enum.BaseEnum.EmailTypeEnum.Error }; EmailService.Add(email); }
public void Email_CRUD_Test() { foreach (CultureInfo culture in AllowableCulture) { ChangeCulture(culture); using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { EmailService emailService = new EmailService(new Query() { Lang = culture.TwoLetterISOLanguageName }, dbTestDB, ContactID); int count = 0; if (count == 1) { // just so we don't get a warning during compile [The variable 'count' is assigned but its value is never used] } Email email = GetFilledRandomEmail(""); // ------------------------------- // ------------------------------- // CRUD testing // ------------------------------- // ------------------------------- count = emailService.GetEmailList().Count(); Assert.AreEqual(count, (from c in dbTestDB.Emails select c).Count()); emailService.Add(email); if (email.HasErrors) { Assert.AreEqual("", email.ValidationResults.FirstOrDefault().ErrorMessage); } Assert.AreEqual(true, emailService.GetEmailList().Where(c => c == email).Any()); emailService.Update(email); if (email.HasErrors) { Assert.AreEqual("", email.ValidationResults.FirstOrDefault().ErrorMessage); } Assert.AreEqual(count + 1, emailService.GetEmailList().Count()); emailService.Delete(email); if (email.HasErrors) { Assert.AreEqual("", email.ValidationResults.FirstOrDefault().ErrorMessage); } Assert.AreEqual(count, emailService.GetEmailList().Count()); } } }
public IHttpActionResult Post([FromBody] Email email, [FromUri] string lang = "en") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { EmailService emailService = new EmailService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); if (!emailService.Add(email)) { return(BadRequest(String.Join("|||", email.ValidationResults))); } else { email.ValidationResults = null; return(Created <Email>(new Uri(Request.RequestUri, email.EmailID.ToString()), email)); } } }
public void Email_Properties_Test() { foreach (CultureInfo culture in AllowableCulture) { ChangeCulture(culture); using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { EmailService emailService = new EmailService(new Query() { Lang = culture.TwoLetterISOLanguageName }, dbTestDB, ContactID); int count = 0; if (count == 1) { // just so we don't get a warning during compile [The variable 'count' is assigned but its value is never used] } count = emailService.GetEmailList().Count(); Email email = GetFilledRandomEmail(""); // ------------------------------- // ------------------------------- // Properties testing // ------------------------------- // ------------------------------- // ----------------------------------- // [Key] // Is NOT Nullable // email.EmailID (Int32) // ----------------------------------- email = null; email = GetFilledRandomEmail(""); email.EmailID = 0; emailService.Update(email); Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "EmailID"), email.ValidationResults.FirstOrDefault().ErrorMessage); email = null; email = GetFilledRandomEmail(""); email.EmailID = 10000000; emailService.Update(email); Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "Email", "EmailID", email.EmailID.ToString()), email.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [CSSPExist(ExistTypeName = "TVItem", ExistPlurial = "s", ExistFieldID = "TVItemID", AllowableTVtypeList = Email)] // email.EmailTVItemID (Int32) // ----------------------------------- email = null; email = GetFilledRandomEmail(""); email.EmailTVItemID = 0; emailService.Add(email); Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "EmailTVItemID", email.EmailTVItemID.ToString()), email.ValidationResults.FirstOrDefault().ErrorMessage); email = null; email = GetFilledRandomEmail(""); email.EmailTVItemID = 1; emailService.Add(email); Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "EmailTVItemID", "Email"), email.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [DataType(DataType.EmailAddress)] // [StringLength(255))] // email.EmailAddress (String) // ----------------------------------- email = null; email = GetFilledRandomEmail("EmailAddress"); Assert.AreEqual(false, emailService.Add(email)); Assert.AreEqual(1, email.ValidationResults.Count()); Assert.IsTrue(email.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "EmailAddress")).Any()); Assert.AreEqual(null, email.EmailAddress); Assert.AreEqual(count, emailService.GetEmailList().Count()); email = null; email = GetFilledRandomEmail(""); email.EmailAddress = GetRandomString("", 256); Assert.AreEqual(false, emailService.Add(email)); Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "EmailAddress", "255"), email.ValidationResults.FirstOrDefault().ErrorMessage); Assert.AreEqual(count, emailService.GetEmailList().Count()); // ----------------------------------- // Is NOT Nullable // [CSSPEnumType] // email.EmailType (EmailTypeEnum) // ----------------------------------- email = null; email = GetFilledRandomEmail(""); email.EmailType = (EmailTypeEnum)1000000; emailService.Add(email); Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "EmailType"), email.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [CSSPAfter(Year = 1980)] // email.LastUpdateDate_UTC (DateTime) // ----------------------------------- email = null; email = GetFilledRandomEmail(""); email.LastUpdateDate_UTC = new DateTime(); emailService.Add(email); Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), email.ValidationResults.FirstOrDefault().ErrorMessage); email = null; email = GetFilledRandomEmail(""); email.LastUpdateDate_UTC = new DateTime(1979, 1, 1); emailService.Add(email); Assert.AreEqual(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), email.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [CSSPExist(ExistTypeName = "TVItem", ExistPlurial = "s", ExistFieldID = "TVItemID", AllowableTVtypeList = Contact)] // email.LastUpdateContactTVItemID (Int32) // ----------------------------------- email = null; email = GetFilledRandomEmail(""); email.LastUpdateContactTVItemID = 0; emailService.Add(email); Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", email.LastUpdateContactTVItemID.ToString()), email.ValidationResults.FirstOrDefault().ErrorMessage); email = null; email = GetFilledRandomEmail(""); email.LastUpdateContactTVItemID = 1; emailService.Add(email); Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), email.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [NotMapped] // email.HasErrors (Boolean) // ----------------------------------- // No testing requied // ----------------------------------- // Is NOT Nullable // [NotMapped] // email.ValidationResults (IEnumerable`1) // ----------------------------------- // No testing requied } } }