public void SubmitChanges(CommodityTransferNote document) { int sequence = 0; var envelope = new CommandEnvelope(); envelope.Initialize(document); var commandsToExecute = document.GetDocumentCommandsToExecute(); var createCommand = commandsToExecute.OfType<CreateCommand>().FirstOrDefault(); if (createCommand != null) envelope.CommandsList.Add(new CommandEnvelopeItem(++sequence, createCommand)); var lineItemCommands = commandsToExecute.OfType<AfterCreateCommand>().ToList(); foreach (var item in lineItemCommands) { envelope.CommandsList.Add(new CommandEnvelopeItem(++sequence, item)); } var confirmCommodityDeliveryCommand = commandsToExecute.OfType<ConfirmCommodityTransferCommand>().FirstOrDefault(); if (confirmCommodityDeliveryCommand != null) envelope.CommandsList.Add(new CommandEnvelopeItem(++sequence, confirmCommodityDeliveryCommand)); var approveCommodityTransferCommand = commandsToExecute.OfType<ApproveCommodityTransferCommand>().FirstOrDefault(); if (approveCommodityTransferCommand != null) envelope.CommandsList.Add(new CommandEnvelopeItem(++sequence, approveCommodityTransferCommand)); var transferedCommodityStorageCommand = commandsToExecute.OfType<TransferedCommodityStorageLineItemCommand>().FirstOrDefault(); if (transferedCommodityStorageCommand != null) envelope.CommandsList.Add(new CommandEnvelopeItem(++sequence, transferedCommodityStorageCommand)); _commandEnvelopeRouter.RouteCommandEnvelope(envelope); }
private SourcingDocument Map(tblSourcingDocument tbldoc) { SourcingDocument doc = null; doc = new CommodityTransferNote(tbldoc.Id); _Map(tbldoc, doc); var transferNote = doc as CommodityTransferNote; if (tbldoc.DocumentTypeId2 != null ) transferNote.TransferNoteTypeId = (CommodityTransferNote.CommodityTransferNoteTypeId) tbldoc.DocumentTypeId2; transferNote.WareHouseToStore = tbldoc.DocumentOnBehalfOfCostCentreId.HasValue ? _storeRepository.GetById(tbldoc.DocumentOnBehalfOfCostCentreId.Value) : null; transferNote._SetLineItems(tbldoc.tblSourcingLineItem.Select(MapCommodityStorageLineItem).ToList()); doc = transferNote; return doc; }