public void TimeOutProductDiscussionRequest(TimeOutProductDiscussionRequestCommand command) { ApplicationServiceLifeCycle.Begin(); try { var processId = ProcessId.ExistingProcessId(command.ProcessId); var tenantId = new TenantId(command.TenantId); var product = this.productRepository.GetByDiscussionInitiationId(tenantId, processId.Id); SendEmailForTimedOutProcess(product); product.FailDiscussionInitiation(); this.productRepository.Save(product); ApplicationServiceLifeCycle.Success(); } catch (Exception ex) { ApplicationServiceLifeCycle.Fail(ex); } }