public async Task ExecuteAsync(EditSubjectCommand message, CancellationToken token) { var subject = await _subjectRepository.LoadAsync(message.SubjectId, token); var language = await _adminLanguageRepository.GetLanguageByNameAsync("en", token); var translation = subject.Translations.Where(w => w.Language == language).FirstOrDefault(); if (translation != null && !string.IsNullOrEmpty(message.EnSubjectName)) { translation.ChangeName(message.EnSubjectName); } else if (!string.IsNullOrEmpty(message.EnSubjectName)) { var newTranslation = new CourseSubjectTranslation(subject, language, message.EnSubjectName); subject.AddTranslation(newTranslation); await _translationrepository.AddAsync(newTranslation, token); } if (subject.Name != message.HeSubjectName && !string.IsNullOrEmpty(message.HeSubjectName)) { subject.ChangeName(message.HeSubjectName); } await _subjectRepository.UpdateAsync(subject, token); }
public async Task ExecuteAsync(CreateSubjectCommand message, CancellationToken token) { var subject = new CourseSubject(message.HeSubjectName); var language = await _adminLanguageRepository.GetLanguageByNameAsync("en", token); if (!string.IsNullOrEmpty(message.EnSubjectName)) { var translation = new CourseSubjectTranslation(subject, language, message.EnSubjectName); subject.AddTranslation(translation); } await _subjectRepository.AddAsync(subject, token); }