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

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

                CapexEntry updatedEntity = null;

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

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

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

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

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

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

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

                ICapexEntryRepository capexEntryRepository = _DataRepositoryFactory.GetDataRepository <ICapexEntryRepository>();

                List <CapexEntryData> capexEntry = new List <CapexEntryData>();
                IEnumerable <CapexEntryInfo> capexEntryInfos = capexEntryRepository.GetCapexEntries(year, reviewCode).ToArray();

                foreach (var capexCategoryInfo in capexEntryInfos)
                {
                    capexEntry.Add(
                        new CapexEntryData
                    {
                        CapexEntryId = capexCategoryInfo.CapexEntry.EntityId,
                        Year = capexCategoryInfo.CapexEntry.Year,
                        ReviewCode = capexCategoryInfo.CapexEntry.ReviewCode,
                        CenterType = capexCategoryInfo.CapexEntry.CenterType,
                        CurrencyCode = capexCategoryInfo.CapexEntry.CurrencyCode,
                        CurrencyName = capexCategoryInfo.Currency.Name,
                        DefintionCode = capexCategoryInfo.TeamDefinition.Code,
                        DefintionName = capexCategoryInfo.TeamDefinition.Name,
                        ItemCode = capexCategoryInfo.CapexItem.Code,
                        ItemName = capexCategoryInfo.CapexItem.Name,
                        MisCode = capexCategoryInfo.Team.Code,
                        MisName = capexCategoryInfo.Team.Name,
                        Active = capexCategoryInfo.CapexEntry.Active
                    });
                }

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

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

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

                return capexCostEntity;
            }));
        }