public IHttpActionResult PutMasterDataInfo(int id, MasterDataInfo masterDataInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != masterDataInfo.Id)
            {
                return(BadRequest());
            }

            db.Entry(masterDataInfo).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MasterDataInfoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public void Add(MasterDataInfo masterDataInfo)
        {
            var result = masterDataDomain.Add(masterDataInfo.AutoMapTo <BussnessDomainModule.MasterData.MasterData>());


            // return result;
        }
        public IHttpActionResult GetMasterDataInfo(int id)
        {
            MasterDataInfo masterDataInfo = db.MasterDataInfos.Find(id);

            if (masterDataInfo == null)
            {
                return(NotFound());
            }

            return(Ok(masterDataInfo));
        }
        public IHttpActionResult PostMasterDataInfo(MasterDataInfo masterDataInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.MasterDataInfos.Add(masterDataInfo);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = masterDataInfo.Id }, masterDataInfo));
        }
        public IHttpActionResult DeleteMasterDataInfo(int id)
        {
            MasterDataInfo masterDataInfo = db.MasterDataInfos.Find(id);

            if (masterDataInfo == null)
            {
                return(NotFound());
            }

            db.MasterDataInfos.Remove(masterDataInfo);
            db.SaveChanges();

            return(Ok(masterDataInfo));
        }
        public ResponseMasterDataInfo GetTableContents(Guid costCentreApplicationId, string entityName)
        {
            MasterDataCollective mdc = (MasterDataCollective)Enum.Parse(typeof(MasterDataCollective), entityName, true);

            MasterDataInfo mdi = new MasterDataInfo { EntityName = entityName };
            int entityId = (int)mdc;

            MasterDataEnvelope envelope = null;

            envelope = _clientMasterDataTrackerRepository.GetTableContents(costCentreApplicationId, entityId);

            List<MasterBaseDTO> masterBaseDTOList = new List<MasterBaseDTO>();
            if (envelope == null)
            {
                envelope = new MasterDataEnvelope()
                {
                    masterData = new List<MasterEntity>(),
                    masterDataName = ""
                };
            }

            foreach (MasterEntity entity in envelope.masterData)
            {
                MasterBaseDTO masterBaseDTO = MapResolver(mdc, entity);
                if (masterBaseDTO == null)
                    continue;
                masterBaseDTOList.Add(masterBaseDTO);

            }

            mdi.MasterDataItems = masterBaseDTOList.ToArray();

            return new ResponseMasterDataInfo()
            {
                ErrorInfo = "Success",
                MasterData = mdi
            };
        }
        public ResponseMasterDataInfo GetPayments(Guid costCentreApplicationId)
        {
            MasterDataInfo mdi = new MasterDataInfo { EntityName = "Payment" };
            // int entityId = (int)mdc;

            MasterDataEnvelope envelope = null;

            envelope = _clientMasterDataTrackerRepository.GetPayments(costCentreApplicationId);

            List<MasterBaseDTO> masterBaseDTOList = new List<MasterBaseDTO>();
            if (envelope == null)
            {
                envelope = new MasterDataEnvelope()
                {
                    masterData = new List<MasterEntity>(),
                    masterDataName = ""
                };
            }

            foreach (MasterEntity entity in envelope.masterData)
            {
                MasterBaseDTO masterBaseDTO = masterDataToDTOMapping.Map(entity as PaymentTracker);
                if (masterBaseDTO == null)
                    continue;
                masterBaseDTOList.Add(masterBaseDTO);

            }

            mdi.MasterDataItems = masterBaseDTOList.ToArray();

            return new ResponseMasterDataInfo()
            {
                ErrorInfo = "Success",
                MasterData = mdi
            };
        }