public static bool IsNull(this CoachTraining ct) { return(ct == null); }
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); }