public void TryAddCamper_ActivityHasNoRoom_Failure()
        {
            // Arrange - Activity with room for 1 and a camper
            ActivityBlock activityBlock = new ActivityBlock
            {
                ActivityDefinition = new ActivityDefinition {
                    MaximumCapacity = 1
                }
            };

            activityBlock.TryAddCamper(new Camper {
                FirstName = "First"
            });

            // Act
            var didAdd = activityBlock.TryAddCamper(new Camper {
                FirstName = "Second"
            });

            // Assert
            Assert.That(didAdd, Is.False, "TryAddCamper succeeded");
            Assert.That(activityBlock.AssignedCampers.Count, Is.EqualTo(1),
                        "Number of assigned campers");
            Assert.That(activityBlock.AssignedCampers[0].FirstName, Is.EqualTo("First"),
                        "Name of assigned camper");
        }
        public void TryAddCamper_ActivityHasRoom_Success()
        {
            // Arrange - Activity with room for 1 and a camper
            ActivityBlock activityBlock = new ActivityBlock
            {
                ActivityDefinition = new ActivityDefinition {
                    MaximumCapacity = 1
                }
            };
            Camper camper = new Camper();

            // Act
            var didAdd = activityBlock.TryAddCamper(camper);

            // Assert
            Assert.That(didAdd, Is.True, "TryAddCamper succeeded");
            Assert.That(activityBlock.AssignedCampers.Count, Is.EqualTo(1),
                        "Number of assigned campers");
        }
示例#3
0
        private void ConvertChunksToActivityBlocks(List <Toggl.TimelineChunkView> chunks)
        {
            var blocks = new List <ActivityBlock>();

            foreach (var chunk in chunks)
            {
                if (chunk.Events.Any())
                {
                    var start = Toggl.DateTimeFromUnix(chunk.Started);
                    var block = new ActivityBlock()
                    {
                        Offset               = ConvertTimeIntervalToHeight(new DateTime(start.Year, start.Month, start.Day), start),
                        TimeInterval         = chunk.StartTimeString + " - " + chunk.EndTimeString,
                        ActivityDescriptions = new List <ActivityDescription>()
                    };
                    long duration = 0;
                    foreach (var eventDesc in chunk.Events)
                    {
                        var activity = new ActivityDescription()
                        {
                            ActivityTitle = eventDesc.Header ? Path.GetFileName(eventDesc.Filename) : eventDesc.Title
                        };
                        activity.SubActivities = eventDesc.Header
                            ? eventDesc.SubEvents.Select(e => e.DurationString + " " + e.Title).ToList()
                            : new List <string>()
                        {
                            eventDesc.DurationString + " " + eventDesc.Title
                        };
                        block.ActivityDescriptions.Add(activity);
                        duration += eventDesc.Duration;
                    }
                    block.Height = (1.0 * duration * _hourHeight) / (60 * 60);;
                    if (block.ActivityDescriptions.Any())
                    {
                        blocks.Add(block);
                    }
                }
            }
            ActivityBlocks = blocks;
        }
        private static List <ActivityBlock> ConvertChunksToActivityBlocks(List <Toggl.TimelineChunkView> chunks, int selectedScaleMode, DateTime selectedDate)
        {
            var blocks = new List <ActivityBlock>();

            foreach (var chunk in chunks)
            {
                if (chunk.Events.Any())
                {
                    var start = Toggl.DateTimeFromUnix(chunk.Started);
                    var block = new ActivityBlock()
                    {
                        Offset               = ConvertTimeIntervalToHeight(selectedDate, start, selectedScaleMode),
                        TimeInterval         = chunk.StartTimeString + " - " + chunk.EndTimeString,
                        ActivityDescriptions = new List <ActivityDescription>()
                    };
                    long duration = 0;
                    foreach (var eventDesc in chunk.Events)
                    {
                        var activity = new ActivityDescription()
                        {
                            ActivityTitle = eventDesc.DurationString + " " + (eventDesc.Header ? Path.GetFileName(eventDesc.Filename) : eventDesc.Title)
                        };
                        activity.SubActivities = eventDesc.Header
                            ? eventDesc.SubEvents.Select(e => e.DurationString + " " + e.Title).ToList()
                            : new List <string>()
                        {
                            eventDesc.DurationString + " " + eventDesc.Title
                        };
                        block.ActivityDescriptions.Add(activity);
                        duration += eventDesc.Duration;
                    }
                    block.Height = (1.0 * Math.Min(duration, TimelineConstants.MaxActivityBlockDurationInSec) * TimelineConstants.ScaleModes[selectedScaleMode]) / (60 * 60);
                    if (block.ActivityDescriptions.Any())
                    {
                        blocks.Add(block);
                    }
                }
            }
            return(blocks);
        }
示例#5
0
 public IDisposable BeginActivity(string name, Guid id)
 {
     var block = new ActivityBlock(id, name, trace);
     return block;
 }