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);
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> GroupMessages(GroupMessagePrincipalModel groupMessageSectionModel)
        {
            var sender = SecurityPrincipal.Current;
            await _communicationsService.SendPrincipalGroupMessage(groupMessageSectionModel, sender.PersonUSI, sender.PersonUniqueId);

            return(Ok());
        }