Beispiel #1
0
        private void ManageSharingWithDefinedActivities(IDefinedActivity activity, List <Activity> activities)
        {
            if (activity.Repeat == null || activity.Repeat.RepeatPeriod == RepeatPeriod.Single)
            {
                return;
            }

            var days       = (int)activity.Repeat.RepeatPeriod;
            var currentDay = activity.Start.Value.Date.AddDays(days);

            if (activity is FixedActivity)
            {
                var fixedActivity = activity as FixedActivity;

                while (currentDay <= fixedActivity.Repeat.EndDate && currentDay <= _rangeEnd)
                {
                    var item = new FixedActivity(fixedActivity.Name, fixedActivity.Description, fixedActivity.Color, CreationType.ManuallyCreated, fixedActivity.Labels,
                                                 fixedActivity.Category, fixedActivity.UserId, fixedActivity.Priority, currentDay + fixedActivity.Start.Value.TimeOfDay, currentDay + fixedActivity.End.TimeOfDay, false);
                    currentDay = currentDay.AddDays(days);
                    activities.Add(item);
                }
            }
            else
            {
                var unfixedActivity = activity as UnfixedActivity;

                while (currentDay <= unfixedActivity.Repeat.EndDate && currentDay <= _rangeEnd)
                {
                    var item = new FixedActivity(unfixedActivity.Name, unfixedActivity.Description, unfixedActivity.Color, CreationType.ManuallyCreated, unfixedActivity.Labels,
                                                 unfixedActivity.Category, unfixedActivity.UserId, unfixedActivity.Priority, currentDay + unfixedActivity.Start.Value.TimeOfDay, currentDay + unfixedActivity.End.Value.TimeOfDay, false);
                    currentDay = currentDay.AddDays(days);
                    activities.Add(item);
                }
            }
        }
Beispiel #2
0
        private bool InsertItem(IDefinedActivity activity, FreeSlot freeSlot)
        {
            var isFixed = activity is FixedActivity;

            if (isFixed)
            {
                freeSlot.tmpActivitiesFirst.Add(activity);
            }
            else
            {
                activity.Start = freeSlot.Start + GetTimeSpanOfItems(freeSlot.tmpActivitiesFirst);
                freeSlot.tmpActivitiesFirst.Add(activity);
            }

            return(isFixed);
        }
Beispiel #3
0
        private bool Fit(IDefinedActivity activity, FreeSlot frame, List <IDefinedActivity> temporaryStorage)
        {
            //Check if the FixActivity is insertable because of the ufas are in the tmpStorage
            var totalTimeSpan = GetTimeSpanOfItems(temporaryStorage);

            if (activity is FixedActivity)
            {
                var fixedActivity = activity as FixedActivity;

                return(fixedActivity.Start >= frame.Start &&
                       fixedActivity.End <= frame.End &&
                       fixedActivity.Start.Value.TimeOfDay > totalTimeSpan);
            }
            else
            {
                UnfixedActivity unfixedActivity = activity as UnfixedActivity;

                return(frame.RemainingTimeSpan >= unfixedActivity.TimeSpan);
            }
        }