Exemple #1
0
        protected override void InsertCalendarEvent(CalendarEvent calendarEvent, OnSuccessfulUpsertCallback onUpsert)
        {
            if (calendarEvent.Dates.StartDate != calendarEvent.Dates.EndDate)
            {
                throw new Exception("StartDate must be equal to EndDate for work hours change");
            }

            if (calendarEvent.Dates.StartWorkingHour >= calendarEvent.Dates.FinishWorkingHour)
            {
                throw new Exception("Finish working hour must be greater than start working hour");
            }

            var eventId  = calendarEvent.EventId;
            var newEvent = new WorkHoursChangeIsRequested()
            {
                EmployeeId = this.EmployeeId,
                EventId    = eventId,
                Date       = calendarEvent.Dates.StartDate,
                StartHour  = calendarEvent.Dates.StartWorkingHour,
                EndHour    = calendarEvent.Dates.FinishWorkingHour,
                IsDayoff   = calendarEvent.Type == CalendarEventTypes.Dayoff,
                TimeStamp  = DateTimeOffset.Now
            };

            this.Persist(newEvent, e =>
            {
                this.OnChangeRequested(e);
                onUpsert(this.EventsById[eventId]);
            });
        }
Exemple #2
0
        private void OnChangeRequested(WorkHoursChangeIsRequested message)
        {
            var eventType = message.IsDayoff ? CalendarEventTypes.Dayoff : CalendarEventTypes.Workout;

            var datesPeriod   = new DatesPeriod(message.Date, message.Date, message.StartHour, message.EndHour);
            var calendarEvent = new CalendarEvent(message.EventId, eventType, datesPeriod, WorkHoursChangeStatuses.Requested, this.EmployeeId);

            this.EventsById[message.EventId] = calendarEvent;
        }