public Task <IActionResult> CreateDeal([FromForm] CreateDealRequest request) { var command = new CreateDealCommand(request.Name, request.ImageUrl, request.Description, request.DescriptionEng, request.MinimumQuantity, request.MinimumBillAmount, request.IsFixedPriceDiscount, request.DiscountAmount, request.DiscountPercentage, request.MaximumDiscount, request.StartDate, request.EndDate, request.PackSize, request.FreeItemCount, request.IsPackageDeal); return(HandleActionResultFor(command)); }
public async Task <IHttpActionResult> CreateDeal(CreateDealCommand command) { //De-serialize - already done //Validate schema with DataAnnotations/XSD/JSONSchema //Apply command to domain //return response code; var streamName = StreamNames.DealStreamName(command.DealId); var eventId = Guid.NewGuid(); //Is this correct? Or should it be cmd.DealId? Or something else? var payload = JsonConvert.SerializeObject(command); await _eventStoreClient.SaveEvent(streamName, ExpectedVersion.NoStream, eventId, "DealCreated", payload); return(Ok()); }
public async Task <ActionResult <DealDto> > Post([FromBody] CreateDealCommand model, CancellationToken cancellationToken) { try { var result = await Mediator.Send <DealDto>(model, cancellationToken); // await Mediator.Publish<DealCreatedEvent>(new DealCreatedEvent()); //await DomainEvents.Raise(new DealCreatedEvent()); return(CreatedAtAction(nameof(Get), new { id = result.Id }, result)); } catch (Exception exception) { return(await Task.FromResult(StatusCode(StatusCodes.Status500InternalServerError, exception))); } }
public IObservable <Unit> CreateDeal(CreateDealCommand command) { return(Observable.Create <Unit>( obs => { var subscription = GetDealUpdates(command.DealId) .Select(_ => Unit.Default) .Take(1) .Timeout(TimeSpan.FromSeconds(5), Scheduler.Default) .Subscribe(obs); //Send the command _messageBusClient.Enqueue(command); return subscription; })); }
public IEnumerable Handle(CreateDealCommand command) { yield return(new DealCreatedEvent { Id = command.Id }); }
public async Task <ActionResult <bool> > Create(CreateDealCommand command) => await this.Send(command);