public ServiceResult <DialogMessageDTO> SendMessage(DialogMessageDTO messDTO) { DialogMessage dm = new DialogMessage() { DialogId = messDTO.DialogId, FromUserId = messDTO.FromUserId, Text = messDTO.Text, Date = messDTO.Date, Status = false }; db.DialogMessages.Create(dm); foreach (UserInDialog uid in db.UsersInDialog.GetAll().Where(u => u.Member.Id != messDTO.FromUserId && u.DialogId == messDTO.DialogId)) { db.UsersWhoWillRead.Create(new WhoWillRead() { MessageId = dm.Id, UserId = uid.MemberId }); } db.Save(); return(new ServiceResult <DialogMessageDTO>(Mapper.Map <DialogMessage, DialogMessageDTO>(db.DialogMessages.GetAll().Last()), null)); }
//===================Messages===================// public void SendMessage(int dialogId, string Text) { bool isToday = true; UserDTO fromUser = Helper.GetUser(Context.User.Identity.Name); DialogDTO dDTO = messService.GetDialog(dialogId, fromUser.Id).Data; DialogMessageDTO prevdm = dDTO.LastMessInDialog; IEnumerable <UserDTO> uid = messService.GetUsersInDialog(dDTO.Id).Data; DialogMessageDTO dm = messService.SendMessage(new DialogMessageDTO() { DialogId = dialogId, FromUserId = fromUser.Id, Text = Text, Date = DateTime.Now, Status = false }).Data; if (prevdm != null) { if (prevdm.Date.Year == DateTime.Now.Year && prevdm.Date.Month == DateTime.Now.Month && prevdm.Date.Day == prevdm.Date.Day) { isToday = false; } } foreach (UserDTO uDTO in uid) { ConnectedUser cu = users.FirstOrDefault(us => us.userId == uDTO.Id); if (cu != null) { if (uDTO.Id == fromUser.Id) { if (uid.Count() == 2) { Clients.Client(cu.ConnectionId).showMessageForCaller( new { messId = dm.Id, userId = fromUser.Id, UserProfImage = fromUser.ProfileImage.FilePath, FromUserName = fromUser.FirstName + " " + fromUser.LastName, dialogId = dDTO.Id, DialProfImage = dDTO.ProfileImage.FilePath, DialogName = fromUser.FirstName + " " + fromUser.LastName, Date = dm.Date.ToString("HH:mm"), DateSec = TimeSpan.FromTicks(dm.Date.Ticks).TotalSeconds, Text = Text, isToday = isToday }); } else { Clients.Client(cu.ConnectionId).showMessageForCaller( new { messId = dm.Id, userId = fromUser.Id, UserProfImage = fromUser.ProfileImage.FilePath, FromUserName = fromUser.FirstName + " " + fromUser.LastName, dialogId = dDTO.Id, DialProfImage = dDTO.ProfileImage.FilePath, DialogName = dDTO.Name, Date = dm.Date.ToString("HH:mm"), DateSec = TimeSpan.FromTicks(dm.Date.Ticks).TotalSeconds, Text = Text, isToday = isToday }); } } else { if (uid.Count() == 2) { Clients.Client(cu.ConnectionId).showMessage( new { messId = dm.Id, userId = fromUser.Id, UserProfImage = fromUser.ProfileImage.FilePath, FromUserName = fromUser.FirstName + " " + fromUser.LastName, dialogId = dDTO.Id, DialProfImage = dDTO.ProfileImage.FilePath, DialogName = fromUser.FirstName + " " + fromUser.LastName, Date = dm.Date.ToString("HH:mm"), DateSec = TimeSpan.FromTicks(dm.Date.Ticks).TotalSeconds, Text = Text, isToday = isToday }); } else { Clients.Client(cu.ConnectionId).showMessage( new { messId = dm.Id, userId = fromUser.Id, UserProfImage = fromUser.ProfileImage.FilePath, FromUserName = fromUser.FirstName + " " + fromUser.LastName, dialogId = dDTO.Id, DialProfImage = dDTO.ProfileImage.FilePath, DialogName = dDTO.Name, Date = dm.Date.ToString("HH:mm"), DateSec = TimeSpan.FromTicks(dm.Date.Ticks).TotalSeconds, Text = Text, isToday = isToday }); } } } } }