public IConstraints4ConstraintElement Create(
            IaIndexElement aIndexElement,
            Is s,
            IBLOCKS BLOCKS,
            ISPz z)
        {
            IConstraints4ConstraintElement constraintElement = null;

            try
            {
                constraintElement = new Constraints4ConstraintElement(
                    aIndexElement,
                    s,
                    BLOCKS,
                    z);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(constraintElement);
        }
        public IConstraints16ConstraintElement Create(
            IaIndexElement aIndexElement,
            IsIndexElement sIndexElement,
            Ip p,
            Irk rk,
            Idur dur,
            ILength Length,
            IP P,
            ITPx x,
            ITPz z)
        {
            IConstraints16ConstraintElement constraintElement = null;

            try
            {
                constraintElement = new Constraints16ConstraintElement(
                    aIndexElement,
                    sIndexElement,
                    p,
                    rk,
                    dur,
                    Length,
                    P,
                    x,
                    z);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(constraintElement);
        }
        public ITPzResultElement Create(
            IsIndexElement sIndexElement,
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement,
            IkIndexElement kIndexElement,
            bool value)
        {
            ITPzResultElement resultElement = null;

            try
            {
                resultElement = new TPzResultElement(
                    sIndexElement,
                    aIndexElement,
                    rIndexElement,
                    kIndexElement,
                    value);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(resultElement);
        }
        public IConstraints15ConstraintElement Create(
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement,
            Isk sk,
            ILength Length,
            IORday ORday,
            ITPz z)
        {
            IConstraints15ConstraintElement constraintElement = null;

            try
            {
                constraintElement = new Constraints15ConstraintElement(
                    aIndexElement,
                    rIndexElement,
                    sk,
                    Length,
                    ORday,
                    z);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(constraintElement);
        }
        public Constraints5ConstraintElement(
            IaIndexElement aIndexElement,
            IsIndexElement sIndexElement,
            Ip p,
            Idur dur,
            ILENGTH LENGTH,
            IP P,
            ISPx x,
            ISPz z)
        {
            Expression LHS = Expression.Sum(
                p.Value
                .Where(
                    i =>
                    P.IsThereElementAt(
                        sIndexElement,
                        i))
                .Select(
                    i =>
                    (double)dur.GetElementAtAsdecimal(
                        i)
                    *
                    x.Value[i, aIndexElement]));

            Expression RHS =
                z.Value[sIndexElement, aIndexElement]
                *
                (double)LENGTH.Value.Value.Value;

            this.Value = LHS <= RHS;
        }
예제 #6
0
        public IsarkCrossJoinElement Create(
            IsIndexElement sIndexElement,
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement,
            IkIndexElement kIndexElement)
        {
            IsarkCrossJoinElement crossJoinElement = null;

            try
            {
                crossJoinElement = new sarkCrossJoinElement(
                    sIndexElement,
                    aIndexElement,
                    rIndexElement,
                    kIndexElement);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(crossJoinElement);
        }
        public IConstraints5ConstraintElement Create(
            IaIndexElement aIndexElement,
            IsIndexElement sIndexElement,
            Ip p,
            Idur dur,
            ILENGTH LENGTH,
            IP P,
            ISPx x,
            ISPz z)
        {
            IConstraints5ConstraintElement constraintElement = null;

            try
            {
                constraintElement = new Constraints5ConstraintElement(
                    aIndexElement,
                    sIndexElement,
                    p,
                    dur,
                    LENGTH,
                    P,
                    x,
                    z);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(constraintElement);
        }
        public arCrossJoinElement(
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement)
        {
            this.aIndexElement = aIndexElement;

            this.rIndexElement = rIndexElement;
        }
        public saCrossJoinElement(
            IsIndexElement sIndexElement,
            IaIndexElement aIndexElement)
        {
            this.sIndexElement = sIndexElement;

            this.aIndexElement = aIndexElement;
        }
예제 #10
0
        public paCrossJoinElement(
            IpIndexElement pIndexElement,
            IaIndexElement aIndexElement)
        {
            this.pIndexElement = pIndexElement;

            this.aIndexElement = aIndexElement;
        }
예제 #11
0
 public decimal GetElementAtAsdecimal(
     IaIndexElement aIndexElement,
     IrIndexElement rIndexElement)
 {
     return(this.Value
            .Where(x => x.aIndexElement == aIndexElement && x.rIndexElement == rIndexElement)
            .Select(x => x.Value.Value.Value)
            .SingleOrDefault());
 }
예제 #12
0
 public int GetElementAtAsint(
     IpIndexElement pIndexElement,
     IaIndexElement aIndexElement)
 {
     return(this.Value
            .Where(x => x.pIndexElement == pIndexElement && x.aIndexElement == aIndexElement)
            .Select(x => x.Value)
            .SingleOrDefault());
 }
예제 #13
0
 public int GetElementAtAsint(
     IsIndexElement sIndexElement,
     IaIndexElement aIndexElement,
     IrIndexElement rIndexElement,
     IkIndexElement kIndexElement)
 {
     return(this.Value
            .Where(x => x.sIndexElement == sIndexElement && x.aIndexElement == aIndexElement && x.rIndexElement == rIndexElement && x.kIndexElement == kIndexElement)
            .Select(x => x.Value ? 1 : 0)
            .SingleOrDefault());
 }
예제 #14
0
        public ORdayParameterElement(
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement,
            Duration value)
        {
            this.aIndexElement = aIndexElement;

            this.rIndexElement = rIndexElement;

            this.Value = value;
        }
예제 #15
0
        public TPxResultElement(
            IpIndexElement pIndexElement,
            IaIndexElement aIndexElement,
            int value)
        {
            this.pIndexElement = pIndexElement;

            this.aIndexElement = aIndexElement;

            this.Value = value;
        }
예제 #16
0
        public AParameterElement(
            IpIndexElement pIndexElement,
            IdIndexElement dIndexElement,
            IaIndexElement aIndexElement)
        {
            this.pIndexElement = pIndexElement;

            this.dIndexElement = dIndexElement;

            this.aIndexElement = aIndexElement;
        }
예제 #17
0
        public sarkCrossJoinElement(
            IsIndexElement sIndexElement,
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement,
            IkIndexElement kIndexElement)
        {
            this.sIndexElement = sIndexElement;

            this.aIndexElement = aIndexElement;

            this.rIndexElement = rIndexElement;

            this.kIndexElement = kIndexElement;
        }
예제 #18
0
        public bool GetElementAt(
            IsIndexElement sIndexElement,
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement,
            IkIndexElement kIndexElement)
        {
            bool value = false;

            if (this.Value[sIndexElement, aIndexElement, rIndexElement, kIndexElement].Value.IsAlmost(1))
            {
                value = true;
            }

            return(value);
        }
예제 #19
0
        public Constraints4ConstraintElement(
            IaIndexElement aIndexElement,
            Is s,
            IBLOCKS BLOCKS,
            ISPz z)
        {
            Expression LHS = Expression.Sum(
                s.Value
                .Select(
                    i => z.Value[i, aIndexElement]));

            int RHS = BLOCKS.Value.Value.Value;

            this.Value = LHS <= RHS;
        }
예제 #20
0
        public TPzResultElement(
            IsIndexElement sIndexElement,
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement,
            IkIndexElement kIndexElement,
            bool value)
        {
            this.sIndexElement = sIndexElement;

            this.aIndexElement = aIndexElement;

            this.rIndexElement = rIndexElement;

            this.kIndexElement = kIndexElement;

            this.Value = value;
        }
예제 #21
0
        public int GetElementAt(
            IpIndexElement pIndexElement,
            IaIndexElement aIndexElement)
        {
            int value = 0;

            int rounded = (int)Math.Round(
                this.Value[pIndexElement, aIndexElement].Value,
                0,
                MidpointRounding.AwayFromZero);

            if (this.Value[pIndexElement, aIndexElement].Value.IsAlmost(rounded))
            {
                value = rounded;
            }

            return(value);
        }
예제 #22
0
        public bool IsThereElementAt(
            IpIndexElement pIndexElement,
            IdIndexElement dIndexElement,
            IaIndexElement aIndexElement)
        {
            int count = this.Value
                        .Where(x => x.pIndexElement == pIndexElement && x.dIndexElement == dIndexElement && x.aIndexElement == aIndexElement)
                        .Distinct()
                        .Count();

            if (count == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public IpaCrossJoinElement Create(
            IpIndexElement pIndexElement,
            IaIndexElement aIndexElement)
        {
            IpaCrossJoinElement crossJoinElement = null;

            try
            {
                crossJoinElement = new paCrossJoinElement(
                    pIndexElement,
                    aIndexElement);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(crossJoinElement);
        }
        public IarCrossJoinElement Create(
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement)
        {
            IarCrossJoinElement crossJoinElement = null;

            try
            {
                crossJoinElement = new arCrossJoinElement(
                    aIndexElement,
                    rIndexElement);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(crossJoinElement);
        }
        public IaIndexElement Create(
            int key,
            FhirDateTime value)
        {
            IaIndexElement indexElement = null;

            try
            {
                indexElement = new aIndexElement(
                    key,
                    value);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(indexElement);
        }
예제 #26
0
        public IAParameterElement Create(
            IpIndexElement pIndexElement,
            IdIndexElement dIndexElement,
            IaIndexElement aIndexElement)
        {
            IAParameterElement parameterElement = null;

            try
            {
                parameterElement = new AParameterElement(
                    pIndexElement,
                    dIndexElement,
                    aIndexElement);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(parameterElement);
        }
예제 #27
0
        public ISPxResultElement Create(
            IpIndexElement pIndexElement,
            IaIndexElement aIndexElement,
            int value)
        {
            ISPxResultElement resultElement = null;

            try
            {
                resultElement = new SPxResultElement(
                    pIndexElement,
                    aIndexElement,
                    value);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(resultElement);
        }
예제 #28
0
        public IORdayParameterElement Create(
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement,
            Duration value)
        {
            IORdayParameterElement parameterElement = null;

            try
            {
                parameterElement = new ORdayParameterElement(
                    aIndexElement,
                    rIndexElement,
                    value);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(parameterElement);
        }
        public Constraints15ConstraintElement(
            IaIndexElement aIndexElement,
            IrIndexElement rIndexElement,
            Isk sk,
            ILength Length,
            IORday ORday,
            ITPz z)
        {
            Expression LHS = Expression.Sum(
                sk.Value
                .Select(
                    i =>
                    z.Value[i.sIndexElement, aIndexElement, rIndexElement, i.kIndexElement]
                    *
                    (double)Length.GetElementAtAsdecimal(
                        i.kIndexElement)));

            double RHS = (double)ORday.GetElementAtAsdecimal(
                aIndexElement,
                rIndexElement);

            this.Value = LHS <= RHS;
        }
        public Constraints16ConstraintElement(
            IaIndexElement aIndexElement,
            IsIndexElement sIndexElement,
            Ip p,
            Irk rk,
            Idur dur,
            ILength Length,
            IP P,
            ITPx x,
            ITPz z)
        {
            Expression LHS = Expression.Sum(
                p.Value
                .Where(
                    i =>
                    P.IsThereElementAt(
                        sIndexElement,
                        i))
                .Select(
                    i =>
                    (double)dur.GetElementAtAsdecimal(
                        i)
                    *
                    x.Value[i, aIndexElement]));

            Expression RHS = Expression.Sum(
                rk.Value
                .Select(
                    i =>
                    z.Value[sIndexElement, aIndexElement, i.rIndexElement, i.kIndexElement]
                    *
                    (double)Length.GetElementAtAsdecimal(
                        i.kIndexElement)));

            this.Value = LHS <= RHS;
        }