Example #1
0
        public async Task <Result <Courier> > ChangeStatus(CourierStatusChangeContext context)
        {
            var courier = await _db.Couriers.FindAsync(context.CourierId);

            if (courier == null)
            {
                _logger.LogInformation($"Courier {context.CourierId} could not be found.");

                return(new Result <Courier> {
                    Reason = ReasonType.CourierNotFound, IsSuccessful = false
                });
            }

            courier.Status          = (int)context.Status;
            courier.StatusTimestamp = DateTime.Now;

            _db.Update(courier);

            int changes = await _db.SaveChangesAsync();

            if (changes <= 0)
            {
                _logger.LogInformation($"Courier {context.CourierId} status was not updated.");

                return(new Result <Courier> {
                    Reason = ReasonType.DatabaseError, ChangeCount = changes, IsSuccessful = false
                });
            }

            var address = await _db.Addresses.FindAsync(courier.AddressId);

            _logger.LogInformation($"Courier {context.CourierId} status was updated.");

            return(new Result <Courier> {
                ChangeCount = changes, Value = MapEntity(courier, address), IsSuccessful = true
            });
        }
Example #2
0
 public async Task <Result <Courier> > ChangeStatus(CourierStatusChangeContext context) =>
 new Result <Courier>
 {
     IsSuccessful = true
 };