public OpexVolumeBasedSetupData[] GetOpexVolumeBasedSetups(string year, string reviewCode)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexVolumeBasedSetupRepository opexVolumeBasedSetupRepository = _DataRepositoryFactory.GetDataRepository <IOpexVolumeBasedSetupRepository>();

                List <OpexVolumeBasedSetupData> opexVolumeBasedSetup = new List <OpexVolumeBasedSetupData>();
                IEnumerable <OpexVolumeBasedSetupInfo> opexVolumeBasedSetupInfos = opexVolumeBasedSetupRepository.GetOpexVolumeBasedSetups(year, reviewCode).ToArray();

                foreach (var opexVolumeBasedSetupInfo in opexVolumeBasedSetupInfos)
                {
                    opexVolumeBasedSetup.Add(
                        new OpexVolumeBasedSetupData
                    {
                        OpexVolumeBasedSetupId = opexVolumeBasedSetupInfo.OpexVolumeBasedSetup.EntityId,
                        Year = opexVolumeBasedSetupInfo.OpexVolumeBasedSetup.Year,
                        ReviewCode = opexVolumeBasedSetupInfo.OpexVolumeBasedSetup.ReviewCode,
                        OpexCode = opexVolumeBasedSetupInfo.OpexVolumeBasedSetup.OpexCode,
                        //  OpexName = opexVolumeBasedSetupInfo.OpexVolumeBasedSetup.,
                        ProductCode = opexVolumeBasedSetupInfo.OpexVolumeBasedSetup.ProductCode,
                        ProductName = opexVolumeBasedSetupInfo.Product.Name,
                        Active = opexVolumeBasedSetupInfo.OpexVolumeBasedSetup.Active
                    });
                }

                return opexVolumeBasedSetup.ToArray();
            }));
        }
        public OpexVolumeBasedSetup UpdateOpexVolumeBasedSetup(OpexVolumeBasedSetup opexVolumeBasedSetup)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexVolumeBasedSetupRepository opexVolumeBasedSetupRepository = _DataRepositoryFactory.GetDataRepository <IOpexVolumeBasedSetupRepository>();

                OpexVolumeBasedSetup updatedEntity = null;

                if (opexVolumeBasedSetup.OpexVolumeBasedSetupId == 0)
                {
                    updatedEntity = opexVolumeBasedSetupRepository.Add(opexVolumeBasedSetup);
                }
                else
                {
                    updatedEntity = opexVolumeBasedSetupRepository.Update(opexVolumeBasedSetup);
                }

                return updatedEntity;
            }));
        }
        public void DeleteOpexVolumeBasedSetup(int opexVolumeBasedSetupId)
        {
            ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexVolumeBasedSetupRepository opexVolumeBasedSetupRepository = _DataRepositoryFactory.GetDataRepository <IOpexVolumeBasedSetupRepository>();

                opexVolumeBasedSetupRepository.Remove(opexVolumeBasedSetupId);
            });
        }
        public OpexVolumeBasedSetup GetOpexVolumeBasedSetup(int opexVolumeBasedSetupId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexVolumeBasedSetupRepository opexVolumeBasedSetupRepository = _DataRepositoryFactory.GetDataRepository <IOpexVolumeBasedSetupRepository>();

                OpexVolumeBasedSetup opexVolumeBasedSetupEntity = opexVolumeBasedSetupRepository.Get(opexVolumeBasedSetupId);
                if (opexVolumeBasedSetupEntity == null)
                {
                    NotFoundException ex = new NotFoundException(string.Format("OpexVolumeBasedSetup with ID of {0} is not in database", opexVolumeBasedSetupId));
                    throw new FaultException <NotFoundException>(ex, ex.Message);
                }

                return opexVolumeBasedSetupEntity;
            }));
        }