示例#1
0
        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."
                  };
        }
示例#3
0
        ///////////////////////////////////////////////////
        /// 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);
        }