public ResolverGroupTypeRefData InsertorUpdate(string typeName)
        {
            var resolverGroupType = _resolverGroupTypeRefDataRepository.Query(x => x.ResolverGroupTypeName == typeName.Trim()).FirstOrDefault();

            if (resolverGroupType == null)
            {
                resolverGroupType = new ResolverGroupTypeRefData
                {
                    ResolverGroupTypeName = typeName.Trim(),
                    SortOrder             = 5,
                    Visible = false
                };
                _resolverGroupTypeRefDataRepository.Insert(resolverGroupType);
                _unitOfWork.Save();
            }
            else
            {
                var customerSpecificTypeThreshold = _parameterService.GetParameterByNameAndCache <int>(ParameterNames.CustomerSpecificTypeThreshold);
                if (!resolverGroupType.Visible &&
                    GetNumberOfResolverGroupTypeReferences(resolverGroupType.Id) >= customerSpecificTypeThreshold - 1)
                {
                    resolverGroupType.Visible = true;
                    _resolverGroupTypeRefDataRepository.Update(resolverGroupType);
                    _unitOfWork.Save();
                }
            }

            return(resolverGroupType);
        }
示例#2
0
        public void ResolverGroupTypeRefDataService_Update_CallSaveChanges()
        {
            #region Arrange

            var component = new ResolverGroupTypeRefData
            {
                Id = 4,
                ResolverGroupTypeName = "Resolver MJJ",
            };

            #endregion

            #region Act

            _resolverGroupTypeRefDataService.Update(component);

            #endregion

            #region Assert

            _mockResolverGroupTypeRefDataRepository.Verify(x => x.Update(It.IsAny <ResolverGroupTypeRefData>()), Times.Once());
            _mockUnitOfWork.Verify(x => x.Save(), Times.Exactly(1));

            #endregion
        }
示例#3
0
        public void ResolverGroupTypeRefDataService_Create_CallSaveChanges()
        {
            #region Arrange

            var resolverGroup = new ResolverGroupTypeRefData
            {
                Id = 5,
                ResolverGroupTypeName = "Resolver MJJ",
                SortOrder             = 5
            };

            #endregion

            #region Act

            var response = _resolverGroupTypeRefDataService.Create(resolverGroup);

            #endregion

            #region Assert

            _mockResolverGroupTypeRefDataRepository.Verify(x => x.Insert(It.IsAny <ResolverGroupTypeRefData>()), Times.Once());
            _mockUnitOfWork.Verify(x => x.Save(), Times.Exactly(1));

            Assert.IsNotNull(response);
            Assert.AreEqual(5, response);

            #endregion
        }
 public void Delete(ResolverGroupTypeRefData entity)
 {
     RetryableOperation.Invoke(ExceptionPolicies.General, () =>
     {
         _resolverGroupTypeRefDataRepository.Delete(entity);
         _unitOfWork.Save();
     });
 }
 public int Create(ResolverGroupTypeRefData entity)
 {
     RetryableOperation.Invoke(ExceptionPolicies.General, () =>
     {
         _resolverGroupTypeRefDataRepository.Insert(entity);
         _unitOfWork.Save();
     });
     return(entity.Id);
 }
        public ResolverGroupTypeRefData GetById(int id)
        {
            ResolverGroupTypeRefData result = null;

            RetryableOperation.Invoke(ExceptionPolicies.General, () =>
            {
                result = _resolverGroupTypeRefDataRepository.GetById(id);
            });
            return(result);
        }
示例#7
0
        public void ResolverGroupTypeRefDataService_Delete_CallSaveChanges()
        {
            #region Arrange

            var resolverGroup = new ResolverGroupTypeRefData
            {
                Id = 4,
            };

            #endregion

            #region Act

            _resolverGroupTypeRefDataService.Delete(resolverGroup);

            #endregion

            #region Assert

            _mockResolverGroupTypeRefDataRepository.Verify(x => x.Delete(It.IsAny <ResolverGroupTypeRefData>()), Times.Once());
            _mockUnitOfWork.Verify(x => x.Save(), Times.Exactly(1));

            #endregion
        }
