public CapexCategory UpdateCapexCategory(CapexCategory capexCategory)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                ICapexCategoryRepository capexCategoryRepository = _DataRepositoryFactory.GetDataRepository <ICapexCategoryRepository>();

                CapexCategory updatedEntity = null;

                if (capexCategory.CapexCategoryId == 0)
                {
                    updatedEntity = capexCategoryRepository.Add(capexCategory);
                }
                else
                {
                    updatedEntity = capexCategoryRepository.Update(capexCategory);
                }

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

                ICapexCategoryRepository capexCategoryRepository = _DataRepositoryFactory.GetDataRepository <ICapexCategoryRepository>();

                capexCategoryRepository.Remove(capexCategoryId);
            });
        }
        public CapexCategory[] GetAllCapexCategorys()
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                ICapexCategoryRepository capexCategoryRepository = _DataRepositoryFactory.GetDataRepository <ICapexCategoryRepository>();

                IEnumerable <CapexCategory> capexCategorys = capexCategoryRepository.Get().ToArray();

                return capexCategorys.ToArray();
            }));
        }
        public CapexCategory GetCapexCategory(int capexCategoryId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                ICapexCategoryRepository capexCategoryRepository = _DataRepositoryFactory.GetDataRepository <ICapexCategoryRepository>();

                CapexCategory capexCategoryEntity = capexCategoryRepository.Get(capexCategoryId);
                if (capexCategoryEntity == null)
                {
                    NotFoundException ex = new NotFoundException(string.Format("CapexCategory with ID of {0} is not in database", capexCategoryId));
                    throw new FaultException <NotFoundException>(ex, ex.Message);
                }

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

                ICapexCategoryRepository capexCategoryRepository = _DataRepositoryFactory.GetDataRepository <ICapexCategoryRepository>();

                List <CapexCategoryData> capexCategory = new List <CapexCategoryData>();
                IEnumerable <CapexCategoryInfo> capexCategoryInfos = capexCategoryRepository.GetAllCapexCategories().ToArray();

                foreach (var capexCategoryInfo in capexCategoryInfos)
                {
                    capexCategory.Add(
                        new CapexCategoryData
                    {
                        CapexCategoryId = capexCategoryInfo.CapexCategory.EntityId,
                        Code = capexCategoryInfo.CapexCategory.Code,
                        Description = capexCategoryInfo.CapexCategory.Description,
                        Year = capexCategoryInfo.CapexCategory.Year,
                        ParentCode = capexCategoryInfo.Parent.Code,
                        Position = capexCategoryInfo.CapexCategory.Position,
                        ReviewCode = capexCategoryInfo.CapexCategory.ReviewCode,
                        Active = capexCategoryInfo.CapexCategory.Active,
                        Name = capexCategoryInfo.CapexCategory.Name,
                        ParentName = capexCategoryInfo.Parent != null ? capexCategoryInfo.Parent.Name : ""
                    });
                }

                return capexCategory.ToArray();
            }));
        }