public OpexItem UpdateOpexItem(OpexItem opexItem)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexItemRepository opexItemRepository = _DataRepositoryFactory.GetDataRepository <IOpexItemRepository>();

                OpexItem updatedEntity = null;

                if (opexItem.OpexItemId == 0)
                {
                    updatedEntity = opexItemRepository.Add(opexItem);
                }
                else
                {
                    updatedEntity = opexItemRepository.Update(opexItem);
                }

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

                IOpexItemRepository opexItemRepository = _DataRepositoryFactory.GetDataRepository <IOpexItemRepository>();

                opexItemRepository.Remove(opexItemId);
            });
        }
        public OpexItemData[] GetOpexItems(string year, string reviewCode)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexItemRepository opexItemRepository = _DataRepositoryFactory.GetDataRepository <IOpexItemRepository>();

                List <OpexItemData> opexItem = new List <OpexItemData>();
                IEnumerable <OpexItemInfo> opexItemInfos = opexItemRepository.GetOpexItems(year, reviewCode).ToArray();

                foreach (var opexItemInfo in opexItemInfos)
                {
                    opexItem.Add(
                        new OpexItemData
                    {
                        OpexItemId = opexItemInfo.OpexItem.EntityId,
                        Year = opexItemInfo.OpexItem.Year,
                        Budgetable = opexItemInfo.OpexItem.Budgetable,
                        CategoryCode = opexItemInfo.OpexItem.CategoryCode,
                        CategoryName = opexItemInfo.OpexCategory.Name,
                        Code = opexItemInfo.OpexItem.Code,
                        GLCode = opexItemInfo.OpexItem.GLCode,
                        //  GLName = opexItemInfo.OpexItem.,
                        Name = opexItemInfo.OpexItem.Name,
                        Position = opexItemInfo.OpexItem.Position,
                        VolumeBase = opexItemInfo.OpexItem.VolumeBase,
                        ReviewCode = opexItemInfo.OpexItem.ReviewCode,
                        Active = opexItemInfo.OpexItem.Active
                    });
                }

                return opexItem.ToArray();
            }));
        }
        public OpexItem GetOpexItem(int opexItemId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexItemRepository opexItemRepository = _DataRepositoryFactory.GetDataRepository <IOpexItemRepository>();

                OpexItem opexItemEntity = opexItemRepository.Get(opexItemId);
                if (opexItemEntity == null)
                {
                    NotFoundException ex = new NotFoundException(string.Format("OpexItem with ID of {0} is not in database", opexItemId));
                    throw new FaultException <NotFoundException>(ex, ex.Message);
                }

                return opexItemEntity;
            }));
        }