private void CopyMessageDetailModel(MessageDetailModel to, MCommunication_Message from)
        {
            to.MessageId = from.MessageId;
            to.UserId    = from.UserId;
            //to.OrderId = from.OrderId;
            //to.OrderNumber = from.OrderNumber;
            to.From                    = from.From;
            to.To                      = from.To;
            to.Subject                 = from.Subject;
            to.Text                    = from.Text;
            to.SentDateTime            = Locale.GetLocalTimeFromUtc(from.CreateDateTimeUtc);
            to.ReceivedDateTime        = Locale.GetLocalTimeFromUtc(from.CreateDateTimeUtc);
            to.AcknowledgementDateTime = Locale.GetLocalTimeFromUtc(from.AcknowledgementDateTimeUtc);
            to.New                     = from.AcknowledgementDateTimeUtc == null;
            to.Incoming                = from.SendReceiveCode == SendReceiveCodes.ToUser;

            if (from.Conversation != null)
            {
                to.Conversation = new List <MessageDetailModel>();
                foreach (var svcRelatedMessage in from.Conversation.Where(r => r.CreateDateTimeUtc < from.CreateDateTimeUtc).OrderByDescending(r => r.CreateDateTimeUtc))
                {
                    to.Conversation.Add(CreateMessageDetailModel(svcRelatedMessage));
                }
            }
        }
        public MessageDetailModel CreateMessageDetailModel(MCommunication_Message from)
        {
            var to = new MessageDetailModel();

            CopyMessageDetailModel(to, from);
            return(to);
        }
            public static AMessage_Message AMessage_Message(MCommunication_Message mMessage, bool allowAcknowledge)
            {
                var message = new AMessage_Message()
                {
                    MMessage         = mMessage,
                    AllowAcknowledge = allowAcknowledge
                };

                return(message);
            }
 private void CopyMessageReplyModel(MessageReplyModel to, MCommunication_Message from)
 {
     to.ReplyToMessageId = from.MessageId;
     to.Subject          = from.Subject;
     //to.OrderId = from.OrderId;
     //to.OrderNumber = from.OrderNumber;
     to.Conversation = new List <MessageDetailModel>();
     foreach (var svcRelatedMessage in from.Conversation.Where(r => r.CreateDateTimeUtc <= from.CreateDateTimeUtc).OrderByDescending(r => r.CreateDateTimeUtc))
     {
         to.Conversation.Add(CreateMessageDetailModel(svcRelatedMessage));
     }
 }
Exemple #5
0
        public Message(
            AMessage_Message aMessage,
            MCommunication_Message mMessage,
            bool highlight,
            IApplicationLocale locale)
        {
            AMessage  = aMessage;
            MMessage  = aMessage?.MMessage ?? mMessage;
            Highlight = highlight;
            Locale    = locale;

            LastEmail = aMessage.MMessage.Emails?.Last();
        }
        public ReplyMessage CreateReplyMessage(MCommunication_Message mMessage)
        {
            var model = new ReplyMessage()
            {
                UserId           = mMessage.UserId,
                UserName         = mMessage.From,
                ReplyToMessageId = mMessage.MessageId,
                Subject          = mMessage.Subject,
                //OrderId = svcMessage.OrderId,
            };

            model.Conversation = new List <Message>();
            foreach (var mRelatedMessage in mMessage.Conversation.Where(r => r.CreateDateTimeUtc <= mMessage.CreateDateTimeUtc).OrderByDescending(r => r.CreateDateTimeUtc))
            {
                model.Conversation.Add(CreateMessage(null, mRelatedMessage, false));
            }

            return(model);
        }
            public static MCommunication_Message MCommunication_Message(
                QuiltContext ctx,
                Message dbMessage,
                bool canAcknowledge,
                bool includeEmails,
                IList <MCommunication_Message> conversation)
            {
                string email;

                if (TryParseUserId.FromParticipantReference(dbMessage.Participant.ParticipantReference, out string userId))
                {
                    var dbAspNetUser = ctx.AspNetUsers.Where(r => r.Id == userId).Single();
                    email = dbAspNetUser.Email;
                }
                else
                {
                    userId = null;
                    email  = $"{dbMessage.Participant.ParticipantId}@richtodd.com";
                }

                string from;
                string to;

                if (dbMessage.SendReceiveCode == SendReceiveCodes.FromUser)
                {
                    from = email;
                    to   = Constants.AdminMailEmailName;
                }
                else // ToUser
                {
                    from = Constants.AdminMailEmailName;
                    to   = email;
                }

                IList <MCommunication_Email> emails = includeEmails
                    ? dbMessage.MessageEmailRequests.Select(r => MCommunication_Email(r.EmailRequest)).ToList()
                    : null;

                var message = new MCommunication_Message()
                {
                    MessageId                  = dbMessage.MessageId,
                    UserId                     = userId,
                    ConversationId             = dbMessage.ConversationId,
                    From                       = from,
                    To                         = to,
                    Subject                    = dbMessage.Subject,
                    Text                       = dbMessage.Text,
                    SendReceiveCode            = dbMessage.SendReceiveCode,
                    CreateDateTimeUtc          = dbMessage.CreateDateTimeUtc,
                    AcknowledgementDateTimeUtc = dbMessage.AcknowledgementDateTimeUtc,
                    TopicId                    = dbMessage.TopicId,
                    TopicReference             = dbMessage.Topic?.TopicReference,

                    CanAcknowledge = canAcknowledge,

                    Fields       = MCommunication_TopicFields(dbMessage.Topic),
                    Emails       = emails,
                    Conversation = conversation
                };

                return(message);
            }
 private bool AllowAcknowledge(MCommunication_Message mMessage)
 {
     return(mMessage.SendReceiveCode == "I"); // SendReceiveCodes.FromUser;
 }
        public Message CreateMessage(AMessage_Message aMessage, MCommunication_Message mMessage, bool highlight)
        {
            var model = new Message(aMessage, mMessage, highlight, Locale);

            return(model);
        }