public OpexEntry UpdateOpexEntry(OpexEntry opexEntry)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexEntryRepository opexEntryRepository = _DataRepositoryFactory.GetDataRepository <IOpexEntryRepository>();

                OpexEntry updatedEntity = null;

                if (opexEntry.OpexEntryId == 0)
                {
                    updatedEntity = opexEntryRepository.Add(opexEntry);
                }
                else
                {
                    updatedEntity = opexEntryRepository.Update(opexEntry);
                }

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

                IOpexEntryRepository opexEntryRepository = _DataRepositoryFactory.GetDataRepository <IOpexEntryRepository>();

                opexEntryRepository.Remove(opexEntryId);
            });
        }
        public OpexEntryData[] GetOpexEntries(string year, string reviewCode)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexEntryRepository opexEntryRepository = _DataRepositoryFactory.GetDataRepository <IOpexEntryRepository>();

                List <OpexEntryData> opexEntry = new List <OpexEntryData>();
                IEnumerable <OpexEntryInfo> opexEntryInfos = opexEntryRepository.GetOpexEntries(year, reviewCode).ToArray();

                foreach (var opexEntryInfo in opexEntryInfos)
                {
                    opexEntry.Add(
                        new OpexEntryData
                    {
                        OpexEntryId = opexEntryInfo.OpexEntry.EntityId,
                        Year = opexEntryInfo.OpexEntry.Year,
                        CenterType = opexEntryInfo.OpexEntry.CenterType,
                        CurrencyCode = opexEntryInfo.OpexEntry.CurrencyCode,
                        DefintionCode = opexEntryInfo.TeamDefinition.Code,
                        DefintionName = opexEntryInfo.TeamDefinition.Name,
                        ItemCode = opexEntryInfo.OpexItem.Code,
                        ItemName = opexEntryInfo.OpexItem.Name,
                        MisCode = opexEntryInfo.Team.Code,
                        MisName = opexEntryInfo.Team.Name,
                        Note = opexEntryInfo.OpexEntry.Note,
                        ReviewCode = opexEntryInfo.OpexEntry.ReviewCode,
                        Active = opexEntryInfo.OpexEntry.Active
                    });
                }

                return opexEntry.ToArray();
            }));
        }
        public OpexEntry GetOpexEntry(int opexEntryId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                var groupNames = new List <string>()
                {
                    BudgetModuleDefinition.GROUP_ADMINISTRATOR, BudgetModuleDefinition.GROUP_BUSINESS
                };
                AllowAccessToOperation(BudgetModuleDefinition.SOLUTION_NAME, groupNames);

                IOpexEntryRepository opexEntryRepository = _DataRepositoryFactory.GetDataRepository <IOpexEntryRepository>();

                OpexEntry opexEntryEntity = opexEntryRepository.Get(opexEntryId);
                if (opexEntryEntity == null)
                {
                    NotFoundException ex = new NotFoundException(string.Format("OpexEntry with ID of {0} is not in database", opexEntryId));
                    throw new FaultException <NotFoundException>(ex, ex.Message);
                }

                return opexEntryEntity;
            }));
        }