public MainResponse GetHorseDetail(int horseId)
        {
            var horse = _horseRepository.GetSingle(x => x.HorseId == horseId && x.IsActive == true && x.IsDeleted == false);

            if (horse != null && horse.HorseId > 0)
            {
                var horseType   = _globalCodeRepository.GetSingle(x => x.GlobalCodeId == horse.HorseTypeId);
                var horseDetail = _mapper.Map <GetHorses>(horse);
                horseDetail.HorseType   = horseType.CodeName;
                _mainResponse.GetHorses = horseDetail;
                _mainResponse.Success   = true;
            }
            else
            {
                _mainResponse.Message = Constants.NO_RECORD_FOUND;
                _mainResponse.Success = false;
            }
            return(_mainResponse);
        }
        public MainResponse AddUpdateSponsorDistribution(SponsorDistributionRequest request)
        {
            int idNumber = 0;

            Int32.TryParse(request.TypeId, out idNumber);
            if (idNumber <= 0)
            {
                _mainResponse.Message = Constants.INVALID_ID_NUMBER;
                _mainResponse.Success = false;
                return(_mainResponse);
            }
            var sponsortypes = _GlobalCodeRepository.GetCodes("SponsorTypes");

            var classsponsortype = sponsortypes.globalCodeResponse.Where(x => x.CodeName == "Class").FirstOrDefault();

            if (request.SponsorDistributionId <= 0)
            {
                decimal sponsorAmount = Convert.ToDecimal(_SponsorRepository.GetSingle(x => x.SponsorId == request.SponsorId).AmountReceived);

                decimal sponsorexhibitorPaid    = _SponsorExhibitorRepository.GetAll(x => x.SponsorId == request.SponsorId && x.IsDeleted == false).Select(x => x.SponsorAmount).Sum();
                decimal sponsordistributionPaid = _SponsorDistributionRepository.GetAll(x => x.SponsorId == request.SponsorId && x.IsDeleted == false).Select(x => x.TotalDistribute).Sum();

                decimal checkSponsorAmount = sponsorAmount - (sponsorexhibitorPaid + sponsordistributionPaid);
                if (checkSponsorAmount <= 0)
                {
                    _mainResponse.Message = Constants.SPONSOR_NO_FUND;
                    _mainResponse.Success = false;
                    return(_mainResponse);
                }
                decimal checkAddedAmount = checkSponsorAmount - request.TotalDistribute;
                if (checkAddedAmount < 0)
                {
                    _mainResponse.Message = Constants.SPONSOR_NO_FUND;
                    _mainResponse.Success = false;
                    return(_mainResponse);
                }
                var sponsorType = _GlobalCodeRepository.GetSingle(x => x.GlobalCodeId == request.SponsorTypeId);

                if (sponsorType.CodeName == "Ad" || sponsorType.CodeName == "Cooler" || sponsorType.CodeName == "Patron")
                {
                    var sponsorAdExist = _SponsorDistributionRepository.GetSingle(x => x.TypeId == Convert.ToString(idNumber) &&
                                                                                  x.SponsorTypeId != classsponsortype.GlobalCodeId && x.IsDeleted == false);



                    if (sponsorAdExist != null)
                    {
                        _mainResponse.Message = Constants.AD_NUMBER_EXIST;
                        _mainResponse.Success = false;
                        return(_mainResponse);
                    }
                }
                request.TypeId = Convert.ToString(idNumber);
                var sponsorDistribution = _Mapper.Map <SponsorDistributions>(request);
                sponsorDistribution.IsActive    = true;
                sponsorDistribution.IsDeleted   = false;
                sponsorDistribution.CreatedDate = DateTime.Now;
                _SponsorDistributionRepository.Add(sponsorDistribution);
                _mainResponse.Message = Constants.RECORD_ADDED_SUCCESS;
                _mainResponse.Success = true;
            }
            else
            {
                var sponsorDistribution = _SponsorDistributionRepository.GetSingle(x => x.SponsorDistributionId == request.SponsorDistributionId);
                if (sponsorDistribution != null && sponsorDistribution.SponsorDistributionId > 0)
                {
                    sponsorDistribution.SponsorId       = request.SponsorId;
                    sponsorDistribution.SponsorTypeId   = request.SponsorTypeId;
                    sponsorDistribution.TotalDistribute = request.TotalDistribute;
                    sponsorDistribution.AdTypeId        = Convert.ToInt32(request.AdTypeId);
                    sponsorDistribution.TypeId          = request.TypeId;
                    sponsorDistribution.ModifiedDate    = DateTime.Now;

                    _SponsorDistributionRepository.Update(sponsorDistribution);
                    _mainResponse.Message = Constants.RECORD_UPDATE_SUCCESS;
                    _mainResponse.Success = true;
                }
                else
                {
                    _mainResponse.Message = Constants.NO_RECORD_EXIST_WITH_ID;
                    _mainResponse.Success = false;
                }
            }
            return(_mainResponse);
        }