예제 #1
0
        public async Task <IActionResult> RegisterBaggageSetAsync([FromBody] RegisterBaggageSet command)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    // insert baggageset
                    BaggageSet baggageSet = Mapper.Map <BaggageSet>(command);
                    baggageSet.LoadedOnFlight          = false;
                    baggageSet.DeliveredToBaggageClaim = false;
                    _dbContext.BaggageSets.Add(baggageSet);
                    await _dbContext.SaveChangesAsync();

                    // send event
                    var e = Mapper.Map <BaggageSetRegistered>(command);
                    await _messagePublisher.PublishMessageAsync(e.MessageType, e, "");

                    // return result
                    return(CreatedAtRoute("GetByScheduledFlightId", new { scheduledFlightId = baggageSet.ScheduledFlightId }, baggageSet));
                }
                return(BadRequest());
            }
            catch (DbUpdateException)
            {
                ModelState.AddModelError("", "Unable to save changes. " +
                                         "Try again, and if the problem persists " +
                                         "see your system administrator.");
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
예제 #2
0
        public async Task <IActionResult> LoadBaggageSetOnToFlightAsync([FromBody] LoadBaggageOnFlight command)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    BaggageSet bSet       = Mapper.Map <BaggageSet>(command);
                    var        baggageSet = await _dbContext.BaggageSets.FirstOrDefaultAsync(b => b.ScheduledFlightId == bSet.ScheduledFlightId);

                    if (baggageSet == null)
                    {
                        return(NotFound());
                    }
                    baggageSet.LoadedOnFlight = true;
                    _dbContext.Update(baggageSet);
                    await _dbContext.SaveChangesAsync();

                    // send event
                    var e = Mapper.Map <BaggageLoadedOnToFlight>(command);
                    await _messagePublisher.PublishMessageAsync(e.MessageType, e, "");

                    // return result
                    return(Ok(baggageSet));
                }
                return(BadRequest());
            }
            catch (DbUpdateException)
            {
                ModelState.AddModelError("", "Unable to save changes. " +
                                         "Try again, and if the problem persists " +
                                         "see your system administrator.");
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }