//[Authorize(Roles = "UpdateSubject")] public IActionResult AddEquivlantSubject([FromForm] int FirstSubject, [FromForm] int SecondSubject) { try { var similar = _equivalentSubjectRepositroy .GetIQueryable(c => c.FirstSubject == FirstSubject && c.SecoundSubject == SecondSubject || c.SecoundSubject == FirstSubject && c.FirstSubject == SecondSubject).FirstOrDefault(); if (similar != null) { var message = Messages.Exist; message.ActionName = "Add Equivlant Subject"; message.ControllerName = "Subject"; return(Conflict(message)); } Subjects subject = _subjectRepositroy.Find(FirstSubject); if (subject == null) { var message = Messages.NotFound; message.ActionName = "Add Equivlant Subject"; message.ControllerName = "Subject"; message.Message = "المادة غير موجودة"; return(NotFound(message)); } Subjects EquivlantSub = _subjectRepositroy.Find(SecondSubject); if (EquivlantSub == null) { var message = Messages.NotFound; message.ActionName = "Add Equivlant Subject"; message.ControllerName = "Subject"; message.Message = "المادة غير موجودة"; return(NotFound(message)); } EquivalentSubject equ = new EquivalentSubject() { FirstSubject = subject.Id, SecoundSubject = EquivlantSub.Id }; _equivalentSubjectRepositroy.Add(equ, UserName()); _equivalentSubjectRepositroy.Save(); return(Ok(equ)); } catch { return(BadRequestAnonymousError()); } }
//[Authorize(Roles = "AddSubject")] public IActionResult Add([FromBody] AddSubjectDTO addSubjectDTO) { try { addSubjectDTO.Name = addSubjectDTO.Name.Trim(); var simelarCode = _subjectRepositroy.Get(c => c.SubjectCode == addSubjectDTO.SubjectCode).FirstOrDefault(); if (simelarCode != null) { var message = Messages.Exist; message.ActionName = "Add"; message.ControllerName = "Subject"; return(Conflict(message)); } var subjectType = _subjectTypeRepositroy.Find(addSubjectDTO.SubjectTypeId); if (subjectType == null) { var message = Messages.NotFound; message.ActionName = "Add"; message.ControllerName = "Subject"; message.Message = "نوع المادة غير موجود"; return(Conflict(message)); } var semester = _studySemesterRepositroy.GetIQueryable(c => c.Id == addSubjectDTO.StudySemesterId) .Include(c => c.Studyplan) .ThenInclude(c => c.Year) .FirstOrDefault(); if (semester == null) { var message = Messages.NotFound; message.ActionName = "Add"; message.ControllerName = "Subject"; message.Message = "الفصل التدريسي غير موجود"; return(NotFound(message)); } if (semester.Studyplan.Year.Blocked) { var message = Messages.NotFound; message.ActionName = "Add"; message.ControllerName = "Subject"; message.Message = "لا يمكن تعديل الخطة "; return(Conflict(message)); } var subject = _mapper.Map <Subjects>(addSubjectDTO); _abstractUnitOfWork.Add(subject, UserName()); subject.StudySemester = semester; foreach (var item in addSubjectDTO.DependencySubjectsId) { var depencaySubject = _subjectRepositroy.GetIQueryable(c => c.Id == item) .Include(c => c.StudySemester).FirstOrDefault(); var checking = _subjectServices.CheckSubjectAndDepandcySubject(subject, depencaySubject); if (!checking) { return(Conflict());//؟؟؟؟ } DependenceSubject dependenceSubject = new DependenceSubject { SubjectId = subject.Id, DependsOnSubjectId = item }; _abstractUnitOfWork.Add(dependenceSubject, UserName()); } foreach (var item in addSubjectDTO.EquivalentSubjectsId) { var equivalentSubject = _subjectRepositroy.Find(item); if (equivalentSubject == null) { var message = Messages.NotFound; message.ActionName = "Add"; message.ControllerName = "Subject"; message.Message = "المادةالمكافئة غير موجودة"; return(NotFound(message)); } EquivalentSubject eq = new EquivalentSubject() { FirstSubject = subject.Id, SecoundSubject = item }; _abstractUnitOfWork.Add(eq, UserName()); } _abstractUnitOfWork.Commit(); return(Ok(subject)); } catch { return(BadRequestAnonymousError()); } }