Example #1
0
        public async void Get_SuccessStatus200_Test()
        {
            // 1: Creating testing objects
            Release firstRelease = new Release()
            {
                Id                = "5dcaad2526235a471cfcccad",
                Date              = "05/05/2019",
                PaymentMethod     = PaymentMethod.Credito,
                EstablishmentName = "Test 1",
                Amount            = 55.55m,
                CreatedAt         = DateTime.Now,
                UpdatedAt         = DateTime.Now
            };

            // 2: Adding to database
            await releasesService.CreateItem(firstRelease);

            var query = await releasesController.Get();

            var result = (List <Release>)query.Result.GetType().GetProperty("Value").GetValue(query.Result);

            // 3: Remove all services from database
            await releasesService.RemoveAll();

            // 4: Check if result is a valid Release
            Assert.Equal("5dcaad2526235a471cfcccad", result[0].Id);
        }
        private async void AddNewRelease(ReleaseCreatedEvent release)
        {
            var newRelease = new Release()
            {
                Id                = release.Id,
                Date              = release.Date,
                PaymentMethod     = (PaymentMethod)Enum.Parse(typeof(PaymentMethod), release.PaymentMethod),
                EstablishmentName = release.EstablishmentName,
                Amount            = release.Amount,
                CreatedAt         = release.CreatedAt,
                UpdatedAt         = release.UpdatedAt
            };

            await releaseService.CreateItem(newRelease);
        }
        public async Task <ActionResult <Release> > Post([FromBody] ReleaseRequest body)
        {
            Release resultRelease;

            try {
                logger.LogInformation("Trying to get associated establishment");
                var establishment = await establishmentService.GetByName(body.EstablishmentName);

                if (establishment == null)
                {
                    string errorMessage = responseMessages.CantFoundGivenName.Replace("$", "estabelecimento");
                    logger.LogInformation("Error: " + errorMessage);
                    return(httpResponseHelper.ErrorResponse(errorMessage, 404));
                }

                logger.LogInformation("Inserting release into database");
                var newRelease = new Release()
                {
                    Date              = body.Date,
                    PaymentMethod     = body.PaymentMethod,
                    Amount            = body.Amount,
                    EstablishmentName = establishment.Name,
                    CreatedAt         = DateTime.Now
                };

                resultRelease = await releasesService.CreateItem(newRelease);

                //Send to RabbitMQ to event handler observer pattern
                Emitter.ReleaseCreated(resultRelease, rabbitConnector.ConnectionString);
            } catch (Exception ex) {
                logger.LogInformation($"Message: {ex.Message}");
                logger.LogTrace($"Stack Trace: {ex.StackTrace}");
                throw;
            }

            logger.LogInformation("Action POST for /api/releases returns 201");
            return(Created("", resultRelease));
        }