public CapexItem UpdateCapexItem(CapexItem capexCost)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                ICapexItemRepository capexCostRepository = _DataRepositoryFactory.GetDataRepository <ICapexItemRepository>();

                CapexItem updatedEntity = null;

                if (capexCost.CapexItemId == 0)
                {
                    updatedEntity = capexCostRepository.Add(capexCost);
                }
                else
                {
                    updatedEntity = capexCostRepository.Update(capexCost);
                }

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

                ICapexItemRepository capexCostRepository = _DataRepositoryFactory.GetDataRepository <ICapexItemRepository>();

                capexCostRepository.Remove(capexCostId);
            });
        }
        public CapexItem[] GetAllCapexItems()
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                ICapexItemRepository capexCostRepository = _DataRepositoryFactory.GetDataRepository <ICapexItemRepository>();

                IEnumerable <CapexItem> capexCost = capexCostRepository.Get().ToArray();

                return capexCost.ToArray();
            }));
        }
        public CapexItem GetCapexItem(int capexCostId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                ICapexItemRepository capexCostRepository = _DataRepositoryFactory.GetDataRepository <ICapexItemRepository>();

                CapexItem capexCostEntity = capexCostRepository.Get(capexCostId);
                if (capexCostEntity == null)
                {
                    NotFoundException ex = new NotFoundException(string.Format(" CapexItem with ID of {0} is not in database", capexCostId));
                    throw new FaultException <NotFoundException>(ex, ex.Message);
                }

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

                ICapexItemRepository capexItemRepository = _DataRepositoryFactory.GetDataRepository <ICapexItemRepository>();

                List <CapexItemData> capexItem = new List <CapexItemData>();
                IEnumerable <CapexItemInfo> capexItemInfos = capexItemRepository.GetCapexItems(year, reviewCode).ToArray();

                foreach (var capexItemInfo in capexItemInfos)
                {
                    capexItem.Add(
                        new CapexItemData
                    {
                        CapexItemId = capexItemInfo.CapexItem.EntityId,
                        Year = capexItemInfo.CapexItem.Year,
                        ReviewCode = capexItemInfo.CapexItem.ReviewCode,
                        Budgetable = capexItemInfo.CapexItem.Budgetable,
                        CategoryCode = capexItemInfo.CapexItem.CategoryCode,
                        CategoryName = capexItemInfo.CapexCategory.Name,
                        Code = capexItemInfo.CapexItem.Code,
                        Cost = capexItemInfo.CapexItem.Cost,
                        Name = capexItemInfo.CapexItem.Name,
                        Position = capexItemInfo.CapexItem.Position,
                        //  ReviewName = capexItemInfo.CapexCategory.Code,
                        Active = capexItemInfo.CapexItem.Active
                    });
                }

                return capexItem.ToArray();
            }));
        }