public int Invoke(DateTime processStart, NaesbScheduledQuantities naesbObj)
        {
            //serialize into naesb XmlDocument
            XmlDocument naesbXml = CS.Common.Utilities.XmlTransformer.XmlSerialize(naesbObj, true);

            int id = CreateScheduledQuantities(processStart, null, naesbObj, naesbXml);

            return(id);
        }
示例#2
0
        public ScheduledQuantities Invoke(FileInfo file)
        {
            //deserialize GENTRAN EDI translated .xml file into Naesb EDI XmlDocument
            XmlDocument ediXml = CS.Common.Utilities.XmlTransformer.ConvertToXmlDocument(file, true);
            //deserialize XmlDocument into NaesbScheduledQuantities naesbObj
            NaesbScheduledQuantities naesbObj = CS.Common.Utilities.XmlTransformer.XmlDeserialize <NaesbScheduledQuantities>(ediXml.InnerXml);
            //map NaesbScheduledQuantities to ScheduledQuantities
            ScheduledQuantities osq = Map(new Common.ModelFactory().Map(naesbObj));

            return(osq);
        }
示例#3
0
        public IHttpActionResult Get(int id)
        {
            NaesbScheduledQuantities obj = _container.Resolve <INaesbOperatorScheduledQuantitiesGet>().Invoke(id);

            if (obj != null)
            {
                return(Ok(obj));
            }

            return(NotFound());
        }
        public int Invoke(DateTime processStart, FileInfo file)
        {
            //serialize naesb translated .xml file into naesb XmlDocument
            XmlDocument naesbXml = CS.Common.Utilities.XmlTransformer.ConvertToXmlDocument(file, true);

            //deserialize XmlDocument into NaesbConfirmationResponse naesbObj
            NaesbScheduledQuantities naesbObj = CS.Common.Utilities.XmlTransformer.XmlDeserialize <NaesbScheduledQuantities>(naesbXml.InnerXml);

            int id = CreateScheduledQuantities(processStart, file.Name, naesbObj, naesbXml);

            return(id);
        }
示例#5
0
        public IHttpActionResult Post(NaesbScheduledQuantities value)
        {
            try
            {
                int id = _container.Resolve <INaesbOperatorScheduledQuantitiesCreate>().Invoke(DateTime.Now, value);

                if (id > 0)
                {
                    string location = Request.RequestUri + "/" + id;
                    return(Created(location, id));
                }
            }
            catch (NaesbError ex)
            {
                if (ex.ReasonCode == "101")
                {
                    return(Conflict());
                }
            }
            return(BadRequest());
        }
示例#6
0
 public ScheduledQuantities Invoke(NaesbScheduledQuantities obj)
 {
     //map NaesbScheduledQuantities to ScheduledQuantities
     return(Map(new Nomination.BusinessLayer.Common.ModelFactory().Map(obj)));
 }
        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."
                  };
        }