Example #1
0
        public static T ToPakjeMessage <T>(this Pakje pakje) where T : PakjeMessage
        {
            T result = (T)Activator.CreateInstance(typeof(T));

            result.PakjeId             = pakje.PakjeId;
            result.Bestemmeling        = pakje.Bestemmeling;
            result.Inhoud              = pakje.Inhoud;
            result.KoerierDienst       = pakje.KoerierDienst;
            result.Verzender           = pakje.Verzender;
            result.VoorzieneLeveringOp = pakje.VoorzieneLeveringOp;

            if (typeof(T) == typeof(PakjeGeleverdMessage))
            {
                result.MessageType = PakjeMessageType.Geleverd;
            }
            else if (typeof(T) == typeof(PakjeLeveringGewijzigdMessage))
            {
                result.MessageType = PakjeMessageType.LeveringGewijzigd;
            }
            else if (typeof(T) == typeof(PakjeStatusGewijzigdMessage))
            {
                result.MessageType = PakjeMessageType.StatusGewijzigd;
            }
            else
            {
                result.MessageType = PakjeMessageType.Aangemaakt;
            }

            return(result);
        }
Example #2
0
        public async Task <IActionResult> AddPakje([FromBody] Pakje pakje)
        {
            var entity = await _context.Pakjes.AddAsync(pakje);

            await _context.SaveChangesAsync();

            await _queueSender.SendMessage(pakje.ToPakjeMessage());

            return(new OkObjectResult(entity.Entity));
        }
Example #3
0
        public async Task <IActionResult> UpdatePakje([FromBody] Pakje pakje)
        {
            var entity = await _context.Pakjes.FirstOrDefaultAsync(p => p.PakjeId == pakje.PakjeId);

            if (entity == null)
            {
                return(new NotFoundResult());
            }

            // determine update type
            PakjeMessage pakjeMessage = null;

            if (pakje.LeveringsStatus == LeveringsStatus.Geleverd)
            {
                pakjeMessage = new PakjeGeleverdMessage();
                ((PakjeGeleverdMessage)pakjeMessage).GeleverdOp = pakje.GeleverdOp;
            }
            else if (pakje.LeveringsStatus != entity.LeveringsStatus)
            {
                pakjeMessage = new PakjeStatusGewijzigdMessage();
                ((PakjeStatusGewijzigdMessage)pakjeMessage).VorigeStatus = entity.LeveringsStatus;
                ((PakjeStatusGewijzigdMessage)pakjeMessage).NieuweStatus = pakje.LeveringsStatus;
            }
            else if (pakje.VoorzieneLeveringOp != entity.VoorzieneLeveringOp)
            {
                pakjeMessage = new PakjeLeveringGewijzigdMessage();
                ((PakjeLeveringGewijzigdMessage)pakjeMessage).VorigeVoorzieneLeveringOp = entity.VoorzieneLeveringOp;
                ((PakjeLeveringGewijzigdMessage)pakjeMessage).NieuweVoorzieneLeveringOp = pakje.VoorzieneLeveringOp;
            }
            else
            {
                pakjeMessage = new PakjeMessage();
            }

            // save changes
            entity.LeveringsStatus     = pakje.LeveringsStatus;
            entity.Bestemmeling        = pakje.Bestemmeling ?? entity.Bestemmeling;
            entity.Inhoud              = pakje.Inhoud ?? entity.Inhoud;
            entity.KoerierDienst       = pakje.KoerierDienst ?? entity.KoerierDienst;
            entity.Verzender           = pakje.Verzender ?? entity.Verzender;
            entity.VoorzieneLeveringOp = pakje.VoorzieneLeveringOp ?? entity.VoorzieneLeveringOp;
            entity.GeleverdOp          = pakje.GeleverdOp ?? entity.GeleverdOp;
            await _context.SaveChangesAsync();

            // send message
            pakjeMessage.Bestemmeling        = entity.Bestemmeling;
            pakjeMessage.Inhoud              = entity.Inhoud;
            pakjeMessage.KoerierDienst       = entity.KoerierDienst;
            pakjeMessage.Verzender           = entity.Verzender;
            pakjeMessage.VoorzieneLeveringOp = entity.VoorzieneLeveringOp;
            await _queueSender.SendMessage(pakjeMessage);

            return(new OkObjectResult(entity));
        }
Example #4
0
 public static PakjeMessage ToPakjeMessage(this Pakje pakje)
 {
     return(new PakjeMessage
     {
         PakjeId = pakje.PakjeId,
         Bestemmeling = pakje.Bestemmeling,
         Inhoud = pakje.Inhoud,
         KoerierDienst = pakje.KoerierDienst,
         Verzender = pakje.Verzender,
         VoorzieneLeveringOp = pakje.VoorzieneLeveringOp
     });
 }