public bool SendMessageToDriver(int senderId, int recipientId, string message) { try { using (var senderUoW = UnitOfWorkFactory.CreateForRoot <Employee>(senderId, $"[CS]Отправка сообщения водителю {recipientId}")) { var recipient = senderUoW.GetById <Employee>(recipientId); var chat = ChatRepository.GetChatForDriver(senderUoW, recipient); if (chat == null) { chat = new ChatClass(); chat.ChatType = ChatType.DriverAndLogists; chat.Driver = recipient; } ChatMessage chatMessage = new ChatMessage(); chatMessage.Chat = chat; chatMessage.DateTime = DateTime.Now; chatMessage.Message = message; chatMessage.Sender = senderUoW.Root; chat.Messages.Add(chatMessage); senderUoW.Save(chat); senderUoW.Commit(); FCMHelper.SendMessage(recipient.AndroidToken, senderUoW.Root.ShortName, message); return(true); } } catch (Exception e) { logger.Error(e); return(false); } }