Exemplo n.º 1
0
        public async Task MeetingByIdDataTest()
        {
            using var store   = GetDocumentStore();
            using var session = store.OpenAsyncSession();
            var loader = new MeetingById()
            {
                Session = session, Id = MeetingData.FirstId
            };
            await loader.Execute();

            loader.Result.Should().NotBeNull();
            loader.Result.Id.Should().Be(MeetingData.FirstId);
            Assert.That(loader.Result, Is.DeepEqualTo(MeetingData.GetFirst()));
        }
Exemplo n.º 2
0
        public override async Task <IActionResult> Get(string id)
        {
            var loader = new MeetingById()
            {
                Id = id
            };
            await DataHandler.Execute(loader);

            if (loader.Result == null)
            {
                return(NotFound());
            }

            if (AuthoriseRead(loader.Result))
            {
                var viewModel = Mapper.Map <MeetingViewModel>(loader.Result);
                viewModel.Attendees = loader.ResultAttendees;
                return(Ok(viewModel));
            }

            return(Unauthorized());
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Close(string id)
        {
            var loader = new MeetingById {
                Id = id
            };
            await DataHandler.Execute(loader);

            var done = true;

            if (loader.Result != null)
            {
                foreach (var attendance in loader.ResultAttendances)
                {
                    if (!attendance.HasAttended && !attendance.IsCheckedIn && !attendance.IsNoShow)
                    {
                        done = false;
                    }
                }
            }

            if (done)
            {
                loader.Result.IsAttended = loader.ResultAttendances.All(a => !a.IsNoShow);
                loader.Result.IsComplete = true;

                var persist = new Persist <Meeting>()
                {
                    Model = loader.Result
                };
                await DataHandler.Execute(persist);

                await DataHandler.Commit();
            }

            return(Ok(ConfirmViewModel.Create(done, id)));
        }