public bool Update(InspectionCenter inspectionCenter, string requestBody) { ValidateInputPattern(inspectionCenter); // Check IF Inspection Center Already Present if (!IfNotExists(inspectionCenter)) { throw new ServiceBaseException(_l[InspectionCenterConstants.NO_DATA_FOUND]); } // Dyanmic Custom Controls var centerCustomProperties = GetCustomProperties(requestBody, InspectionCenterConstants.InspectionCenterEntity); var dbInspectionCenterCoverage = GetCoverageByCenterID(inspectionCenter.Id); var centerCoverageList = CustomSchemaHelper <List <InspectionCenterCoverage> > .Deserialize(inspectionCenter.InspectionCenterCoverages); var roleEmailList = CustomSchemaHelper <List <RoleEmails> > .Deserialize(inspectionCenter.RoleEmails); IsOtherCoverageExists(inspectionCenter, centerCoverageList); if (roleEmailList.Select(x => x.Role).Distinct().Count() < roleEmailList.Count()) { throw new ServiceBaseException(_l["Cannot repeat role inside inspection center:"], 1000); } using (TransactionScope scope = new TransactionScope()) { inspectionCenter.LastModificationTime = DateTime.Now; _centerRepository.Update(inspectionCenter, centerCustomProperties); _messageQueueManager.SendUpdateCenter(_messagePublisherConfigSettings.CenterUpdatedExchange, new UpdatedCenter { CenterId = inspectionCenter.Id }); scope.Complete(); } return(true); }