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()); }
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); }
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()); }