Example #1
0
        /// <summary>
        /// Creates work event from details.
        /// </summary>
        /// <param name="details">Work event details.</param>
        /// <returns>Work event from details.</returns>
        private static WorkEvent GetEventFromDetails( WorkEventDetails details )
        {
            if( details == null )
                throw new ArgumentNullException( "details" );

            WorkEvent workEvent = new WorkEvent();
            workEvent.ID = details.ID;
            workEvent.Name = details.Name;
            workEvent.BeginTime = ( details.BeginTime <= details.EndTime ) ? details.BeginTime : details.EndTime;
            workEvent.EndTime = ( details.EndTime >= details.BeginTime ) ? details.EndTime : details.BeginTime;
            workEvent.UserID = details.UserID;
            workEvent.ProjectID = details.ProjectID;
            workEvent.WorkCategoryID = details.WorkCategoryID;
            workEvent.EventTypeID = details.UptimeEventTypeID;

            return workEvent;
        }
Example #2
0
        /// <summary>
        /// Check if two event intersects or both open.
        /// </summary>
        /// <param name="dateEvent">First event for checking.</param>
        /// <param name="checkEvent">Second event for checking.</param>
        /// <returns>Exception.</returns>
        private static Exception isIntersectsOrOpen(WorkEvent dateEvent, 
														WorkEvent checkEvent)
        {
            // ПРАВИЛО: События W и B не могут пересекаться.
            if (dateEvent.Intersects(checkEvent))
                return new Exception("Work events or breaks can't intersect.");

            // ПРАВИЛО: Не может быть двух открытых событий данного типа.
            if (dateEvent.IsOpen && checkEvent.IsOpen)
                return new Exception("There can't be two open work or break events.");

            return null;
        }
Example #3
0
        /// <summary>
        /// Does this event intersect with another event.
        /// </summary>
        /// <param name="workEvent">Another work event.</param>
        /// <returns>True, if this event intersects with another event; false, otherwise.</returns>
        public bool Intersects( WorkEvent workEvent )
        {
            if( workEvent == null )
                throw new ArgumentNullException( "workEvent" );

            return IsOpen
                       ? workEvent.EndTime > BeginTime
                       : (workEvent.BeginTime < EndTime) &&
                         (workEvent.EndTime > BeginTime);
        }