Exemple #1
0
        public async Task <IActionResult> SignOut([FromBody] SignInOutDTO data)
        {
            if (data.Id <= 0)
            {
                return(BadRequest());
            }

            var result = await _context.Set <Booking>()
                         .Where(x => x.Id == data.Id &&
                                x.Date.Date == data.date.Date &&
                                x.ServiceId == data.ServiceId &&
                                x.Time == data.Time)
                         .FirstOrDefaultAsync();

            if (result is null)
            {
                return(BadRequest());
            }

            result.SignOut = DateTime.Now;

            _context.Update(result);

            await _context.SaveChangesAsync();

            return(Ok(MapToSignInOutResponseDTO(result)));
        }
        public async Task <ActionResult> SignIn(SignInOutDTO dto)
        {
            var studentId = await GetStudentId();

            if (studentId == null)
            {
                return(Error());
            }

            var section = _dbContext.Sections
                          .Include(x => x.StudentSections)
                          .FirstOrDefault(x => x.ID == dto.Id);

            if (section == null || section.State != SectionState.Active)
            {
                return(Error());
            }

            if (_dbContext.StudentSections.Any(x => x.StudentID == studentId && x.SectionID == dto.Id))
            {
                return(Error());
            }

            _dbContext.StudentSections.Add(new StudentSection
            {
                SectionID = dto.Id,
                StudentID = studentId.Value
            });

            _dbContext.SaveChanges();

            return(RedirectToAction(nameof(SectionView), new { id = dto.Id }));
        }
Exemple #3
0
        public async Task <IActionResult> SigIn([FromBody] SignInOutDTO data)
        {
            if (data.Id <= 0)
            {
                return(BadRequest());
            }

            var result = await _context.Set <Booking>()
                         .Where(x => x.Id == data.Id &&
                                x.Date.Date == data.date.Date &&
                                x.ServiceId == data.ServiceId &&
                                x.Time == data.Time)
                         .FirstOrDefaultAsync();

            if (result is null)
            {
                return(BadRequest());
            }

            result.SignIn = DateTime.Now;

            _context.Update(result);

            await _context.SaveChangesAsync();


            var bookings = await _context.Set <Booking>()
                           .Include(x => x.User)
                           .Where(x => x.Date.Date == data.date.Date &&
                                  x.UserId != null &&
                                  x.ServiceId == data.ServiceId)
                           .OrderBy(x => x.User.Surname)
                           .ToListAsync();

            var mappedResult = ParseToCheckedInMemeberDTO(bookings);

            await _hubContext.Clients.All.ReceivedBookingsToSignInUpdateAsync(mappedResult);

            return(Ok(MapToSignInOutResponseDTO(result, true)));
        }
        public async Task <ActionResult> SignOut(SignInOutDTO dto)
        {
            var studentId = await GetStudentId();

            if (studentId == null)
            {
                return(Error());
            }
            var studentSection = _dbContext.StudentSections
                                 .Where(x => x.SectionID == dto.Id)
                                 .Where(x => x.StudentID == studentId)
                                 .FirstOrDefault();

            if (studentSection == null)
            {
                return(Error());
            }

            _dbContext.Entry(studentSection).State = EntityState.Deleted;
            _dbContext.SaveChanges();

            return(RedirectToAction(nameof(FindSections)));
        }