public async Task <int> AddClassAttendance(CreateClassAttendanceViewModel viewModel)
        {
            if (viewModel == null)
            {
                return(await Task.FromResult(ClassAttendanceResponse.UnspecifiedError));
            }

            var scheduledClass = _scheduledClassReader.GetScheduledClass(viewModel.ScheduledClassId);

            if (scheduledClass == null)
            {
                return(await Task.FromResult(ClassAttendanceResponse.ClassNotFound));
            }
            if (scheduledClass.IsCancelled)
            {
                return(await Task.FromResult(ClassAttendanceResponse.ClassCancelled));
            }

            var dto = new ClassAttendanceDto()
            {
                Id                 = Guid.NewGuid().ToString(),
                EnrolledDate       = DateTime.UtcNow,
                EnrolledBy         = viewModel.EnrolledBy,
                AttendeeId         = viewModel.AttendeeId,
                ScheduledClassId   = viewModel.ScheduledClassId,
                ScheduledClassName = scheduledClass.ClassTypeName,
                NoShow             = false
            };

            bool isSuccess = _classAttendanceWriter.AddClassAttendance(dto);

            return(await Task.FromResult(isSuccess?ClassAttendanceResponse.Success : ClassAttendanceResponse.UnspecifiedError));
        }
 public EditClassAttendanceViewModel(ClassAttendanceDto dto)
 {
     Id                 = dto.Id;
     EnrolledDate       = dto.EnrolledDate;
     EnrolledBy         = dto.EnrolledBy;
     AttendeeId         = dto.AttendeeId;
     AttendeeName       = dto.AttendeeName;
     ScheduledClassId   = dto.ScheduledClassId;
     ScheduledClassName = dto.ScheduledClassName;
     NoShow             = dto.NoShow;
 }
Beispiel #3
0
        public bool UpdateClassAttendance(ClassAttendanceDto dto)
        {
            try
            {
                if (dto == null)
                {
                    _logger.Warn($"Parameter id passed is null");
                    return(false);
                }

                var classAttendance = _context.ClassAttendances.FirstOrDefault(x => x.Id == dto.Id);

                if (classAttendance == null)
                {
                    _logger.Warn($"ClassAttendance ID {dto.Id} not found in database");
                    return(false);
                }

                if (classAttendance.AttendeeId != dto.AttendeeId)
                {
                    var attendee = _context.Users.FirstOrDefault(x => x.Id == dto.AttendeeId);

                    classAttendance.Attendee   = attendee;
                    classAttendance.AttendeeId = dto.AttendeeId;
                }

                if (classAttendance.ScheduledClassId != dto.ScheduledClassId)
                {
                    var scheduledClass = _context.ScheduledClasses.FirstOrDefault(x => x.Id == dto.ScheduledClassId);

                    classAttendance.ScheduledClass   = scheduledClass;
                    classAttendance.ScheduledClassId = dto.ScheduledClassId;
                }

                classAttendance.EnrolledBy   = dto.EnrolledBy;
                classAttendance.EnrolledDate = dto.EnrolledDate;
                classAttendance.NoShow       = dto.NoShow;

                _context.Entry(classAttendance).State = EntityState.Modified;
                _context.SaveChanges();

                return(true);
            }
            catch (Exception e)
            {
                _logger.Error(e);
                return(false);
            }
        }
        public ClassAttendanceDto GetClassAttendance(string id)
        {
            var classAttendance = _context.ClassAttendances
                .Include("Attendee")
                .Include("ScheduledClass")
                .FirstOrDefault(x => x.Id == id);

            var dto = new ClassAttendanceDto()
            {
                Id = classAttendance.Id,
                EnrolledBy = classAttendance.EnrolledBy,
                EnrolledDate = classAttendance.EnrolledDate,
                AttendeeId = classAttendance.AttendeeId,
                AttendeeName = classAttendance.Attendee.UserName,
                ScheduledClassId = classAttendance.ScheduledClassId,
                ScheduledClassName = classAttendance.ScheduledClass.ClassType.Name,
                ClassStartDateTime = classAttendance.ScheduledClass.ClassStartTime,
                NoShow = classAttendance.NoShow
            };

            _logger.Info($"ClassAttendance ID {id} found in database");

            return dto;
        }
Beispiel #5
0
        public bool AddClassAttendance(ClassAttendanceDto dto)
        {
            try
            {
                var attendee       = _context.Users.FirstOrDefault(x => x.Id == dto.AttendeeId);
                var scheduledClass = _context.ScheduledClasses.FirstOrDefault(x => x.Id == dto.ScheduledClassId);

                if (attendee == null || scheduledClass == null)
                {
                    _logger.Warn($"Attendee ID {dto.AttendeeId} or ScheduledClass ID {dto.ScheduledClassId} not found in database");
                    return(false);
                }

                var classAttendance = new ClassAttendance()
                {
                    Id               = dto.Id,
                    EnrolledDate     = dto.EnrolledDate,
                    EnrolledBy       = dto.EnrolledBy,
                    AttendeeId       = dto.AttendeeId,
                    Attendee         = attendee,
                    ScheduledClass   = scheduledClass,
                    ScheduledClassId = dto.ScheduledClassId,
                    NoShow           = dto.NoShow
                };

                _context.ClassAttendances.Add(classAttendance);
                _context.SaveChanges();

                return(true);
            }
            catch (Exception e)
            {
                _logger.Error(e);
                return(false);
            }
        }