public DependencyConstraintModel(DependencyConstraint constraint)
        {
            Id           = constraint.Id;
            Index        = constraint.Index;
            Negated      = constraint.Negated;
            SelectedMode = constraint.Mode;
            Description  = constraint.Description;

            if (constraint.ForPeriodicTimeInterval != null)
            {
                if (constraint.ForPeriodicTimeInterval.Id != 0)
                {
                    ForPeriodicTimeInterval       = new PeriodicTimeIntervalModel(constraint.ForPeriodicTimeInterval, (DateTime)constraint.ForTimeInterval.StartTime.Instant, (DateTime)constraint.ForTimeInterval.EndTime.Instant);
                    ForPeriodicTimeInterval.IsSet = true;
                    ForPeriodicTimeInterval.Index = constraint.Index;
                }
            }
            else
            {
                ForPeriodicTimeInterval = new PeriodicTimeIntervalModel();
            }

            ResourceObjects = new List <string>();
            ResourceObjects.Add("Single Resource");
            Implicit = constraint.Implicit;
            Quantity = constraint.Quantity;
            QuantityComparisonOperator = constraint.QuantityComparisonOperator;
            ObjectName = constraint.ForResource.Name;
            ObjectId   = constraint.ForResource.Id.ToString();
        }
        public BlockingConstraintModel(BlockingConstraint constraint)
        {
            Id           = constraint.Id;
            Index        = constraint.Index;
            Negated      = constraint.Negated;
            SelectedMode = constraint.Mode;
            Description  = constraint.Description;

            AllUsers = constraint.AllUsers;
            ForEver  = constraint.ForEver;

            ForTimeInterval = new TimeInterval();

            if (constraint.ForPeriodicTimeInterval != null)
            {
                if (constraint.ForPeriodicTimeInterval.Id != 0)
                {
                    ForPeriodicTimeInterval       = new PeriodicTimeIntervalModel(constraint.ForPeriodicTimeInterval, (DateTime)constraint.ForTimeInterval.StartTime.Instant, constraint.ForTimeInterval.EndTime.Instant);
                    ForPeriodicTimeInterval.IsSet = true;
                    ForPeriodicTimeInterval.Index = constraint.Index;
                }
                else
                {
                    ForPeriodicTimeInterval = new PeriodicTimeIntervalModel();
                }
            }

            if (constraint.ForPerson != null)
            {
                if (constraint.ForPerson.Self is PersonGroup)
                {
                    PersonGroup pGroup = (PersonGroup)constraint.ForPerson.Self;
                    // pGroup.Users.ToList().ForEach(u => ForPersons.Add(new PersonInConstraint(u, pGroup.Id, constraint.Index)));
                }
                else if (constraint.ForPerson.Self is IndividualPerson)
                {
                    IndividualPerson iPerson = (IndividualPerson)constraint.ForPerson.Self;
                    ForPersons.Add(new PersonInConstraint(iPerson.Person, iPerson.Id, constraint.Index));
                }
            }

            if (constraint.ForTimeInterval != null)
            {
                TimeInterval timeInterval = new TimeInterval();
                timeInterval           = constraint.ForTimeInterval.Self;
                timeInterval.StartTime = constraint.ForTimeInterval.StartTime.Self;
                timeInterval.EndTime   = constraint.ForTimeInterval.EndTime.Self;
                ForTimeInterval        = timeInterval;
            }
            else
            {
                ForTimeInterval = new TimeInterval();
            }
        }
        public ResourceConstraintModel()
        {
            Index          = 0;
            ConstraintType = new List <string>();
            ConstraintType.Add("Dependency");
            ConstraintType.Add("Blocking");
            ConstraintType.Add("Quantity");

            Mode = new List <ConstraintMode>();
            Mode.Add(ConstraintMode.all);
            Mode.Add(ConstraintMode.each);

            ForPersons = new List <PersonInConstraint>();
            ForPeriodicTimeInterval = new PeriodicTimeIntervalModel();
        }
 public BlockingConstraintModel()
 {
     ForTimeInterval         = new TimeInterval();
     ForPeriodicTimeInterval = new PeriodicTimeIntervalModel();
 }