public QuoteItem Edit( Guid id, decimal labour, decimal calibration, decimal parts, decimal carriage, decimal investigation, string report, int days, bool beyondEconomicRepair) { if (!CurrentUser.HasRole(UserRole.Admin | UserRole.Manager)) { throw new DomainValidationException(Messages.InsufficientSecurity, "CurrentUser"); } var quoteItem = GetById(id); quoteItem.Labour = GetLabour(labour); quoteItem.Calibration = GetCalibration(calibration); quoteItem.Parts = GetParts(parts); quoteItem.Carriage = GetCarriage(carriage); quoteItem.Investigation = GetInvestigation(investigation); quoteItem.Report = report; quoteItem.Days = GetDays(days); quoteItem.BeyondEconomicRepair = beyondEconomicRepair; ValidateAnnotatedObjectThrowOnFailure(quoteItem); var quote = _quoteRepository.GetById(quoteItem.Quote.Id); quote.Revision++; _quoteRepository.Update(quote); _quoteItemRepository.Update(quoteItem); return(quoteItem); }