public virtual ActionResult Publish() { for (var i = 0; i < 1000; i++) { var message = new DocumentPublishEventMessage { DocumentId = i, DocumentRevision = i + 155, DocumentType = DocumentType.One, Id = Guid.NewGuid(), OrganizationId = i, UserId = i, AdditionalPublicationData = new DocumentOnePublishAdditionalPublicationData { Password = "******", Login = "******", RegistryNumber = "4" } }; _documentPublishQueueService.PublishMessage(message); } return(Ok()); }
public async Task <IActionResult> ReEnqueueTaskById([FromBody] Guid id, [FromServices] IDocumentPublishQueueService documentPublishQueueService) { var task = await _publishDocumentTaskRepository.GetAsync(id); if (task == null) { return(NotFound("Задача не найдена")); } if (!task.IsFinished) { return(UnprocessableEntity("Задача на публикацию еще не завершена")); } if (task.LoadId != null) { return(UnprocessableEntity($"Документ опубликован с идентификатором {task.LoadId}")); } if (String.IsNullOrWhiteSpace(task.Payload)) { return(UnprocessableEntity("Нет данных пользователя для повторной отправки задачи")); } DocumentPublishEventMessage documentPublishEventMessage; try { documentPublishEventMessage = new DocumentPublishEventMessage(task); } catch (Exception e) { return(UnprocessableEntity("Не удалось десериализовать данные пользователя для повторной отправки задачи " + e.Message)); } try { task.State = PublishState.None; task.UpdatedAt = DateTime.Now; task.IsDelivered = false; task.RefId = null; _publishDocumentTaskRepository.Save(task); documentPublishQueueService.PublishMessage(documentPublishEventMessage); } catch (Exception e) { return(UnprocessableEntity($"Возникла ошибка при попытке нарпавить на повторную публикацию {e.Message}")); } return(Ok("Задача успешно направлена на повторную публикацию")); }
public PublishDocumentTask(DocumentPublishEventMessage message) { PublishDocumentTaskAttempts = new List <PublishDocumentTaskAttempt>(); State = PublishState.None; RefId = null; UpdatedAt = null; LoadId = null; Id = message.Id; DocumentId = message.DocumentId; DocumentRevision = message.DocumentRevision; DocumentType = message.DocumentType; UserId = message.UserId; State = PublishState.None; CreatedAt = message.CreatedAt; OrganizationId = message.OrganizationId; Payload = JsonConvert.SerializeObject(message.AdditionalPublicationData, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }); }
public virtual ActionResult PublishSingle(Guid guid) { var message = new DocumentPublishEventMessage { DocumentId = 512, DocumentRevision = 1155, DocumentType = DocumentType.One, Id = guid, OrganizationId = 21, UserId = 5, AdditionalPublicationData = new DocumentOnePublishAdditionalPublicationData { Password = "******", Login = "******", RegistryNumber = "4" } }; _documentPublishQueueService.PublishMessage(message); return(Ok()); }