internal IFacadeUpdateResult <QuoteData> SaveQuoteLine(object parentId, QuoteLineDto childDto) { ArgumentValidator.IsNotNull("parentId", parentId); ArgumentValidator.IsNotNull("childDto", childDto); FacadeUpdateResult <QuoteData> result = new FacadeUpdateResult <QuoteData>(); IQuoteService service = UnitOfWork.GetService <IQuoteService>(); var parentQuery = service.Retrieve(parentId); if (parentQuery.HasResult) { Quote parent = parentQuery.ToBo <Quote>(); QuoteLine child = RetrieveOrNewQuoteLine(parent, childDto.Id); if (child != null) { child.ProductId = childDto.ProductId; child.Quantity = childDto.Quantity; child.TargetPrice = childDto.TargetPrice; var saveQuery = service.Save(parent); result.Merge(saveQuery); result.AttachResult(parent.RetrieveData <QuoteData>()); } else { AddError(result.ValidationResult, "QuoteLineCannotBeFound"); } } return(result); }
public IFacadeUpdateResult <QuoteData> SaveQuoteLine(object parentId, QuoteLineDto childDto) { UnitOfWork.BeginTransaction(); IFacadeUpdateResult <QuoteData> result = QuoteSystem.SaveQuoteLine(parentId, childDto); if (result.IsSuccessful) { UnitOfWork.CommitTransaction(); } else { UnitOfWork.RollbackTransaction(); } return(result); }