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); }
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)); }
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)); }
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 }); }