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); } }
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()); }
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); }