public Identifier[] Push(string AppInstance, string Culture, string Version, Message[] messages) { try { DateTime lastSettingsDate = DateTime.MaxValue; if (Version != null) { var pos = Version.IndexOf('?'); if (pos > 0) { lastSettingsDate = DateTime.MinValue; DateTime.TryParse(Version.Substring(pos + 1), out lastSettingsDate); Version = Version.Substring(0, pos); } } var result = new List <Identifier>(); using (var db = new DailyLog_dbEntities()) { //db.Database.CommandTimeout = 120; foreach (var msg in messages) { try{ if (msg.MessageType == "MilestoneMessage" && msg.Body.Contains("New Install")) { OperationContext context = OperationContext.Current; MessageProperties prop = context.IncomingMessageProperties; RemoteEndpointMessageProperty endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty; string ip = endpoint.Address; msg.Body = msg.Body.Replace("<Value>" + Version + "</Value>", "<Value>" + ip + "</Value>"); } } catch {} var MQ = new MessageQueue(); MQ.AppInstance = AppInstance; MQ.ClientKey = msg.Key; MQ.MessageType = msg.MessageType; MQ.IsServerIncoming = true; MQ.Message = msg.Body; MQ.Created = DateTime.Now; MQ.Version = Version; MQ.Culture = Culture; db.MessageQueues.Add(MQ); result.Add(new Identifier() { Key = msg.Key }); } db.SaveChanges(); } foreach (var msg in messages) { if (msg != null && msg.MessageType == "EmailOutMessage") { ProcessEmailMessage(AppInstance, msg); } } if (lastSettingsDate < DateTime.MaxValue) { var settings = GetSettingsUpdate(Culture, lastSettingsDate); if (settings != null) { result.Add(new Identifier() { Key = settings }); } } return(result.ToArray()); } catch (Exception ex) { ServerException.Report(ex); } return(null); }