示例#1
0
        public MessageGetDTO refresh(MessageSendDTO messageSendDTO)
        {
            string url = Cfg.ConnectionUrl + "/chat/messages";

            var uri         = new Uri(string.Format(url, string.Empty));
            var messageDTO  = JsonConvert.SerializeObject(messageSendDTO);
            var httpContent = new StringContent(messageDTO, Encoding.UTF8, "application/json");
            var response    = Client.PostAsync(uri, httpContent);

            try
            {
                response.Result.EnsureSuccessStatusCode();
                var content = response.Result.Content.ReadAsStringAsync();

                MessageGetDTO messages = JsonConvert.DeserializeObject <MessageGetDTO>(content.Result);
                if (messages.Messages == null)
                {
                    Error error = JsonConvert.DeserializeObject <Error>(content.Result);
                    throw new MyException(error.Code, error.Message);
                }
                else
                {
                    return(messages);
                }
            }
            catch (MyException e)
            {
                var   content = response.Result.Content.ReadAsStringAsync();
                Error error   = JsonConvert.DeserializeObject <Error>(content.Result);
                throw new MyException(error.Code, error.Message);
            }
        }
示例#2
0
        public async Task <IActionResult> Delete(int id, MessageGetDTO messageGetDTO)
        {
            ServiceResponse <bool> serviceResponse = await _messageService.DeleteMessageAsync(messageGetDTO);

            if (serviceResponse.Success == false)
            {
                return(BadRequest(serviceResponse.Message));
            }
            return(Ok());
        }
示例#3
0
        public async Task <ServiceResponse <bool> > DeleteMessageAsync(MessageGetDTO message)
        {
            ServiceResponse <bool> serviceResponse = new ServiceResponse <bool>();

            try
            {
                if ((DateTime.UtcNow.Day - message.DateTime.Day) >= 1)
                {
                    serviceResponse.Success = false;
                    serviceResponse.Message = "Срок истек";
                    return(serviceResponse);
                }
                var b = await _messageRepository.HasUserWithId(message.UserId, message.Id);

                if (!b)
                {
                    serviceResponse.Success = false;
                    serviceResponse.Message = "Нет доступа";
                    return(serviceResponse);
                }
                if (await _messageRepository.DeleteAsync(message.Id))
                {
                    await _context.SaveChangesAsync();

                    _chatEventRepository.Add(new ChatEvent()
                    {
                        UserId         = message.UserId,
                        DialogId       = message.DialogId,
                        TypeOfActionId = (int)ActionTypes.MessageDeleted
                    });
                    await _context.SaveChangesAsync();

                    _botNotifier.NotifyAsync();

                    serviceResponse.Data = true;
                }
                else
                {
                    serviceResponse.Success = false;
                    serviceResponse.Message = "Сообщение не найдено";
                    return(serviceResponse);
                }
            }
            catch (Exception ex)
            {
                serviceResponse.Success = false;
                serviceResponse.Message = ex.Message + ex.InnerException;
                return(serviceResponse);
            }

            return(serviceResponse);
        }