public EmailArchieve CreateEmail <TModel>(string from, string tos, string subject, string viewName, TModel model, Dictionary <string, string> additionalData = null, string fromName = null, string replyTo = null, string replyToName = null, string plainMessage = null, string cc = null, string bcc = null, string activity = null, string linkTo = null, string status = null, string attachment = null) { var messages = _viewRender.Render(viewName, model, additionalData); var email = new EmailArchieve(from, tos, subject, messages, linkTo, activity, status, attachment, DateTime.Now) { FromName = fromName, Cc = cc, Bcc = bcc, ReplyTo = replyTo, ReplyToName = replyToName, Activity = activity, LinkTo = linkTo, Status = status, Attachment = attachment }; if (string.IsNullOrEmpty(email.FromName)) { email.FromName = _config.GetConfig("smtp.from.name"); } var hasPlainText = !string.IsNullOrWhiteSpace(plainMessage); if (hasPlainText) { email.PlainMessage = plainMessage; } var result = _emailArchieveService.Add(email); return(result); }