public async Task SendPrincipalIndividualGroupMessage(IndividualMessagePrincipalModel individualPrincipalModel, int personalUsi, string personUniqueId)
        {
            var model = new GroupMessagesQueueLogModel();

            model.Type           = GroupMessagesQueueTypeEnum.IndividualGroup.DisplayName;
            model.QueuedDateTime = DateTime.Now;
            model.StaffUniqueId  = personUniqueId;
            model.SchoolId       = individualPrincipalModel.SchoolId;
            model.Audience       = individualPrincipalModel.Audience;

            //This new object is only whit the propurse to get the filter parameters
            var objectToSerialize = new { gradeLevels = individualPrincipalModel.GradeLevels, parentsUsis = individualPrincipalModel.ParentsUsis };

            model.FilterParams = JsonConvert.SerializeObject(objectToSerialize);
            model.Subject      = individualPrincipalModel.Subject;
            model.BodyMessage  = individualPrincipalModel.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);
        }
Exemple #2
0
        public async Task <IHttpActionResult> GroupMessages(IndividualMessagePrincipalModel groupMessageSectionModel)
        {
            var sender = SecurityPrincipal.Current;
            await _communicationsService.SendPrincipalIndividualGroupMessage(groupMessageSectionModel, sender.PersonUSI, sender.PersonUniqueId);

            return(Ok());
        }