/// <summary> /// Method to add disciplinary - SS /// </summary> /// <param name="addDisciplinary">disciplinary</param> /// <param name="loggedInUser">logged in user</param> /// <returns>response</returns> public async Task <DisciplinaryManagementResponse> AddDisciplinaryAsync(AddDisciplinaryManagementAc addDisciplinary, ApplicationUser loggedInUser) { if (string.IsNullOrEmpty(addDisciplinary.Subject.Trim())) { return new DisciplinaryManagementResponse() { HasError = true, Message = "Subject can't be empty", ErrorType = DisciplinaryManagementResponseType.Subject } } ; else if (string.IsNullOrEmpty(addDisciplinary.Description.Trim())) { return new DisciplinaryManagementResponse() { HasError = true, Message = "Description can't be empty", ErrorType = DisciplinaryManagementResponseType.Description } } ; else { var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true); var studentsCount = await _iMSDbContext.StudentBasicInformation.CountAsync(x => addDisciplinary.StudentIds .Contains(x.Id) && x.InstituteId == instituteId); if (studentsCount != addDisciplinary.StudentIds.Count) { return new DisciplinaryManagementResponse() { HasError = true, Message = "Student not found", ErrorType = DisciplinaryManagementResponseType.StudentId } } ; else { if (!await _iMSDbContext.DisciplinaryStatuses.AnyAsync(x => x.InstituteId == instituteId && x.Id == addDisciplinary.StatusId)) { return new DisciplinaryManagementResponse() { HasError = true, Message = "Status not found", ErrorType = DisciplinaryManagementResponseType.StatusId } } ; else { List <Disciplinary> disciplinaries = new List <Disciplinary>(); foreach (var studentId in addDisciplinary.StudentIds) { disciplinaries.Add(new Disciplinary() { CreatedOn = DateTime.UtcNow, Date = addDisciplinary.Date, Description = addDisciplinary.Description, Remarks = addDisciplinary.Remarks, StatusId = addDisciplinary.StatusId, StudentId = studentId, Subject = addDisciplinary.Subject, UpdatedById = loggedInUser.Id, UpdatedOn = DateTime.UtcNow }); } using (var db = await _iMSDbContext.Database.BeginTransactionAsync()) { await _iMSDbContext.BulkInsertAsync(disciplinaries); db.Commit(); } return(new DisciplinaryManagementResponse() { HasError = false, Message = "Disciplinary added successfully", Data = disciplinaries.Select(s => s.Id) }); } } } }
public async Task <IActionResult> AddDisciplinaryAsync([FromBody] AddDisciplinaryManagementAc addDisciplinary) { var user = await _userManager.FindByNameAsync(User.Identity.Name); return(Ok(await _disciplinaryManagementRepository.AddDisciplinaryAsync(addDisciplinary, user))); }