Example #1
0
        /// <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
                           }
                };
            }
        }
Example #2
0
        public async Task <IActionResult> SendMessageAsync([FromBody] AddHomeworkMessageMappingAc homeworkMessage)
        {
            var instituteId = await GetUserCurrentSelectedInstituteIdAsync();

            return(Ok(await _homeworkManagementRepository.SendMessageAsync(homeworkMessage, instituteId)));
        }