public void Init()
        {
            var testDataModel = new TestDataModel();

            list = new ActivitiesList(testDataModel.MockDataModel.Object);
            test = list.Create();
        }
        /// <summary>
        /// Generates a .FET file for use in the algorithm.
        /// </summary>
        /// <param name="outputDir">Output directory for the FET file.</param>
        /// <returns>Filename of the generated .FET file.</returns>
        public string GenerateFetFile(string outputDir)
        {
            // Init XML creator
            var xmlCreator = new XmlCreator(FetVersion);

            // Create FET file
            xmlCreator.AddToRoot(DaysList.Create());
            xmlCreator.AddToRoot(HoursList.Create());
            xmlCreator.AddToRoot(TeachersList.Create());
            xmlCreator.AddToRoot(SubjectsList.Create());
            xmlCreator.AddToRoot(YearsList.Create());
            xmlCreator.AddToRoot(ActivitiesList.Create());
            xmlCreator.AddToRoot(TimeConstraintsList.Create());
            xmlCreator.AddToRoot(SpaceConstraintsList.Create());
            xmlCreator.AddToRoot(RoomsList.Create());

            return(xmlCreator.Save(outputDir));
        }
Exemple #3
0
        /// <summary>
        /// Creates the array of XElements for the constraint.
        /// </summary>
        /// <returns>The created array.</returns>
        /// <param name="dB">Datamodel.</param>
        public override XElement[] Create(DataModel dB)
        {
            ActivitiesList activitiesList = new ActivitiesList(dB);

            activitiesList.Create();

            var query = from activity in activitiesList.Activities.Values
                        group new { id = activity.GroupId, activity.TotalDuration, activity.Duration }
            by activity.GroupId into g
            where g.Count() > 1
            select g;

            var result = new List <ConstraintMinDaysBetweenActivities>();

            foreach (var item in query)
            {
                var firstElement = item.First();
                result.Add(new ConstraintMinDaysBetweenActivities {
                    GroupID = firstElement.id, NumberOfActivities = (int)Math.Ceiling(firstElement.TotalDuration / (double)firstElement.Duration)
                });
            }
            return(result.Select(item => item.ToXelement()).ToArray());
        }