public MainResponse AddUpdateClassSponsor(ClassSponsorRequest request)
 {
     if (request.ClassSponsorId <= 0)
     {
         var checkexist = _ClassSponsorRepository.GetSingle(x => x.ClassId == request.ClassId && x.SponsorId == request.SponsorId &&
                                                            x.IsActive == true && x.IsDeleted == false);
         if (checkexist != null && checkexist.ClassSponsorId > 0)
         {
             _mainResponse.Message = Constants.RECORD_AlREADY_EXIST;
             _mainResponse.Success = false;
         }
         else
         {
             var classsponsor = new ClassSponsors
             {
                 SponsorId   = request.SponsorId,
                 ClassId     = request.ClassId,
                 CreatedDate = DateTime.Now,
                 IsActive    = true,
                 IsDeleted   = false
             };
             _ClassSponsorRepository.Add(classsponsor);
             _mainResponse.Message = Constants.RECORD_ADDED_SUCCESS;
             _mainResponse.Success = true;
         }
     }
     else
     {
         var classsponsor = _ClassSponsorRepository.GetSingle(x => x.ClassSponsorId == request.ClassSponsorId);
         if (classsponsor != null && classsponsor.ClassSponsorId > 0)
         {
             classsponsor.SponsorId    = request.SponsorId;
             classsponsor.ClassId      = request.ClassId;
             classsponsor.ModifiedDate = DateTime.Now;
             _ClassSponsorRepository.Update(classsponsor);
             _mainResponse.Message = Constants.RECORD_UPDATE_SUCCESS;
             _mainResponse.Success = true;
         }
         else
         {
             _mainResponse.Message = Constants.NO_RECORD_EXIST_WITH_ID;
             _mainResponse.Success = false;
         }
     }
     return(_mainResponse);
 }
        public MainResponse AddSponsorForExhibitor(AddSponsorForExhibitor addSponsorForExhibitor, string actionBy)
        {
            if (addSponsorForExhibitor.SponsorExhibitorId == 0)
            {
                var sponsorType = _globalCodeRepository.GetSingle(x => x.GlobalCodeId == addSponsorForExhibitor.SponsorTypeId);

                if (sponsorType.CodeName == "Ad")
                {
                    var sponsorAdExist = _sponsorExhibitorRepository.GetSingle(x => x.TypeId == addSponsorForExhibitor.TypeId &&
                                                                               x.IsActive == true && x.IsDeleted == false);

                    if (sponsorAdExist != null)
                    {
                        _mainResponse.Message = Constants.AD_NUMBER_EXIST;
                        _mainResponse.Success = false;
                        return(_mainResponse);
                    }
                }
                if (sponsorType.CodeName == "Class")
                {
                    var sponsorExhibitorClassExist = _sponsorExhibitorRepository.GetSingle(x => x.ExhibitorId == addSponsorForExhibitor.ExhibitorId &&
                                                                                           x.SponsorId == addSponsorForExhibitor.SponsorId && x.SponsorTypeId == addSponsorForExhibitor.SponsorTypeId &&
                                                                                           x.TypeId == addSponsorForExhibitor.TypeId && x.IsActive == true && x.IsDeleted == false);

                    if (sponsorExhibitorClassExist != null)
                    {
                        _mainResponse.Message = Constants.RECORD_AlREADY_EXIST;
                        _mainResponse.Success = false;
                        return(_mainResponse);
                    }

                    var sponsorClass = _classSponsorRepository.GetSingle(x => x.SponsorId == addSponsorForExhibitor.SponsorId &&
                                                                         x.ClassId == Convert.ToInt32(addSponsorForExhibitor.TypeId) && x.IsActive == true && x.IsDeleted == false);

                    if (sponsorClass == null)
                    {
                        var classAge = _classRepository.GetSingle(x => x.ClassId == Convert.ToInt32(addSponsorForExhibitor.TypeId) &&
                                                                  x.IsActive == true && x.IsDeleted == false);
                        var classSpnosor = new ClassSponsors
                        {
                            SponsorId   = addSponsorForExhibitor.SponsorId,
                            ClassId     = Convert.ToInt32(addSponsorForExhibitor.TypeId),
                            AgeGroup    = classAge.AgeGroup,
                            CreatedBy   = actionBy,
                            CreatedDate = DateTime.Now
                        };

                        _classSponsorRepository.Add(classSpnosor);
                    }
                }
                if (sponsorType.CodeName != "Class" && sponsorType.CodeName != "Ad")
                {
                    var sponsorExhibitorExist = _sponsorExhibitorRepository.GetSingle(x => x.ExhibitorId == addSponsorForExhibitor.ExhibitorId &&
                                                                                      x.SponsorId == addSponsorForExhibitor.SponsorId && x.SponsorTypeId == addSponsorForExhibitor.SponsorTypeId &&
                                                                                      x.IsActive == true && x.IsDeleted == false);
                    if (sponsorExhibitorExist != null)
                    {
                        _mainResponse.Message = Constants.RECORD_AlREADY_EXIST;
                        _mainResponse.Success = false;
                        return(_mainResponse);
                    }
                }


                var sponsor = new SponsorExhibitor
                {
                    ExhibitorId   = addSponsorForExhibitor.ExhibitorId,
                    SponsorId     = addSponsorForExhibitor.SponsorId,
                    SponsorTypeId = addSponsorForExhibitor.SponsorTypeId,
                    TypeId        = addSponsorForExhibitor.TypeId,
                    AdTypeId      = addSponsorForExhibitor.AdTypeId,
                    CreatedBy     = actionBy,
                    CreatedDate   = DateTime.Now
                };
                _sponsorExhibitorRepository.Add(sponsor);
                _mainResponse.Message = Constants.EXHIBITOR_SPONSOR_ADDED;
                _mainResponse.Success = true;
            }
            else
            {
                var sponsor = _sponsorExhibitorRepository.GetSingle(x => x.SponsorExhibitorId == addSponsorForExhibitor.SponsorExhibitorId && x.IsActive == true &&
                                                                    x.IsDeleted == false);
                if (sponsor != null && sponsor.SponsorExhibitorId > 0)
                {
                    sponsor.SponsorId     = addSponsorForExhibitor.SponsorId;
                    sponsor.ExhibitorId   = addSponsorForExhibitor.ExhibitorId;
                    sponsor.SponsorTypeId = addSponsorForExhibitor.SponsorTypeId;
                    sponsor.TypeId        = addSponsorForExhibitor.TypeId;
                    sponsor.AdTypeId      = addSponsorForExhibitor.AdTypeId;
                    sponsor.ModifiedDate  = DateTime.Now;
                    _sponsorExhibitorRepository.Update(sponsor);
                    _mainResponse.Message = Constants.EXHIBITOR_SPONSOR_UPDATED;
                    _mainResponse.Success = true;
                }
                else
                {
                    _mainResponse.Message = Constants.NO_RECORD_EXIST_WITH_ID;
                    _mainResponse.Success = false;
                }
            }

            return(_mainResponse);
        }