Пример #1
0
 public static bool IsNull(this CoachTraining ct)
 {
     return(ct == null);
 }
Пример #2
0
        public static async Task <JSONTraining> ToJSONAsync(this Training training, IUnitOfWork uiOfWork)
        {
            if (training.TrainingDataId != null)
            {
                TrainingData data = await uiOfWork.TrainingDatas.GetAsync((int)training.TrainingDataId);

                if (data.IsNull())
                {
                    return(null);
                }

                ProgramType pt = await uiOfWork.ProgramTypes.GetAsync(data.ProgramTypeId);

                if (pt.IsNull())
                {
                    return(null);
                }

                TrainingLevel tl = await uiOfWork.TrainingLevels.GetAsync(data.LevelId);

                if (tl.IsNull())
                {
                    return(null);
                }

                Gym gym = await uiOfWork.Gyms.GetAsync(training.GymId);

                if (gym.IsNull())
                {
                    return(null);
                }

                CoachTraining ct =
                    await uiOfWork.CoachesTrainings.FindAsync(coachTraining => coachTraining.TrainingId == training.Id);

                if (ct.IsNull())
                {
                    return(null);
                }

                Employee empl = await uiOfWork.Employees.GetAsync(ct.CoachId);

                if (empl.IsNull())
                {
                    return(null);
                }

                JSONTraining tr = new JSONTraining
                {
                    Id         = training.Id,
                    StartTime  = training.StartTime,
                    EndTime    = training.EndTime,
                    IsFinished = training.IsFinished,
                    GymName    = gym.Name,

                    Description   = data.TrainingDescription,
                    IsMustPay     = data.IsMustPay,
                    TrainingName  = data.TrainingName,
                    IsNewTraining = data.IsNewTraining,
                    Ispopular     = data.Ispopular,

                    ProgramType = pt.Name,

                    CoachId     = empl.Id,
                    CoachName   = empl.Name,
                    CoachFamily = empl.Family,
                    LevelName   = tl.Name,
                };

                //Если это платная тренировка
                if (data is PayTraining payTraining)
                {
                    tr.PlacesCount     = payTraining.PlacesCount;
                    tr.BusyPlacesCount = training.BusyPlacesCount;
                    //tr.FreePlacesCount = payTraining.FreePlacesCount;
                }
                return(tr);
            }

            return(null);
        }