moved from SVN to git
This commit is contained in:
180
Service/Core/Utils.cs
Normal file
180
Service/Core/Utils.cs
Normal file
@@ -0,0 +1,180 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.Mail;
|
||||
using System.Security.Cryptography;
|
||||
using System.ServiceModel;
|
||||
using System.ServiceModel.Channels;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.ServiceContracts;
|
||||
using BeWo.Data;
|
||||
|
||||
namespace BeWo.Service.Core
|
||||
{
|
||||
public class Utils
|
||||
{
|
||||
public static FaultException<BeWoFault> CreateBeWoFaultException(Exception ex)
|
||||
{
|
||||
try
|
||||
{
|
||||
SendErrorMail("MYSQL EXCEPTION - AUTOMATED MAIL NOTIFICATION", ex.ToString());
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
return new FaultException<BeWoFault>(new BeWoFault(ex), ex.ToString());
|
||||
}
|
||||
|
||||
public static string GetClientIP()
|
||||
{
|
||||
if (OperationContext.Current != null)
|
||||
{
|
||||
MessageProperties properties = OperationContext.Current.IncomingMessageProperties;
|
||||
var endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
|
||||
return endpoint.Address;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static string GetMD5(string val)
|
||||
{
|
||||
var lMD5 = new MD5CryptoServiceProvider();
|
||||
string lHash = BitConverter.ToString(lMD5.ComputeHash(Encoding.UTF8.GetBytes(val)));
|
||||
return lHash;
|
||||
}
|
||||
|
||||
public static bool IsValidEmail(string email)
|
||||
{
|
||||
return Regex.IsMatch(email, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
|
||||
}
|
||||
|
||||
public static bool SendErrorMail(string subject, string body)
|
||||
{
|
||||
string sendMailSetting = ConfigurationManager.AppSettings.Get("SendMailOnError");
|
||||
bool sendMail = false;
|
||||
if (bool.TryParse(sendMailSetting, out sendMail))
|
||||
{
|
||||
if (sendMail)
|
||||
return SendMail(subject, body, ConfigurationManager.AppSettings.Get("Recipient"));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool SendMail(string subject, string body, string toAddress)
|
||||
{
|
||||
return SendMail(null, null, subject, body, toAddress);
|
||||
}
|
||||
|
||||
public static bool SendMail(string senderName, string senderEMail, string subject, string body, string toAddress)
|
||||
{
|
||||
var server = ConfigurationManager.AppSettings.Get("SmptServer");
|
||||
var user = ConfigurationManager.AppSettings.Get("SmtpUser");
|
||||
var pass = ConfigurationManager.AppSettings.Get("SmtpPassword");
|
||||
String to = toAddress;
|
||||
if (String.IsNullOrEmpty(to))
|
||||
to = ConfigurationManager.AppSettings.Get("SupportEMail");
|
||||
if (String.IsNullOrEmpty(to))
|
||||
to = "support@bewoplaner.de";
|
||||
|
||||
if (senderEMail == null)
|
||||
senderEMail = "bewoapp@bewoplaner.de";
|
||||
|
||||
if (to.Equals("support@bewoplaner.de"))
|
||||
{
|
||||
var body2 = "Kunde: " + MultitenancyOperationContextExt.Current.Tenant;
|
||||
//body2 += "\r\nIP: " + GetClientIP();
|
||||
body += "\n\n" + body2;
|
||||
}
|
||||
|
||||
return SendMail(senderEMail, senderName, to, subject, body, server, user, pass);
|
||||
|
||||
}
|
||||
|
||||
public static bool SendMail(string fromEMail, string fromName, string to, string subject, string body, string smtpServer, string smtpUser, string smtpPassword)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!IsValidEmail(to) || !IsValidEmail(fromEMail))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
MailMessage message = null;
|
||||
if (String.IsNullOrEmpty(fromName))
|
||||
message = new MailMessage(fromEMail, to, subject, body);
|
||||
else
|
||||
{
|
||||
MailAddress fromMailAddress = new MailAddress(fromEMail, fromName);
|
||||
MailAddress toMailAddress = new MailAddress(to);
|
||||
|
||||
message = new MailMessage(fromMailAddress, toMailAddress);
|
||||
message.Subject = subject;
|
||||
message.Body = body;
|
||||
}
|
||||
message.BodyEncoding = Encoding.UTF8;
|
||||
message.IsBodyHtml = false;
|
||||
|
||||
var mailClient = new SmtpClient(smtpServer, 587) { Credentials = new NetworkCredential(smtpUser, smtpPassword) };
|
||||
mailClient.EnableSsl = true;
|
||||
mailClient.SendAsync(message, null);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static string[][] T(List<string> pSearchParameter, int pSearchFieldCount)
|
||||
{
|
||||
//List<string> lDifferentParameter;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static string GetRecurringAppointmentsId(SchedulerAppointment appointment)
|
||||
{
|
||||
var erg = string.Empty;
|
||||
|
||||
if (appointment.RecurrenceInfo == null)
|
||||
return erg;
|
||||
|
||||
using (var reader = XmlReader.Create(new StringReader(appointment.RecurrenceInfo)))
|
||||
{
|
||||
reader.ReadToFollowing("RecurrenceInfo");
|
||||
reader.MoveToAttribute("Id");
|
||||
erg = reader.Value;
|
||||
}
|
||||
|
||||
return erg;
|
||||
}
|
||||
|
||||
public static DateTime[] GetRecurrenceInterval(SchedulerAppointment appointment)
|
||||
{
|
||||
var erg = new DateTime[2];
|
||||
|
||||
using (var reader = XmlReader.Create(new StringReader(appointment.RecurrenceInfo)))
|
||||
{
|
||||
reader.ReadToFollowing("RecurrenceInfo");
|
||||
|
||||
reader.MoveToAttribute("Start");
|
||||
DateTime outValue;
|
||||
var parsingSuccessful = DateTime.TryParseExact(reader.Value, @"MM\/dd\/yyyy HH:mm:ss", null, DateTimeStyles.None, out outValue);
|
||||
erg[0] = outValue;
|
||||
reader.MoveToAttribute("End");
|
||||
parsingSuccessful = DateTime.TryParseExact(reader.Value, @"MM\/dd\/yyyy HH:mm:ss", null, DateTimeStyles.None, out outValue);
|
||||
erg[1] = outValue;
|
||||
}
|
||||
|
||||
return erg;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user