public void OpenSprint(Sprint sprint, string userId)
        {
            sprint.state = AppConstants.SPRINT_STATUS_OPEN;
            TransactionOptions _transcOptions = new TransactionOptions();

            _transcOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            using (TransactionScope sc = new TransactionScope(TransactionScopeOption.Required, _transcOptions, EnterpriseServicesInteropOption.Full))
            {
                try
                {
                    uRepository.UpdateStateAndVersion(sprint);
                    #region unlock diagrams
                    DiagramService dService = (DiagramService) new ServiceLocator <Attachment>().locate();
                    var            diagrams = dService.FindBySprint(sprint.Id);
                    dService.UnLockDiagrams(diagrams, userId);
                    #endregion
                    sc.Complete();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    sc.Dispose();
                }
            }
        }
        public List <UserStoryAttachment> CloseSprint(Sprint sprint, string userId)
        {
            var diagrams = new List <UserStoryAttachment>();
            TransactionOptions _transcOptions = new TransactionOptions();

            _transcOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            using (TransactionScope sc = new TransactionScope(TransactionScopeOption.Required, _transcOptions, EnterpriseServicesInteropOption.Full))
            {
                try
                {
                    uRepository.Close(sprint, userId);
                    #region lock diagrams
                    DiagramService dService = (DiagramService) new ServiceLocator <Attachment>().locate();
                    diagrams = dService.FindBySprint(sprint.Id);
                    dService.LockDiagrams(diagrams, userId);
                    #endregion
                    sc.Complete();
                }
                catch (Exception ex)
                {
                    throw new BadRequestException(AppConstants.EXCEPTION_SPRINT_CLOSE_ERROR);
                }
                finally
                {
                    sc.Dispose();
                }
            }
            return(diagrams);
        }