/// <summary> /// Method to send homework message - SS /// </summary> /// <param name="homeworkMessage">homework message</param> /// <param name="instituteId">institute id</param> /// <returns>response</returns> public async Task <HomeworkManagementResponse> SendMessageAsync(AddHomeworkMessageMappingAc homeworkMessage, int instituteId) { if (string.IsNullOrEmpty(homeworkMessage.Message)) { return new HomeworkManagementResponse() { HasError = true, Message = "Message can't be empty", ErrorType = HomeworkManagementReponseType.Message } } ; else { if (await _iMSDbContext.Homeworks.AnyAsync(x => x.Class.InstituteId == instituteId)) { var homeworkMessageMapping = new HomeworkMessageMapping() { CreatedOn = DateTime.UtcNow, Message = homeworkMessage.Message, HomeworkId = homeworkMessage.HomeworkId, }; _iMSDbContext.HomeworkMessageMappings.Add(homeworkMessageMapping); await _iMSDbContext.SaveChangesAsync(); List <StudentRecieveHomeworkMessageMapping> messageMappings = new List <StudentRecieveHomeworkMessageMapping>(); foreach (var student in homeworkMessage.Students) { messageMappings.Add(new StudentRecieveHomeworkMessageMapping() { HomeworkMessageId = homeworkMessageMapping.Id, StudentId = student.Id, CreatedOn = DateTime.UtcNow, }); } if (messageMappings.Count != 0) { using (var db = await _iMSDbContext.Database.BeginTransactionAsync()) { await _iMSDbContext.BulkInsertAsync(messageMappings); db.Commit(); } } messageMappings = await _iMSDbContext.StudentRecieveHomeworkMessageMappings.Include(s => s.Student) .Where(x => x.HomeworkMessageId == homeworkMessageMapping.Id).ToListAsync(); var recipients = string.Empty; foreach (var user in messageMappings) { recipients += user.Student.MobileNumber; recipients += ","; } await _smsService.SendSms(recipients, homeworkMessage.Message); return(new HomeworkManagementResponse() { HasError = false, Message = "Message send successfully" }); } else { return new HomeworkManagementResponse() { HasError = true, Message = "Homework not found", ErrorType = HomeworkManagementReponseType.Id } }; } }
public async Task <IActionResult> SendMessageAsync([FromBody] AddHomeworkMessageMappingAc homeworkMessage) { var instituteId = await GetUserCurrentSelectedInstituteIdAsync(); return(Ok(await _homeworkManagementRepository.SendMessageAsync(homeworkMessage, instituteId))); }