예제 #1
0
        public async Task <OperationResult> ResetDeniedSlots(int meetingId, DenyDateDto dto)
        {
            var dbSlots = _slotModel.GetSlotsForDate(dto.Start, dto.End, meetingId).Where(x => x.Status == 2);

            foreach (var dbSlot in dbSlots)
            {
                _slotModel.RegisterDelete(dbSlot, false);
            }

            _slotModel.Flush();
            return(OperationResult.Success());
        }
예제 #2
0
        public async Task <OperationResult> ResetDeniedDate([FromBody] DenyDateDto dto)
        {
            LmsCourseMeeting meeting = _lmsCourseMeetingModel.GetOneByCourseAndId(LmsCompany.Id, CourseId, dto.MeetingId);

            if (meeting?.OfficeHours == null)
            {
                return(OperationResultWithData <IEnumerable <SlotDto> > .Error("Meeting not found"));
            }
            var result = await _officeHoursService.ResetDeniedSlots(meeting.OfficeHours.Id, dto);

            return(result);
        }
예제 #3
0
        public async Task <OperationResultWithData <IEnumerable <SlotDto> > > DeleteSlots(int ohId, DenyDateDto dto,
                                                                                          LmsUser lmsUser)
        {
            var dbSlots = _slotModel.GetSlotsForDate(dto.Start, dto.End, ohId);

            foreach (var dbSlot in dbSlots)
            {
                dbSlot.Status = (int)OfficeHoursSlotStatus.Cancelled;
                _slotModel.RegisterSave(dbSlot, false);

                if (!string.IsNullOrEmpty(dto.Message))
                {
                    //var meeting = dbSlot.Availability.Meeting;
                    //var details = await _meetingService.GetMeetingApiDetails(meeting);
                    //await _notificationService.SendOHCancellationEmail(dbSlot.Start, details.Topic, dto.Message, dbSlot.RequesterName);
                }
            }

            _slotModel.Flush();

            var freeSlots = (await GetSlots(ohId, lmsUser.Id, dto.Start, dto.End)).Where(x => x.Status == (int)OfficeHoursSlotStatus.Free);

            List <SlotDto> result = new List <SlotDto>();

            result.AddRange(dbSlots.Select(x => ConvertToDto(x, lmsUser.Id)));
            var resultDto = await AddSlots(ohId, lmsUser, freeSlots, OfficeHoursSlotStatus.Cancelled);

            result.AddRange(resultDto.Data);
            return((result as IEnumerable <SlotDto>).ToSuccessResult());
        }