Exemple #1
0
        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);
        }