public async Task SendPrincipalGroupMessage(GroupMessagePrincipalModel groupPrincipalModel, int personalUsi, string personUniqueId) { var model = new GroupMessagesQueueLogModel(); model.Type = GroupMessagesQueueTypeEnum.Group.DisplayName; model.QueuedDateTime = DateTime.Now; model.StaffUniqueId = personUniqueId; model.SchoolId = groupPrincipalModel.SchoolId; model.Audience = groupPrincipalModel.Audience; //This new object is only whit the propurse to get the filter parameters var objectToSerialize = new { gradeLevels = groupPrincipalModel.GradeLevels, programs = groupPrincipalModel.Programs }; model.FilterParams = JsonConvert.SerializeObject(objectToSerialize); model.Subject = groupPrincipalModel.Subject; model.BodyMessage = groupPrincipalModel.Message; model.SentStatus = GroupMessagesStatusEnum.Queued.Value; model.Data = JsonConvert.SerializeObject(model); var result = await _communicationsRepository.PersistQueueGroupMessage(model); model.Id = result.Id; model.Data = JsonConvert.SerializeObject(model); await _communicationsRepository.UpdateGroupMessagesQueue(model); }
public async Task <IHttpActionResult> GroupMessages(GroupMessagePrincipalModel groupMessageSectionModel) { var sender = SecurityPrincipal.Current; await _communicationsService.SendPrincipalGroupMessage(groupMessageSectionModel, sender.PersonUSI, sender.PersonUniqueId); return(Ok()); }