public static UpdateViewModel FromGroupClass(Model.Domain.GroupClass groupClass, int utcOffset)
 {
     return(new UpdateViewModel
     {
         Name = groupClass.Name,
         Anchors = groupClass.Anchors.Select(x => x.UserId).ToList(),
         RoomId = groupClass.Room?.Id,
         Participants = groupClass.Participants.Select(x => new ParticipantDto
         {
             Id = x.UserId,
             Name = $"{x.User.FirstName} {x.User.LastName}",
             Role = x.Role
         }).OrderBy(x => x.Name).ToList(),
         IsSolo = groupClass.IsSolo,
         GroupLevelId = groupClass.GroupLevel?.Id,
         Start = groupClass.StartClasses.AddMinutes(utcOffset),
         DurationTimeInMinutes = groupClass.DurationTimeInMinutes,
         NumberOfClasses = groupClass.NumberOfClasses,
         GroupClassId = groupClass.Id,
         ParticipantLimit = groupClass.ParticipantLimits,
         DayOfWeeks = groupClass.ClassDaysOfWeek.Select(x => new ClassDayOfWeekDto()
         {
             BeginTime = x.Hour.UTCTimeSpanToLocal(utcOffset),
             DayOfWeek = x.DayOfWeek
         }).ToList()
     });
 }
Exemple #2
0
        public async Task <DataResult> Handle(Command request, CancellationToken cancellationToken)
        {
            Model.Domain.GroupClass groupClass = await _context.GroupClass.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken);

            if (groupClass is null)
            {
                return(DataResult.Error(PolishReadableMessage.GroupClass.NotFound));
            }

            _context.Remove(groupClass);
            await _context.SaveChangesAsync(cancellationToken);

            return(DataResult.Success());
        }
Exemple #3
0
        public async Task <DataResult <GroupClassDetail> > Handle(Query request, CancellationToken cancellationToken)
        {
            Model.Domain.GroupClass groupClass = await _context.GroupClass
                                                 .Include(x => x.GroupLevel)
                                                 .Include(x => x.Room)
                                                 .Include(x => x.Anchors)
                                                 .ThenInclude(x => x.User)
                                                 .Include(x => x.ClassDaysOfWeek)
                                                 .FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken);

            if (groupClass is null)
            {
                return(DataResult <GroupClassDetail> .Error(PolishReadableMessage.GroupClass.NotFound));
            }

            GroupClassDetail groupClassDetail = GroupClassDetail.From(groupClass, request.UtcOffsetInMinutes);

            return(DataResult <GroupClassDetail> .Success(groupClassDetail));
        }
        public async Task <DataResult <UpdateViewModel> > Handle(Query request, CancellationToken cancellationToken)
        {
            Model.Domain.GroupClass groupClass = await _context.GroupClass.Where(x => x.Id == request.GroupId)
                                                 .Include(x => x.Anchors)
                                                 .Include(x => x.Room)
                                                 .Include(x => x.Participants)
                                                 .ThenInclude(x => x.User)
                                                 .Include(x => x.ClassDaysOfWeek)
                                                 .FirstOrDefaultAsync(cancellationToken);

            if (groupClass is null)
            {
                return(DataResult <UpdateViewModel> .Error(PolishReadableMessage.GroupClass.NotFound));
            }

            UpdateViewModel updateViewModel = UpdateViewModel.FromGroupClass(groupClass, request.UtcOffsetInMinutes).AsEdit();

            return(DataResult <UpdateViewModel> .Success(updateViewModel));
        }