public int Invoke(Nomination.Domain.ScheduledQuantities.ScheduledQuantities obj) { //create the naesb transaction int id = _scheduledQuantityService.Create(obj, _settings.UserId); //get the naesb event var naesbEvent = _naesbEventGetService.Invoke("OSQ", obj.PartyIndentificaton.PipelineEntity, obj.PartyIndentificaton.UtilityEntity, obj.Cycle); //process the ScheduledQuantity _scheduledQuantityProcessService.Invoke(naesbEvent.Pipeline, naesbEvent.Utility, obj.GasDay, naesbEvent.Cycle); return(id); }
private int CreateScheduledQuantities(DateTime processStart, string fileName, NaesbScheduledQuantities naesbObj, XmlDocument naesbXml) { //map NaesbScheduledQuantities to ScheduledQuantities Nomination.Domain.ScheduledQuantities.ScheduledQuantities osq = _scheduledQuantityEventGetService.Invoke(naesbObj); //serialize to xml XmlDocument domainXml = CS.Common.Utilities.XmlTransformer.XmlSerialize(osq, true); //instantiate naesb event process NaesbEventProcess obj = new NaesbEventProcess { Type = "OSQ", GasDay = osq.GasDay, Cycle = osq.Cycle, Pipeline = osq.PartyIndentificaton.PipelineEntity, Utility = osq.PartyIndentificaton.UtilityEntity, ProcessStart = processStart, EdiFileName = fileName, EdiData = naesbXml.InnerXml, DomainData = domainXml.InnerXml, UserId = _settings.UserId }; //get the naesb event var naesbEvent = _naesbEventGetService.Invoke("OSQ", obj.Pipeline, obj.Utility, obj.Cycle); if (naesbEvent != null && naesbEvent.On == true) //if null then the pipeline/utility/cycle doesn't exist in Pegasys { //create naesb event process int eventProcessId = _naesbEventProcessCreateService.Invoke(obj); //create the ScheduledQuantities _scheduledQuantityEventCreateService.Invoke(osq); //TODO: maybe make this use its own class instead of generic -> NaesbEventProcessCompletion //update ProcessEnd timestamp _naesbEventProcessUpdateService.Invoke(eventProcessId, new KeyValuePair <string, DateTime>("ProcessEnd", DateTime.Now)); return(eventProcessId); } throw new NaesbError { ReasonCode = "101", Value = "Pipeline/Utility/Cycle naesb event not found." }; }
/////////////////////////////////////////////////// /// ScheduledQuantities /////////////////////////////////////////////////// public Nomination.Domain.ScheduledQuantities.ScheduledQuantities Map(Nomination.Domain.ScheduledQuantities.Naesb.NaesbScheduledQuantities obj) { if (obj != null) { List <ScheduledQuantityLocationContractNomination> locationContractNominations = ReMap(obj); Nomination.Domain.ScheduledQuantities.ScheduledQuantities item = new Nomination.Domain.ScheduledQuantities.ScheduledQuantities { PurchaseOrderNumber = obj.Header.TransactionIdentifier, GasDayStart = GasDayStart(obj), GasDayEnd = GasDayEnd(obj), GasDay = GasDay(obj), Cycle = obj.Nominations[0].Cycle.Indicator, PartyIndentificaton = Map(obj.ConfirmingParties), Locations = locationContractNominations.Select(Map).ToList() }; return(item); } return(null); }
/////////////////////////////////////////////////// /// ScheduledQuantities /////////////////////////////////////////////////// public tb_naesb_transaction_master Map(Nomination.Domain.ScheduledQuantities.ScheduledQuantities obj) { if (obj != null) { return(new tb_naesb_transaction_master { FileType = "OSQ", PipelineCd = obj.PartyIndentificaton.PipelineEntity, CompanyCd = obj.PartyIndentificaton.UtilityEntity, GasDay = obj.GasDay, CycleCd = obj.Cycle, ConfirmingEntityId = obj.PartyIndentificaton.PipelineEntity, UtilityEntityId = obj.PartyIndentificaton.UtilityEntity, TransportationId = obj.PurchaseOrderNumber, NomCycleStart = DateTime.ParseExact(obj.GasDayStart, "yyyyMMddHHmm", null), NomcycleEnd = DateTime.ParseExact(obj.GasDayEnd, "yyyyMMddHHmm", null), TransactionTime = DateTime.Now, row_lst_upd_userid = UserId, tb_naesb_transaction_detail = Map(obj.Locations) }); } return(null); }