Esempio n. 1
0
        [HttpPost("AddClassSectionUserMappingInBulk")] // for students
        public async Task <IActionResult> AddClassSectionUserMappingInBulk(ClassSectionUserDtoForAddBulk classSectionUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            //if (await _repo.ClassSectionExists(classSection.ClassId, classSection.SectionId))
            //    return BadRequest(new { message = "Class Section Already Exist" });

            _response = await _repo.AddClassSectionUserMappingBulk(classSectionUser);

            return(Ok(_response));
        }
        public async Task AddClassSectionUserMappingInBulk_StateUnderTest_ExpectedBehavior()
        {
            // Arrange
            var classesController = this.CreateClassesController();
            ClassSectionUserDtoForAddBulk classSectionUser = null;

            // Act
            var result = await classesController.AddClassSectionUserMappingInBulk(
                classSectionUser);

            // Assert
            Assert.True(false);
            this.mockRepository.VerifyAll();
        }
Esempio n. 3
0
        public async Task <ServiceResponse <object> > AddClassSectionUserMappingBulk(ClassSectionUserDtoForAddBulk model)
        {
            try
            {
                var CanHaveStudents = _context.ClassSections.Where(m => m.Id == model.ClassSectionId && m.Active == true).FirstOrDefault()?.NumberOfStudents;
                var ToAddStudents   = model.UserIds.Count();

                var existingUserIds = _context.ClassSectionUsers.Where(m => m.ClassSectionId == model.ClassSectionId && m.UserTypeId == (int)Enumm.UserType.Student).Select(m => m.UserId).ToList();
                //var existingUserIds = existingIds;
                if (CanHaveStudents < (existingUserIds.Count() + ToAddStudents))
                {
                    _serviceResponse.Success = false;
                    _serviceResponse.Message = string.Format(CustomMessage.CantExceedLimit, CanHaveStudents.ToString());
                    return(_serviceResponse);
                }
                //if (existingIds.Count() <= model.UserIds.Count())
                //{
                var IdsToAdd = model.UserIds.Except(existingUserIds);
                List <ClassSectionUser> listToAdd = new List <ClassSectionUser>();
                foreach (var userId in IdsToAdd)
                {
                    listToAdd.Add(new ClassSectionUser
                    {
                        ClassSectionId = model.ClassSectionId,
                        UserId         = userId,
                        UserTypeId     = _context.Users.FirstOrDefault(m => m.Id == userId && m.Active == true) != null ? _context.Users.FirstOrDefault(m => m.Id == userId && m.Active == true).UserTypeId : (int)Enumm.UserType.Student,
                        CreatedDate    = DateTime.UtcNow,
                        SchoolBranchId = _LoggedIn_BranchID
                    });
                }
                if (listToAdd.Count > 0)
                {
                    await _context.ClassSectionUsers.AddRangeAsync(listToAdd);

                    await _context.SaveChangesAsync();
                }
                //}
                //else if (existingIds.Count() > model.UserIds.Count())
                //{
                //    var IdsToRemove = existingUserIds.Except(model.UserIds);
                //    existingIds = existingIds.Where(m => IdsToRemove.Contains(m.UserId)).ToList();
                //    _context.ClassSectionUsers.RemoveRange(existingIds);
                //    await _context.SaveChangesAsync();

                //    List<ClassSectionTransaction> ToAdd = new List<ClassSectionTransaction>();
                //    foreach (var item in existingIds)
                //    {
                //        ToAdd.Add(new ClassSectionTransaction
                //        {
                //            ClassSectionId = item.ClassSectionId,
                //            UserId = item.UserId,
                //            UserTypeId = _context.Users.FirstOrDefault(m => m.Id == item.UserId && m.Active == true) != null ? _context.Users.FirstOrDefault(m => m.Id == item.UserId && m.Active == true).UserTypeId : 3,
                //            DeletionDate = DateTime.UtcNow,
                //            DeletedById = _LoggedIn_UserID
                //        });
                //    }
                //    await _context.ClassSectionTransactions.AddRangeAsync(ToAdd);
                //    await _context.SaveChangesAsync();
                //}

                _serviceResponse.Success = true;
                _serviceResponse.Message = CustomMessage.Added;
                return(_serviceResponse);
            }
            catch (DbUpdateException ex)
            {
                if (ex.InnerException.Message.Contains("Cannot insert duplicate key row"))
                {
                    _serviceResponse.Success = false;
                    _serviceResponse.Message = CustomMessage.SqlDuplicateRecord;
                }
                else
                {
                    throw ex;
                }
                return(_serviceResponse);
            }
        }