Exemple #1
0
        public static Chat CreateChat(AddMessageDTO messageDTO)
        {
            var chat = new Chat
            {
                Id          = Guid.NewGuid().ToString(),
                Member1     = messageDTO.SenderId,
                Member2     = messageDTO.TargetId,
                LastMessage = messageDTO.Message
            };

            chat.Messages = new List <Message>
            {
                new Message
                {
                    Content      = messageDTO.Message,
                    ChatId       = chat.Id,
                    ReceiverId   = messageDTO.TargetId,
                    SenderId     = messageDTO.SenderId,
                    Id           = Guid.NewGuid().ToString(),
                    CreationTime = DateTime.Now,
                    ReadableTime = DateTime.Now.ToString("HH:mm"),
                    Seen         = false
                }
            };

            return(chat);
        }
Exemple #2
0
        public IActionResult CreateChat([FromBody] AddMessageDTO messageDTO)
        {
            var chat = Mapper.CreateChat(messageDTO);

            _context.Chats.Add(chat);
            _context.SaveChanges();

            return(Ok());
        }
Exemple #3
0
            public async Task <ActionResult <AddMessageDTO> > PostGeoComment(AddMessageDTO geoMessageDTO)
            {
                var user = await _userManager.GetUserAsync(this.User);

                var geoMessage = geoMessageDTO.ToModel(user);

                _context.GeoMessages.Add(geoMessage);
                await _context.SaveChangesAsync();

                return(CreatedAtAction("GetGeoComment", new { id = geoMessage.Id }, geoMessageDTO));
            }
Exemple #4
0
 public IActionResult Put([FromBody] AddMessageDTO addMessageDTO)
 {
     if (emailManager.AddMessage(addMessageDTO))
     {
         return(Ok());
     }
     else
     {
         return(BadRequest());
     }
 }
Exemple #5
0
        public void PutMessageIntoChat([FromBody] AddMessageDTO AddMessageDTO)
        {
            Repo.PutMessageIntoChat(AddMessageDTO.ChatId, AddMessageDTO.Message, AddMessageDTO.IsFromAgent);

            long TelegramChatId = Repo.GetTelegramChatIdByConversationId(AddMessageDTO.ChatId);

            if (TelegramChatId != 0)
            {
                updateService.SendMessageToTelegram(TelegramChatId, AddMessageDTO.Message);
            }
        }
Exemple #6
0
        public bool AddMessage(AddMessageDTO addMessageDTO)
        {
            try
            {
                Message message = new Message()
                {
                    Email = addMessageDTO.Email,
                    Name  = addMessageDTO.Name,
                    Text  = addMessageDTO.Text,
                    Date  = DateTime.Now
                };

                dbContext.Messages.Add(message);
                dbContext.SaveChanges();

                AddActionDTO action = new AddActionDTO()
                {
                    Ip           = addMessageDTO.Ip,
                    ActionTypeId = 2,
                    DeviceTypeId = addMessageDTO.DeviceTypeId
                };

                actionManager.AddAction(action);

                emailSender.SendEmail(new List <string>()
                {
                    "*****@*****.**", "*****@*****.**"
                },
                                      $"Новое сообщение от {addMessageDTO.Name}", FormMessageText(addMessageDTO));

                SendFeedback(addMessageDTO);

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Exemple #7
0
        private bool SendFeedback(AddMessageDTO addMessageDTO)
        {
            try
            {
                if (!Regex.IsMatch(addMessageDTO.Email, @"^\S+@\S+$"))
                {
                    return(false);
                }

                FeedbackMessageText(addMessageDTO, out string messageSubject, out string messageText);

                emailSender.SendEmail(new List <string>()
                {
                    addMessageDTO.Email
                }, messageSubject, messageText);

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Exemple #8
0
        private void FeedbackMessageText(AddMessageDTO addMessageDTO, out string messageSubject, out string messageText)
        {
            switch (addMessageDTO?.Language)
            {
            case "Rus":
            {
                messageSubject = "Ваше сообщение было доставлено!";
                messageText    = $"Здравствуйте, <b>{addMessageDTO.Name}</b>!<br>Мы получили Ваше сообщение:<br>" +
                                 $"<em>\"{addMessageDTO.Text}\"</em>.<br>С Вами свяжутся в ближайшее время." +
                                 $"<br>С уважением, <b>команда Uption</b>!";
                break;
            };

            case "Ukr":
            {
                messageSubject = "Ваше повідомлення було доставлено!";
                messageText    = $"Привіт, <b>{addMessageDTO.Name}</b>!<br>Ми отримали Ваше повідомлення:<br>" +
                                 $"<em>\"{addMessageDTO.Text}\"</em>.<br>З Вами зв'яжуться найближчим часом." +
                                 $"<br>З повагою, <b>команда Uption</b>!";
                break;
            };

            case "Eng":
            {
                messageSubject = "Your message has been delivered!";
                messageText    = $"Hello, <b>{addMessageDTO.Name}</b>!<br>We have received your message:<br>" +
                                 $"<em>\"{addMessageDTO.Text}\"</em>.<br>You will be contacted shortly." +
                                 $"<br>Regards, <b>Uption team</b>!";
                break;
            }

            default:
            {
                throw new Exception("Language is undefined in switch.");
            }
            }
        }
Exemple #9
0
 private string FormMessageText(AddMessageDTO addMessageDTO)
 {
     return($"<b>Отправитель:</b><br>{addMessageDTO.Name} ({addMessageDTO.Email}).<br><b>Текст:</b>" +
            $"<br>{addMessageDTO.Text}<br><b>Язык общения:</b> <em>{addMessageDTO.Language}.</em>");
 }