/// <summary> /// Send MAIL /// </summary> /// <param name="recipientAddress"></param> /// <param name="recipientName"></param> /// <param name="senderAddress"></param> /// <param name="actionName"></param> /// <param name="mailType"></param> /// <param name="lang"></param> /// <param name="dataToReplace"></param> public OperationResult <bool> Send(string recipientAddress, string recipientName, string senderAddress, string actionName, MailTypes mailType, Langs.LangsEnum lang, Dictionary <string, string> dataToReplace) { try { var body = GetEmailBody(mailType); var from = new MailAddress(senderAddress, Resources.Email.Connection.FromName); var to = new MailAddress(recipientAddress, recipientName); var message = new MailMessage(from, to) { Subject = actionName, Body = body, IsBodyHtml = true }; body = FullFillBodyContent(body, lang, dataToReplace); message = AddImagesToBody(message, body, mailType); // Send msg _smtpClient.SendMailAsync(message); return(new OperationResult <bool>()); } catch (Exception ex) { return(new OperationResult <bool>(ex)); } }
public OperationResult <List <ApplicationNews> > GetAll(Langs.LangsEnum lang) { try { var news = _news.GetAll(x => x.Lang == lang.ToString()); var nws = news.Select(x => (ApplicationNews)x).ToList(); return(new OperationResult <List <ApplicationNews> >(nws)); } catch (Exception ex) { return(new OperationResult <List <ApplicationNews> >(ex)); } }
private string FullFillBodyContent(string body, Langs.LangsEnum lang, Dictionary <string, string> dataToReplace) { switch (lang) { case Langs.LangsEnum.Ru: { body = ReplaceContent(body, Resources.Email.Ru.Content.ResourceManager, dataToReplace); break; } case Langs.LangsEnum.De: { body = ReplaceContent(body, Resources.Email.De.Content.ResourceManager, dataToReplace); break; } case Langs.LangsEnum.Fr: { body = ReplaceContent(body, Resources.Email.Fr.Content.ResourceManager, dataToReplace); break; } case Langs.LangsEnum.Es: { body = ReplaceContent(body, Resources.Email.Es.Content.ResourceManager, dataToReplace); break; } case Langs.LangsEnum.Ua: { body = ReplaceContent(body, Resources.Email.Ua.Content.ResourceManager, dataToReplace); break; } case Langs.LangsEnum.En: { body = ReplaceContent(body, Resources.Email.En.Content.ResourceManager, dataToReplace); break; } default: throw new ArgumentOutOfRangeException(nameof(lang)); } return(body); }
public static string GetErrorByName(Langs.LangsEnum lang, string errorKey) { Dictionary <string, object> dict; switch (lang) { case Langs.LangsEnum.De: { dict = ErrorDe; break; } case Langs.LangsEnum.Ru: { dict = ErrorRu; break; } case Langs.LangsEnum.Es: { dict = ErrorEs; break; } case Langs.LangsEnum.Ua: { dict = ErrorUa; break; } case Langs.LangsEnum.Fr: { dict = ErrorFr; break; } default: { dict = ErrorEn; break; } } var target = dict.SingleOrDefault(x => x.Key == errorKey); return(target.Equals(default(KeyValuePair <string, object>)) ? string.Empty : target.Value.ToString()); }
public static OperationResult <List <ApplicationTaskAttachment> > SaveTaskAttachments(Langs.LangsEnum currentLang, string root, List <HttpPostedFileBase> files) { var result = new OperationResult <List <ApplicationTaskAttachment> > { Data = new List <ApplicationTaskAttachment>() }; try { var disabledExtentions = new List <string> { ".zip", ".rar", ".gzip", ".tar", ".arj", ".uc2", ".gz", ".lha", ".tgz", ".exe", ".bat", ".com" }; var totalLength = files.Sum(t => t.InputStream.Length); if (totalLength >= 10 * 1024 * 1024) { throw new Exception(ErrorManeger.GetErrorByName(currentLang, "FileLengthIsExceed")); } foreach (var file in files) { var ext = Path.GetExtension(file.FileName); if (disabledExtentions.Contains(ext)) { result.Exception = new Exception("ForbiddenFileExtention"); } else { var pk = Guid.NewGuid() + ext; var path = @"\Storage\TaskAttachments\" + pk; if (SaveFile(file, root + path)) { result.Data.Add(new ApplicationTaskAttachment { Extention = Path.GetExtension(file.FileName), FileTitle = file.FileName, PublicKey = Guid.NewGuid(), Url = @".." + path }); } } } return(result); } catch (Exception ex) { return(new OperationResult <List <ApplicationTaskAttachment> >(ex)); } }