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 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 ISurgeonGroupNumberAssignedActiveDaysResultElement Calculate(
     ISurgeonGroupNumberAssignedActiveDaysResultElementFactory surgeonGroupNumberAssignedActiveDaysResultElementFactory,
     IsIndexElement sIndexElement,
     ITPz z)
 {
     return(surgeonGroupNumberAssignedActiveDaysResultElementFactory.Create(
                sIndexElement,
                z.Value
                .Where(i => i.sIndexElement == sIndexElement && i.Value)
                .Select(i => i.aIndexElement.Value.ToDateTimeOffset(TimeSpan.Zero).UtcDateTime.DayOfWeek)
                .Distinct()
                .Count()));
 }
Ejemplo n.º 4
0
 public IWardNumberAssignedOperatingRoomsResultElement Calculate(
     IWardNumberAssignedOperatingRoomsResultElementFactory wardNumberAssignedOperatingRoomsResultElementFactory,
     IWParameterElement WParameterElement,
     ITPz z)
 {
     return(wardNumberAssignedOperatingRoomsResultElementFactory.Create(
                WParameterElement.wIndexElement,
                WParameterElement.Value
                .SelectMany(a => z.Value.Where(i => i.sIndexElement == a && i.Value)
                            .Select(w => w.rIndexElement))
                .Distinct()
                .Count()));
 }
 public IWardNumberAssignedActiveDaysResultElement Calculate(
     IWardNumberAssignedActiveDaysResultElementFactory wardNumberAssignedActiveDaysResultElementFactory,
     IWParameterElement WParameterElement,
     ITPz z)
 {
     return(wardNumberAssignedActiveDaysResultElementFactory.Create(
                WParameterElement.wIndexElement,
                WParameterElement.Value
                .SelectMany(a => z.Value.Where(i => i.sIndexElement == a && i.Value)
                            .Select(i => i.aIndexElement.Value.ToDateTimeOffset(TimeSpan.Zero).UtcDateTime.DayOfWeek))
                .Distinct()
                .Count()));
 }
 public ISurgeonGroupNumberAssignedOperatingRoomsResultElement Calculate(
     ISurgeonGroupNumberAssignedOperatingRoomsResultElementFactory surgeonGroupNumberAssignedOperatingRoomsResultElementFactory,
     IsIndexElement sIndexElement,
     ITPz z)
 {
     return(surgeonGroupNumberAssignedOperatingRoomsResultElementFactory.Create(
                sIndexElement,
                z.Value
                .Where(w => w.sIndexElement == sIndexElement && w.Value)
                .Select(w => w.rIndexElement)
                .Distinct()
                .Count()));
 }
 public ISurgeonGroupNumberAssignedActiveDays Calculate(
     ISurgeonGroupNumberAssignedActiveDaysResultElementFactory surgeonGroupNumberAssignedActiveDaysResultElementFactory,
     ISurgeonGroupNumberAssignedActiveDaysFactory surgeonGroupNumberAssignedActiveDaysFactory,
     ISurgeonGroupNumberAssignedActiveDaysResultElementCalculation surgeonGroupNumberAssignedActiveDaysResultElementCalculation,
     Is s,
     ITPz z)
 {
     return(surgeonGroupNumberAssignedActiveDaysFactory.Create(
                s.Value
                .Select(w => surgeonGroupNumberAssignedActiveDaysResultElementCalculation.Calculate(
                            surgeonGroupNumberAssignedActiveDaysResultElementFactory,
                            w,
                            z))
                .ToImmutableList()));
 }
 public IWardNumberAssignedOperatingRooms Calculate(
     IWardNumberAssignedOperatingRoomsResultElementFactory wardNumberAssignedOperatingRoomsResultElementFactory,
     IWardNumberAssignedOperatingRoomsFactory wardNumberAssignedOperatingRoomsFactory,
     IWardNumberAssignedOperatingRoomsResultElementCalculation wardNumberAssignedOperatingRoomsResultElementCalculation,
     IW W,
     ITPz z)
 {
     return(wardNumberAssignedOperatingRoomsFactory.Create(
                W.Value
                .Select(i => wardNumberAssignedOperatingRoomsResultElementCalculation.Calculate(
                            wardNumberAssignedOperatingRoomsResultElementFactory,
                            i,
                            z))
                .ToImmutableList()));
 }
Ejemplo n.º 9
0
        public ITPz Create(
            ImmutableList <ITPzResultElement> value)
        {
            ITPz result = null;

            try
            {
                result = new TPz(
                    value);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(result);
        }
Ejemplo n.º 10
0
        public ITPz Create(
            VariableCollection <IsIndexElement, IaIndexElement, IrIndexElement, IkIndexElement> value)
        {
            ITPz variable = null;

            try
            {
                variable = new TPz(
                    value);
            }
            catch (Exception exception)
            {
                this.Log.Error(
                    exception.Message,
                    exception);
            }

            return(variable);
        }
 public ITotalTime Calculate(
     ITotalTimeFactory totalTimeFactory,
     Isark sark,
     ILength Length,
     ITPz z)
 {
     return(totalTimeFactory.Create(
                sark.Value
                .Select(w =>
                        z.GetElementAtAsint(
                            w.sIndexElement,
                            w.aIndexElement,
                            w.rIndexElement,
                            w.kIndexElement)
                        *
                        Length.GetElementAtAsdecimal(
                            w.kIndexElement))
                .Sum()));
 }
        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;
        }