示例#8
0
        public void Execute()
        {
            foreach (var resolver in _resolvers)
            {
                int sqlResult;
                using (var sourceDbContext = new SLMDataContext("Name=SLMSourceDataContext"))
                {
                    sqlResult = sourceDbContext.Database.SqlQuery <int>($"SELECT Count(*) FROM RESOLVER WHERE Id = {resolver.Id} AND ServiceComponent_Id IS NULL").FirstOrDefault();
                }

                if (sqlResult > 0)
                {
                    if (resolver.ServiceDeliveryUnitType != null)
                    {
                        if (!_dataContext.ServiceDeliveryUnitTypeRefData.Any(x => x.ServiceDeliveryUnitTypeName == resolver.ServiceDeliveryUnitType.ServiceDeliveryUnitTypeName))
                        {
                            var serviceDeliveryUnitType = new ServiceDeliveryUnitTypeRefData
                            {
                                ServiceDeliveryUnitTypeName = resolver.ServiceDeliveryUnitType.ServiceDeliveryUnitTypeName,
                                SortOrder = resolver.ServiceDeliveryUnitType.SortOrder,
                                Visible   = resolver.ServiceDeliveryUnitType.Visible
                            };

                            _dataContext.ServiceDeliveryUnitTypeRefData.Add(serviceDeliveryUnitType);
                            _unitOfWork.Save();
                        }
                    }

                    if (resolver.ResolverGroupType != null)
                    {
                        if (!_dataContext.ResolverGroupTypeRefData.Any(x => x.ResolverGroupTypeName == resolver.ResolverGroupType.ResolverGroupTypeName))
                        {
                            var resolverGroupType = new ResolverGroupTypeRefData
                            {
                                ResolverGroupTypeName = resolver.ResolverGroupType.ResolverGroupTypeName,
                                SortOrder             = resolver.ResolverGroupType.SortOrder,
                                Visible = resolver.ResolverGroupType.Visible
                            };

                            _dataContext.ResolverGroupTypeRefData.Add(resolverGroupType);
                            _unitOfWork.Save();
                        }
                    }

                    var newResolver = new Resolver
                    {
                        ServiceDesk   = _serviceDesk,
                        ServiceDeskId = _serviceDesk.Id,
                        ServiceDeliveryOrganisationType  = _dataContext.ServiceDeliveryOrganisationTypeRefData.Single(x => x.ServiceDeliveryOrganisationTypeName == resolver.ServiceDeliveryOrganisationType.ServiceDeliveryOrganisationTypeName),
                        ServiceDeliveryOrganisationNotes = resolver.ServiceDeliveryOrganisationNotes,
                        ServiceDeliveryUnitNotes         = resolver.ServiceDeliveryUnitNotes,
                        ServiceDeliveryUnitType          = resolver.ServiceDeliveryUnitType != null?_dataContext.ServiceDeliveryUnitTypeRefData.Single(x => x.ServiceDeliveryUnitTypeName == resolver.ServiceDeliveryUnitType.ServiceDeliveryUnitTypeName) : null,
                                                               ResolverGroupType = resolver.ResolverGroupType != null?_dataContext.ResolverGroupTypeRefData.Single(x => x.ResolverGroupTypeName == resolver.ResolverGroupType.ResolverGroupTypeName) : null,
                                                                                       InsertedBy   = resolver.InsertedBy,
                                                                                       InsertedDate = resolver.InsertedDate,
                                                                                       UpdatedBy    = resolver.UpdatedBy,
                                                                                       UpdatedDate  = resolver.UpdatedDate
                    };

                    _serviceDesk.Resolvers.Add(newResolver);
                    _unitOfWork.Save();
                }
            }
        }
        public void Execute()
        {
            if (_serviceComponent.Resolver.ServiceDeliveryUnitType != null)
            {
                if (!_dataContext.ServiceDeliveryUnitTypeRefData.Any(x => x.ServiceDeliveryUnitTypeName == _serviceComponent.Resolver.ServiceDeliveryUnitType.ServiceDeliveryUnitTypeName))
                {
                    var serviceDeliveryUnitType = new ServiceDeliveryUnitTypeRefData
                    {
                        ServiceDeliveryUnitTypeName = _serviceComponent.Resolver.ServiceDeliveryUnitType.ServiceDeliveryUnitTypeName,
                        SortOrder = _serviceComponent.Resolver.ServiceDeliveryUnitType.SortOrder,
                        Visible   = _serviceComponent.Resolver.ServiceDeliveryUnitType.Visible
                    };

                    _dataContext.ServiceDeliveryUnitTypeRefData.Add(serviceDeliveryUnitType);
                    _unitOfWork.Save();
                }
            }

            if (_serviceComponent.Resolver.ResolverGroupType != null)
            {
                if (!_dataContext.ResolverGroupTypeRefData.Any(x => x.ResolverGroupTypeName == _serviceComponent.Resolver.ResolverGroupType.ResolverGroupTypeName))
                {
                    var resolverGroupType = new ResolverGroupTypeRefData
                    {
                        ResolverGroupTypeName = _serviceComponent.Resolver.ResolverGroupType.ResolverGroupTypeName,
                        SortOrder             = _serviceComponent.Resolver.ResolverGroupType.SortOrder,
                        Visible = _serviceComponent.Resolver.ResolverGroupType.Visible
                    };

                    _dataContext.ResolverGroupTypeRefData.Add(resolverGroupType);
                    _unitOfWork.Save();
                }
            }

            var newResolver = new Resolver
            {
                ServiceDesk      = _serviceDesk,
                ServiceDeskId    = _serviceDesk.Id,
                ServiceComponent = _targetServiceComponent,
                ServiceDeliveryOrganisationType  = _dataContext.ServiceDeliveryOrganisationTypeRefData.Single(x => x.ServiceDeliveryOrganisationTypeName == _serviceComponent.Resolver.ServiceDeliveryOrganisationType.ServiceDeliveryOrganisationTypeName),
                ServiceDeliveryOrganisationNotes = _serviceComponent.Resolver.ServiceDeliveryOrganisationNotes,
                ServiceDeliveryUnitNotes         = _serviceComponent.Resolver.ServiceDeliveryUnitNotes,
                ServiceDeliveryUnitType          = _serviceComponent.Resolver.ServiceDeliveryUnitType != null?_dataContext.ServiceDeliveryUnitTypeRefData.Single(x => x.ServiceDeliveryUnitTypeName == _serviceComponent.Resolver.ServiceDeliveryUnitType.ServiceDeliveryUnitTypeName) : null,
                                                       ResolverGroupType = _serviceComponent.Resolver.ResolverGroupType != null?_dataContext.ResolverGroupTypeRefData.Single(x => x.ResolverGroupTypeName == _serviceComponent.Resolver.ResolverGroupType.ResolverGroupTypeName) : null,
                                                                               OperationalProcessTypes = new List <OperationalProcessType>(),
                                                                               InsertedBy   = _serviceComponent.Resolver.InsertedBy,
                                                                               InsertedDate = _serviceComponent.Resolver.InsertedDate,
                                                                               UpdatedBy    = _serviceComponent.Resolver.UpdatedBy,
                                                                               UpdatedDate  = _serviceComponent.Resolver.UpdatedDate
            };


            _targetServiceComponent.Resolver = newResolver;
            _unitOfWork.Save();

            if (_serviceComponent.Resolver.OperationalProcessTypes != null && _serviceComponent.Resolver.OperationalProcessTypes.Any())
            {
                var operationalProcessTypeProcessor = new OperationalProcessTypeProcessor(newResolver, _serviceComponent.Resolver.OperationalProcessTypes, _dataContext, _unitOfWork);
                operationalProcessTypeProcessor.Execute();
            }
        }