public async Task <IActionResult> Put(string id, [FromBody] VirtualSession virtualSession)
        {
            var storedVirtualSession = await _virtualSessionsStorage.GetItemAsync(id);

            if (storedVirtualSession.VolunteerId == Guid.Empty)
            {
                storedVirtualSession.VolunteerId            = virtualSession.VolunteerId;
                storedVirtualSession.TimePreferenceOne      = virtualSession.TimePreferenceOne.ToUniversalTime();
                storedVirtualSession.TimePreferenceTwo      = virtualSession.TimePreferenceTwo.ToUniversalTime();
                storedVirtualSession.TimePreferenceThree    = virtualSession.TimePreferenceThree.ToUniversalTime();
                storedVirtualSession.TimePreferenceSelected = virtualSession.TimePreferenceSelected.ToUniversalTime();
                var volunteer = await _membersStorage.GetItemAsync(virtualSession.VolunteerId.ToString());

                var educator = await _membersStorage.GetItemAsync(storedVirtualSession.EducatorId.ToString());

                try
                {
                    var teamsMeeting = await _graphService.CreateTeamsMeeting();

                    await _graphService.ScheduleOnlineMeeting(virtualSession.TimePreferenceSelected, volunteer, educator, teamsMeeting);

                    await _virtualSessionsStorage.UpdateItemAsync(id, storedVirtualSession);

                    return(new OkResult());
                }
                catch
                {
                    return(new BadRequestObjectResult(new ErrorResponseDto(ValidationResponseHelper.MeetingCreationError)));
                }
            }

            return(new BadRequestObjectResult(new ErrorResponseDto(ValidationResponseHelper.VirtualSessionAlreadyConfirmed)));
        }
        public async Task <IActionResult> Post([FromBody] VirtualSession virtualSession)
        {
            virtualSession.Id          = Guid.NewGuid();
            virtualSession.VolunteerId = Guid.Empty;
            await _virtualSessionsStorage.CreateItemAsync(virtualSession);

            var volunteerEmails = await GetCurrentVolunteerEmails();

            await _mailer.SendNewVirtualSessionMail(volunteerEmails, virtualSession.Id);

            return(new CreatedResult(Url.RouteUrl(virtualSession.Id), virtualSession));
        }