public void Delete(ITrackingRecordDto trackingRecordDto)
        {
            var trackingRecordWithEntityDto = trackingRecordDto as TrackingRecordWithEntityDto;

            if (trackingRecordWithEntityDto == null || trackingRecordWithEntityDto.TrackingRecordEntity == NullableTrackingRecordEntity.Instance())
            {
                throw new InvalidTrackingRecord("The TrackingRecord does not exist on the database.");
            }

            TrackingRecordDataSource.Delete(trackingRecordWithEntityDto.TrackingRecordEntity.Id);
        }
        public TrackingTimeViewModel(ICommandNotifer startTrackingCommand, ICommandNotifer stoptrackingCommand, ITrackingRecordDto currenTrackingRecordDto)
        {
            startTrackingCommand.NotifyExecuteWasRaised += NotifyExecuteWasRaisedOnStart;
            stoptrackingCommand.NotifyExecuteWasRaised  += NotifyExecuteWasRaisedOnStop;

            StartTrackingCommand = startTrackingCommand;
            StopTrackingCommand  = stoptrackingCommand;

            CurrenTrackingRecordDto = currenTrackingRecordDto;
            if (currenTrackingRecordDto != null)
            {
                CurrentActivityWorking = currenTrackingRecordDto.ActivityName;
                StartDate           = currenTrackingRecordDto.StartDateTime.ToString(DateTimeToDisplayFormat);
                IsCurrentlyTracking = true;
            }
        }
        public ITrackingRecordDto Create(ITrackingRecordDto trackingRecordDto)
        {
            if (string.IsNullOrWhiteSpace(trackingRecordDto?.ActivityName))
            {
                throw new InvalidTrackingRecord("The TrackingRecord data is not valid.");
            }

            var recordEntity = new TrackingRecordEntity
            {
                ActivityName  = trackingRecordDto.ActivityName,
                StartDateTime = trackingRecordDto.StartDateTime,
                EndDateTime   = trackingRecordDto.EndDateTime
            };

            var trackingRecordEntityCreated = TrackingRecordDataSource.Create(recordEntity);

            return(new TrackingRecordWithEntityDto(trackingRecordEntityCreated));
        }
 public ExecuteArgumentCommand(ITrackingRecordDto trackingRecordDto)
 {
     TrackingRecordDto = trackingRecordDto;
 }