Exemplo n.º 1
0
        private List <ConfirmationResponseLocationContractNomination> ReMap(Nomination.Domain.ConfirmationResponse.Naesb.NaesbConfirmationResponse obj)
        {
            //will modify by reference
            AddNomsContractInfo(obj);

            //////////////////////////////////////////////
            //TODO:  This works but i dont understand why...try to fix it
            List <ConfirmationResponseLocationContractNomination> lcns =
                (
                    from nomination in obj.Nominations
                    from nominationDetail in nomination.Location.NominationDetails
                    from identifier in nominationDetail.Identifiers
                    where identifier.EntityIdCode == "78"
                    from identifierDetail in identifier.IdentifierDetails
                    where identifierDetail.Qualifier == "KSR"
                    group nominationDetail by new
            {
                LocationCode = nomination.Location.Code,
                ServiceRequesterContractId = identifierDetail.Code
            }
                    into grp
                    orderby grp.Key.LocationCode
                    select new ConfirmationResponseLocationContractNomination
            {
                LocationCode = grp.Key.LocationCode,
                ContractNominations = new List <ConfirmationResponseContractNomination>
                {
                    new ConfirmationResponseContractNomination
                    {
                        ServiceRequesterContractId = grp.Key.ServiceRequesterContractId,
                        Nominations = grp.ToList()
                    }
                }
            }
                ).ToList();

            List <ConfirmationResponseLocationContractNomination> objs =
                (
                    from locationContractNominations in lcns
                    from contractNominations in locationContractNominations.ContractNominations
                    group contractNominations by new
            {
                LocationCode = locationContractNominations.LocationCode,
            }
                    into grp
                    select new ConfirmationResponseLocationContractNomination
            {
                LocationCode = grp.Key.LocationCode,
                ContractNominations = grp.ToList()
            }
                ).ToList();

            return(objs);
        }
Exemplo n.º 2
0
        private DateTime GasDay(Nomination.Domain.ConfirmationResponse.Naesb.NaesbConfirmationResponse obj)
        {
            //GasDay = obj.Nominations[0].DateTimeFormatQualifier == "RDT" ? DateTime.ParseExact(obj.Nominations[0].DateTimePeriod?.Split('-')[0].Substring(0, 8), "yyyyMMdd", null) : default(DateTime),

            if (obj.Nominations[0].DateTimeFormatQualifier == "RDT")
            {
                return(DateTime.ParseExact(obj.Nominations[0].DateTimePeriod?.Split('-')[0].Substring(0, 8), "yyyyMMdd", null));
            }
            if (obj.Nominations[0].DateTimeFormatQualifier == "RD8")
            {
                return(DateTime.ParseExact(obj.Nominations[0].DateTimePeriod?.Split('-')[0].Substring(0, 8), "yyyyMMdd", null));
            }

            return(default(DateTime));;
        }
Exemplo n.º 3
0
        private string GasDayEnd(Nomination.Domain.ConfirmationResponse.Naesb.NaesbConfirmationResponse obj)
        {
            //GasDayEnd = obj.Nominations[0].DateTimeFormatQualifier == "RDT" ? obj.Nominations[0].DateTimePeriod?.Split('-')[1] : null,

            if (obj.Nominations[0].DateTimeFormatQualifier == "RDT")
            {
                return(obj.Nominations[0].DateTimePeriod?.Split('-')[1]);
            }

            if (obj.Nominations[0].DateTimeFormatQualifier == "RD8")
            {
                return(obj.Nominations[0].DateTimePeriod?.Split('-')[1] + "0900");
            }

            return(null);
        }
Exemplo n.º 4
0
 //this function will add NomsContractInfo nodes when null...by reference
 private void AddNomsContractInfo(Nomination.Domain.ConfirmationResponse.Naesb.NaesbConfirmationResponse obj)
 {
     foreach (var nom in obj.Nominations)
     {
         foreach (var detail in nom.Location.NominationDetails)
         {
             foreach (var indentifier in detail.Identifiers)
             {
                 if (indentifier.EntityIdCode == "78")
                 {
                     if (indentifier.IdentifierDetails != null)
                     {
                         //identifier of KSR does not exist
                         bool exists = indentifier.IdentifierDetails.Any(x => x.Qualifier == "KSR");
                         if (exists == false)
                         {
                             indentifier.IdentifierDetails.Add(
                                 new Nomination.Domain.ConfirmationResponse.Naesb.IdentifierDetail
                             {
                                 Qualifier = "KSR",
                                 Code      = null
                             }
                                 );
                         }
                     }
                     else
                     {
                         //add the entire list with one KSR
                         indentifier.IdentifierDetails = new List <Nomination.Domain.ConfirmationResponse.Naesb.IdentifierDetail>
                         {
                             new Nomination.Domain.ConfirmationResponse.Naesb.IdentifierDetail
                             {
                                 Qualifier = "KSR",
                                 Code      = null
                             }
                         };
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 5
0
        ///////////////////////////////////////////////////
        /// ConfirmationResponse
        ///////////////////////////////////////////////////
        public Nomination.Domain.ConfirmationResponse.ConfirmationResponse Map(Nomination.Domain.ConfirmationResponse.Naesb.NaesbConfirmationResponse obj)
        {
            if (obj != null)
            {
                //all NominationDetails with criteria -- WORKING!!
                List <ConfirmationResponseLocationContractNomination> locationContractNominations = ReMap(obj);

                Nomination.Domain.ConfirmationResponse.ConfirmationResponse item =
                    new Nomination.Domain.ConfirmationResponse.ConfirmationResponse
                {
                    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);
        }