private static void FillDeletedMessageInfo(TimelineModel timelineMessage, StickMan_Users_AudioData_UploadInformation message)
        {
            timelineMessage.Emoji = message.ReadStatus ? Emoji.Grimacing : Emoji.SmilingImp;

            timelineMessage.Arrow  = MessageArrow.None;
            timelineMessage.Status = MessageStatus.Deleted;
        }
        public TimelineModel MapToTimeLine(StickMan_Users_AudioData_UploadInformation message, int userId)
        {
            var justSentMessage = MapToJustSentMessage(message, userId);
            var timeline        = (TimelineModel)justSentMessage;

            return(timeline);
        }
        public ICollection <JustSentMessage> Save(string filePath, int userId, IEnumerable <int> receiverIds)
        {
            var messages = new List <JustSentMessage>();

            foreach (var receiverId in receiverIds)
            {
                //string[] filePathsplit = filePath.Split('/');
                //string copyPath = "/" + userId.ToString() + "/" + filePath.Replace("/" + userId.ToString(), receiverIds.ToString());
                var message = new StickMan_Users_AudioData_UploadInformation
                {
                    AudioFilePath = filePath,
                    UserID        = userId,
                    RecieverID    = receiverId,
                    ReadStatus    = false,
                    DeleteStatus  = false,
                    UploadTime    = DateTime.UtcNow
                };

                _unitOfWork.Repository <StickMan_Users_AudioData_UploadInformation>().Insert(message);
                _unitOfWork.Save();

                var justSentMessage = _messageConverter.MapToJustSentMessage(message, receiverId);
                messages.Add(justSentMessage);
            }

            return(messages);
        }
        private void FillUser(TimelineModel timelineMessage, StickMan_Users_AudioData_UploadInformation message, int userId)
        {
            var id = message.UserID == userId ? message.RecieverID : message.UserID;

            var user = _unitOfWork.Repository <StickMan_Users>().GetSingle(x => x.UserID == id);

            timelineMessage.UserName = user.UserName;
            timelineMessage.UserId   = id;
        }
        public JustSentMessage MapToJustSentMessage(StickMan_Users_AudioData_UploadInformation message, int receiverId)
        {
            var justSent = new JustSentMessage
            {
                AudioPath = message.AudioFilePath,
                MessageId = message.Id,
                TimePassedSinceUploaded = (DateTime.UtcNow - message.UploadTime).FormatDuration(),
                Duration   = _audioFileService.GetDuration(message.AudioFilePath).FormatDuration(),
                ReceiverId = receiverId
            };

            if (message.DeleteStatus)
            {
                FillDeletedMessageInfo(justSent, message);
            }
            else
            {
                FillExistingMessageInfo(receiverId, justSent, message);
            }

            FillUser(justSent, message, receiverId);

            return(justSent);
        }
        private static void FillExistingMessageInfo(int userId, TimelineModel timelineMessage, StickMan_Users_AudioData_UploadInformation message)
        {
            timelineMessage.Emoji = message.ReadStatus ? Emoji.Grimacing : Emoji.Smile;

            if (message.UserID == userId)
            {
                timelineMessage.Arrow  = MessageArrow.Right;
                timelineMessage.Status = MessageStatus.Sent;
            }

            if (message.RecieverID == userId)
            {
                timelineMessage.Arrow  = MessageArrow.Left;
                timelineMessage.Status = MessageStatus.Received;
            }
        }