// POST api/chunkapi
        public Models.ChunkModel Post(Models.ChunkModel value)
        {
            Trace.Write(value.ID);

            var bl = new BL.Chunk();
            var newChunk = bl.Add(value.Start, value.Stop, value.Duration, value.OwningWorkerID);
            return Models.ChunkModel.Create(newChunk,value.OwningWorkerID);
        }
        // GET api/chunkapi/5
        public Models.ChunksModel Get(int workerID)
        {
            var workerBL = new BL.Worker();
            var worker = workerBL.Get(workerID);
            Debug.Assert( worker.ID == workerID );

            var chunkBL = new BL.Chunk();
            var chunks = chunkBL.GetByWorker(worker);

            var ret = Models.ChunksModel.Create(worker.ID, worker.Name,
                chunks.Select( c => Models.ChunkModel.Create( c, worker.ID )).ToList()
                );

            return ret;
        }
        private static void ManipulateChunk(BL.DTO.Worker worker)
        {
            Console.WriteLine("Commencing Chunks");
            var chunkBL = new BL.Chunk();

            var chunk1 = chunkBL.Add(DateTimeOffset.Now, DateTimeOffset.Now.AddMinutes(30), TimeSpan.Zero, worker.ID);
            Console.WriteLine(string.Format("Chunk.ID {0} for Worker.ID{1} has been created with start:{2} and stop:{3} and duration:{4}.", chunk1.ID, worker.ID, chunk1.Start, chunk1.Stop, chunk1.Duration));
            var chunk2 = chunkBL.Add(DateTimeOffset.Now, DateTimeOffset.Now.AddMinutes(30), new TimeSpan( 0,30,0), worker.ID);
            Console.WriteLine(string.Format("Chunk.ID {0} for Worker.ID{1} has been created with start:{2} and stop:{3} and duration:{4}.", chunk2.ID, worker.ID, chunk2.Start, chunk2.Stop, chunk2.Duration));

            Console.WriteLine("Getting what we have created.");
            var chunk3 = chunkBL.Get(chunk2.ID);
            Debug.Assert(chunk2.ID == chunk3.ID );
            Debug.Assert(chunk2.Start == chunk3.Start);
            Debug.Assert(chunk2.Stop == chunk3.Stop);
            Debug.Assert(chunk2.Duration == chunk3.Duration);

            Console.WriteLine(string.Format("Updating Chunk.ID:{0} with 20 minutes more.", chunk2.ID));
            chunk2.Stop += new TimeSpan(0, 20, 0);
            chunk2.Duration += new TimeSpan(0, 20, 0);
            chunk2 = chunkBL.Update(chunk2);
            Console.WriteLine(string.Format("Resulted in Stop:{0} and Duration:{1}", chunk2.Stop, chunk2.Duration));

            Console.WriteLine(string.Format("Deleting Chunk with ID:{0}:", chunk2.ID));
            chunkBL.Delete(chunk2);
            var exceptionThrown = false;
            try
            {
                var x = chunkBL.Get(chunk2.ID);
            }
            catch (NullReferenceException)
            {
                exceptionThrown = true;
                Console.WriteLine( "An exception was thrown since we tried to retrieve a Chunk that was deleted.");
            }

            Console.Write(string.Format("Getting all Chunks for a Worker with id={0}.", worker.ID));
            var chunks = chunkBL.GetByWorker(worker);
            foreach (var c in chunks)
            {
                Console.WriteLine(string.Format("Chunk:{0} {1}-{2} {3}", c.ID, c.Start, c.Stop, c.Duration));
            }
            Debug.Assert(exceptionThrown);
        }
 // DELETE api/chunkapi/5
 public void Delete(int id)
 {
     var chunkBL = new BL.Chunk();
     var chunk = chunkBL.Get(id);
     chunkBL.Delete(chunk);
 }