/// <summary> /// Procesa un mensaje de tipo SARSurpicRequest. /// </summary> /// <param name="msg">Mensaje SARSURPICRequest</param> public void ProcessSARSURPICRequest(SARSURPICType SARSURPICRequest) { var configMgr = new ConfigurationManager(); var shipPositionManager = new ShipPositionManager(); List <ShipPosition> shipPositions; if (SARSURPICRequest.ItemElementName == DataCenterLogic.DataCenterTypes.ItemChoiceType1.SARCircularArea) { shipPositions = shipPositionManager.GetLastPositionsInCircularArea(SARSURPICRequest.Item, int.Parse(SARSURPICRequest.NumberOfPositions)); } else { shipPositions = shipPositionManager.GetLastPositionsInRectangularArea(SARSURPICRequest.Item, int.Parse(SARSURPICRequest.NumberOfPositions)); } if (shipPositions.Count == 0) { DataCenterTypesIDE.ReceiptType receipt = new DataCenterLogic.DataCenterTypesIDE.ReceiptType(); receipt.DDPVersionNum = DDPVersionManager.currentDDP(); receipt.Destination = SARSURPICRequest.DataUserRequestor; receipt.Message = "No positions"; receipt.MessageId = MessageIdManager.Generate(); receipt.MessageType = DataCenterLogic.DataCenterTypesIDE.messageTypeType3.Item7; receipt.Originator = "1005"; receipt.ReceiptCode = DataCenterLogic.DataCenterTypesIDE.receiptCodeType.Item7; receipt.ReferenceId = SARSURPICRequest.MessageId; receipt.schemaVersion = decimal.Parse(configMgr.Configuration.SchemaVersion); receipt.test = DataCenterLogic.DataCenterTypesIDE.testType.Item1; receipt.TimeStamp = DateTime.UtcNow; //Receipt sent Message msgout = new Message(receipt); msgout.Label = "receipt"; QueueManager.Instance().EnqueueOut(msgout); } else { using (var shipdao = new ShipDataAccess()) { var sprm = new ShipPositionReportManager(); foreach (ShipPosition shipPos in shipPositions) { sprm.SendReport(SARSURPICRequest.DataUserRequestor, shipPos, SARSURPICRequest.MessageId, DataCenterLogic.DataCenterTypesIDE.responseTypeType.Item4, DataCenterLogic.DataCenterTypesIDE.messageTypeType.Item3); } } } using (var dao = new SARSURPICRequestDataAccess()) { dao.Create(TypeHelper.Map2DB(SARSURPICRequest), 0); } log.Info("SARSURPICRequest successfully processed"); }
private string SendSARSurpicRequest(Message msg) { DataCenterLogic.DataCenterTypesIDE.SARSURPICType SARSurpicReq = (DataCenterLogic.DataCenterTypesIDE.SARSURPICType)(msg.Body); //Send to IDE if (System.Configuration.ConfigurationManager.AppSettings["send2servers"] != "False") { SARSurpicReq.test = DataCenterLogic.DataCenterTypesIDE.testType.Item0; ideClient.SARSURPICRequest(SARSurpicReq); log.Info("SendSARSurpicRequest: SARSurpicReq sent to IDE"); } //Guarda el mensaje en la base de datos using (var dao = new SARSURPICRequestDataAccess()) { dao.Create(TypeHelper.Map2DB(SARSurpicReq), 1); } log.Info("SARSurpicReq stored"); return(SARSurpicReq.MessageId); }
public ActionResult SurpicGridData(int page, int rows, string[] _search, string sidx, string sord, int msgInOut) { string[] ReqParams = { "DataUserRequestor", "DDPVersionNum", "Item", "ItemElementName", "MessageId", "NumberOfPositions", "TimeStamp" }; List <string> columns = new List <string>(); List <string> querys = new List <string>(); string tstamp = "-"; var fromDate = new DateTime(2000, 1, 1); var toDate = new DateTime(2200, 1, 1); //Vectores Apareados SearchQuery, Columns for (int i = 0; i < ReqParams.Count(); i++) { if (ReqParams[i].Contains("TimeStamp")) { tstamp = Request.Params[ReqParams[i]]; if (tstamp != null) { var dates = tstamp.Split('-'); fromDate = DateTime.Parse(dates[0]); if (dates.Length == 1) { toDate = fromDate.AddDays(1); } else { toDate = DateTime.Parse(dates[1]); } } continue; } var tempValue = Request.Params[ReqParams[i]]; if (tempValue != null) { columns.Add(ReqParams[i]); querys.Add(tempValue); } } var sprda = new SARSURPICRequestDataAccess(context); IQueryable <SARSURPICRequest> requests; requests = sprda.GetAllBetween(msgInOut, fromDate, toDate); var model = from entity in requests.OrderBy(sidx + " " + sord) select new { DataUserRequestor = entity.DataUserRequestor, DDPVersionNum = entity.DDPVersionNum, Item = entity.Item, ItemElementName = entity.ItemElementName, MessageId = entity.MessageId, NumberOfPositions = entity.NumberOfPositions, TimeStamp = entity.TimeStamp.ToString(), }; return(Json(model.ToJqGridData(page, rows, null, querys.ToArray(), columns.ToArray()))); }
public ActionResult CreateAndSendSarsurpic(DataCenterLogic.DataCenterTypesIDE.SARSURPICType SARSURPICMsg, int areaIndex, int NumberOfPositions, string Lat, string Long, string var1, string var2) { var cfgman = new ConfigurationManager(); var ddpVer = new DDPVersionDataAccess(); var sprda = new SARSURPICRequestDataAccess(context); string strItem = string.Empty; MakeComboSARService(); //\ if (!Regex.IsMatch(Lat, @"(([0-8][0-9]\.[0-5][0-9]\.[nNsS])|(90\.00\.[nNsS]))")) { ModelState.AddModelError("Lat", "Latitud: El formato correcto es 00.00.N/S"); } if (!Regex.IsMatch(Long, @"(([0-1][0-7][0-9]\.[0-5][0-9]\.[eEwW])|(180\.00\.[eEwW]))")) { ModelState.AddModelError("Long", "Longitud: El formato correcto es 000.00.E/W"); } //SARSURPICMsg.DataUserRequestor = "1005"; var v = ddpVer.TodaysDDP(); SARSURPICMsg.DDPVersionNum = v.regularVer + ":" + v.inmediateVer; if (areaIndex == 0) { if (!Regex.IsMatch(var1, @"([0-9]{3})")) { ModelState.AddModelError("var1", "Radio: El formato correcto es 000"); } strItem = string.Format(Lat + ":" + Long + ":" + var1); SARSURPICMsg.Item = strItem; SARSURPICMsg.ItemElementName = DataCenterLogic.DataCenterTypesIDE.ItemChoiceType1.SARCircularArea; } if (areaIndex == 1) { if (!Regex.IsMatch(var1, @"(([0-8][0-9]\.[0-5][0-9]\.[nN])|(90\.00\.[nN]))")) { ModelState.AddModelError("var1", "Offset Norte: El formato correcto es 00.00.N"); } if (!Regex.IsMatch(var2, @"(([0-1][0-7][0-9]\.[0-5][0-9]\.[eE])|(180\.00\.[eE]))")) { ModelState.AddModelError("var2", "Offset Este: es 000.00.E"); } strItem = string.Format(Lat + ":" + Long + ":" + var1 + ":" + var2); SARSURPICMsg.Item = strItem; SARSURPICMsg.ItemElementName = DataCenterLogic.DataCenterTypesIDE.ItemChoiceType1.SARRectangularArea; } if (!ModelState.IsValid) { return(ShowNewSarsurpic(areaIndex)); } SARSURPICMsg.MessageId = MessageIdManager.Generate(SARSURPICMsg.DataUserRequestor); SARSURPICMsg.MessageType = (DataCenterLogic.DataCenterTypesIDE.messageTypeType2)Enum.Parse(typeof(DataCenterLogic.DataCenterTypesIDE.messageTypeType2), "Item6"); //SARSURPICMsg.NumberOfPositions = dc3NumberOfPositions.Text; SARSURPICMsg.schemaVersion = decimal.Parse(cfgman.Configuration.SchemaVersion); SARSURPICMsg.test = DataCenterLogic.DataCenterTypesIDE.testType.Item1; SARSURPICMsg.TimeStamp = DateTime.UtcNow; Message msgout = new Message(SARSURPICMsg); msgout.Label = "SARSURPICRequest"; string outQueue = System.Configuration.ConfigurationManager.AppSettings["CoreOutQueue"]; QueueManager.Instance().SetOut(outQueue); QueueManager.Instance().EnqueueOut(msgout); //sprda.Create( TypeHelper.Map2DB(SARSURPICMsg), 1); return(View("Sent")); }