コード例 #1
0
ファイル: APMCService.cs プロジェクト: sagar-sk15/CAMS
        private bool IsAPMCPresent(APMC apmcMaster, bool IsEdit)
        {
            bool      checkapmcPresence = false;
            Query     query             = new Query();
            Criterion criteriaName      = new Criterion("Name", apmcMaster.Name, CriteriaOperator.Equal);
            Criterion criteriaType      = new Criterion("cv.Name", apmcMaster.Address.CityVillage.Name, CriteriaOperator.Equal);

            if (IsEdit)
            {
                Criterion criteriaId = new Criterion(Constants.APMCID, apmcMaster.APMCId, CriteriaOperator.NotEqual);
                query.Add(criteriaId);
            }
            query.Add(criteriaName);
            query.Add(criteriaType);
            query.AddAlias(new Alias("ad", "Address"));
            query.AddAlias(new Alias("cv", "ad.CityVillage"));
            query.QueryOperator = QueryOperator.And;
            var apmcMasterList = ExecuteCommand(locator => locator.GetRepository <APMC>().FindBy(query));

            if (apmcMasterList.Count() != 0)
            {
                checkapmcPresence = true;
            }
            return(checkapmcPresence);
        }
コード例 #2
0
        private bool IsSWIFTCodePresent1(BankBranch bankbranch)
        {
            bool      checkSWIFTCodePresence = false;
            Query     query        = new Query();
            Criterion criteriaName = new Criterion(Constants.SWIFTCODE, bankbranch.SWIFTCode, CriteriaOperator.Equal);
            Criterion criteriaCAId;

            if (bankbranch.CAId != null)
            {
                criteriaCAId = new Criterion(Constants.CAID, bankbranch.CAId, CriteriaOperator.Equal);
            }
            else
            {
                criteriaCAId = new Criterion(Constants.CAID, null, CriteriaOperator.IsNullOrZero);
            }
            Criterion criteriaBankId = new Criterion("bank.BankId", bankbranch.BranchOfBank.BankId, CriteriaOperator.NotEqual);

            query.Add(criteriaName);
            query.Add(criteriaCAId);
            query.Add(criteriaBankId);
            query.AddAlias(new Alias("bank", "BranchOfBank"));
            query.QueryOperator = QueryOperator.And;
            var SWIFTCodeList = ExecuteCommand(locator => locator.GetRepository <BankBranch>().FindBy(query));

            if (SWIFTCodeList.Count() != 0)
            {
                checkSWIFTCodePresence = true;
            }
            return(checkSWIFTCodePresence);
        }
コード例 #3
0
        //private bool IsCityVillagePresent1(CityVillage cityvillage)
        //{
        //    bool checkCityVillagePresence = false;
        //    Query query = new Query();
        //    Criterion criteriaName = new Criterion(Constants.CITYVILLAGENAME, cityvillage.Name, CriteriaOperator.Equal);
        //    Criterion criteriaType = new Criterion(Constants.CITYORVILLAGE, cityvillage.CityOrVillage, CriteriaOperator.Equal);
        //    Criterion criteriaDistrictId = new Criterion("Dt.DistrictId", cityvillage.DistrictOfCityVillage.DistrictId, CriteriaOperator.Equal);
        //    query.Add(criteriaName);
        //    query.Add(criteriaType);
        //    query.Add(criteriaDistrictId);
        //    query.AddAlias(new Alias("Dt", "DistrictOfCityVillage"));
        //    query.QueryOperator = QueryOperator.And;
        //    var cityvillageList = ExecuteCommand(locator => locator.GetRepository<CityVillage>().FindBy(query));
        //    if (cityvillageList.Count() != 0)
        //    {
        //        checkCityVillagePresence = true;
        //    }
        //    return checkCityVillagePresence;
        //}
        #endregion

        private bool IsCityVillagePresent(CityVillage cityvillage)
        {
            bool      checkCityVillagePresence = false;
            Query     query              = new Query();
            Criterion criteriaName       = new Criterion(Constants.CITYVILLAGENAME, cityvillage.Name, CriteriaOperator.Equal);
            Criterion criteriaType       = new Criterion(Constants.CITYORVILLAGE, cityvillage.CityOrVillage, CriteriaOperator.Equal);
            Criterion criteriaDistrictId = new Criterion("Dt.DistrictId", cityvillage.DistrictOfCityVillage.DistrictId, CriteriaOperator.Equal);
            Criterion criteriaCAId       = new Criterion(Constants.CAID, cityvillage.CAId, CriteriaOperator.Equal);
            Criterion criteriaCAIdNull   = new Criterion(Constants.CAID, null, CriteriaOperator.IsNullOrZero);

            query.AddAlias(new Alias("Dt", "DistrictOfCityVillage"));

            if (cityvillage.CAId == null)
            {
                query.Add(criteriaName);
                query.Add(criteriaCAIdNull);
                query.Add(criteriaDistrictId);
                query.Add(criteriaType);
                query.QueryOperator = QueryOperator.And;
                var cvlist = FindByQuery(query);
                checkCityVillagePresence = (cvlist.TotalRecords != 0) ? true : false;
                //For Update Scenario
                if (checkCityVillagePresence && cvlist.TotalRecords == 1 && cvlist.Entities.ToList().FirstOrDefault().CityVillageId == cityvillage.CityVillageId)
                {
                    checkCityVillagePresence = false;
                }
            }
            else
            {
                query.Add(criteriaName);
                query.Add(criteriaDistrictId);
                query.Add(criteriaType);

                Query subquery = new Query();
                subquery.Add(criteriaCAId);
                subquery.Add(criteriaCAIdNull);
                subquery.QueryOperator = QueryOperator.Or;
                query.AddSubQuery(subquery);

                query.QueryOperator = QueryOperator.And;
                query.CAId          = (int)cityvillage.CAId;

                var cvlist = FindByQuery(query);
                IEnumerable <CityVillageDto> cvDtoList = cvlist.Entities.AsEnumerable();
                checkCityVillagePresence = (cvDtoList.Count() != 0) ? true : false;
                //For Update Scenario
                if (cvDtoList.Count() == 1 && cvDtoList.FirstOrDefault().CityVillageId == cityvillage.CityVillageId)
                {
                    checkCityVillagePresence = false;
                }
                if (cvDtoList.Count() == 1 && cvDtoList.FirstOrDefault().CityVillageId == cityvillage.BaseCityVillageId)
                {
                    checkCityVillagePresence = false;
                }
            }
            return(checkCityVillagePresence);
        }
コード例 #4
0
ファイル: MastersController.cs プロジェクト: sagar-sk15/CAMS
        public CommodityDto GetCommodityByClassId(CommodityDto CommoditymasterDto)
        {
            CommodityClient = new CommodityServiceClient();
            Query     query           = new Query();
            Criterion criteriaClassID = new Criterion("commodityclass.CommodityClassId", CommoditymasterDto.CommoditiesInCommodityClass.CommodityClassId, CriteriaOperator.Equal);

            query.Add(criteriaClassID);
            query.AddAlias(new Alias("commodityclass", "CommoditiesInCommodityClass"));
            var commoditydtos = CommodityClient.FindByQuery(query);

            CommodityClient.Close();
            return(commoditydtos.Entities.FirstOrDefault());
        }
コード例 #5
0
        public virtual void FindDistricts()
        {
            int       stateId       = 1;
            Query     query         = new Query();
            Criterion criteriaState = new Criterion("st.StateId", stateId, CriteriaOperator.Equal);

            query.Add(criteriaState);
            query.AddAlias(new Alias("st", "StateOfDistrict"));

            var result = this.DistrictService.FindByQuery(query);

            Assert.IsTrue(result.Entities.Count > 0, "Districts found");
        }
コード例 #6
0
        private bool IsBankBranchPresent1(BankBranch bankbranch)
        {
            bool      checkBankBranchPresence = false;
            Query     query        = new Query();
            Criterion criteriaName = new Criterion(Constants.BANKBRANCHNAME, bankbranch.Name, CriteriaOperator.Equal);
            Criterion criteriaCAId;

            if (bankbranch.CAId != null)
            {
                criteriaCAId = new Criterion(Constants.CAID, bankbranch.CAId, CriteriaOperator.Equal);
            }
            else
            {
                criteriaCAId = new Criterion(Constants.CAID, null, CriteriaOperator.IsNullOrZero);
            }

            if (bankbranch.BranchOfBank.BankId != 0)
            {
                Criterion criteriaBankId = new Criterion("bank.BankId", bankbranch.BranchOfBank.BankId, CriteriaOperator.Equal);
                query.Add(criteriaBankId);
                query.AddAlias(new Alias("bank", "BranchOfBank"));
            }
            Criterion criteriaCV = new Criterion("cv.CityVillageId", bankbranch.BranchAddress.CityVillage.CityVillageId, CriteriaOperator.Equal);

            query.Add(criteriaName);
            query.Add(criteriaCAId);
            query.Add(criteriaCV);
            query.AddAlias(new Alias("ba", "BranchAddress"));
            query.AddAlias(new Alias("cv", "ba.CityVillage"));
            query.QueryOperator = QueryOperator.And;
            var bankbranchList = ExecuteCommand(locator => locator.GetRepository <BankBranch>().FindBy(query));

            if (bankbranchList.Count() != 0)
            {
                checkBankBranchPresence = true;
            }
            return(checkBankBranchPresence);
        }
コード例 #7
0
        public GetAlbumsByGenreResponse GetAlbumsByGenre(GetAlbumsByGenreRequest request)
        {
            var response = new GetAlbumsByGenreResponse();

            var albumQuery = new Query();

            albumQuery.AddAlias(QueryAlias.CreateAlias <Album>(g => g.Genre));

            albumQuery.Add(Criterion.Create <Album, Genre>(a => a.Genre, g => g.Name, request.Genre, CriteriaOperator.Equal));

            var albums = _albumRepository.FindAll(albumQuery);

            response.Albums = albums.ConvertToAlbumViews();

            return(response);
        }
コード例 #8
0
        public static List <DistrictDto> GetDistricts(int state)
        {
            Query     query         = new Query();
            Criterion criteriaState = new Criterion("st.StateId", state, CriteriaOperator.Equal);

            query.Add(criteriaState);
            query.AddAlias(new Alias("st", "StateOfDistrict"));
            DistrictServiceReference.IDistrictService client = new DistrictServiceClient();
            var districts = client.FindByQuery(query);
            List <DistrictDto> districtList = new List <DistrictDto>();

            districtList = districts.Entities.ToList();
            districtList.Insert(0, new DistrictDto
            {
                DistrictId   = 0,
                DistrictName = "[Select]"
            });
            return(districtList);
        }
コード例 #9
0
        private bool CheckIfPlaceBelongsToTheGivenDistrict(int DistrictId, int CityVillageId)
        {
            bool      isPresent        = false;
            Query     query            = new Query();
            Criterion criteriaDistrict = new Criterion("st.DistrictId", DistrictId, CriteriaOperator.Equal);
            Criterion criteriaPlace    = new Criterion("CityVillageId", CityVillageId, CriteriaOperator.Equal);

            query.Add(criteriaDistrict);
            query.Add(criteriaPlace);
            query.AddAlias(new Alias("st", "DistrictOfCityVillage"));

            CityVillageServiceReference.ICityVillageService client = new CityVillageServiceClient();
            var cityVillage = client.FindByQuery(query);

            if (cityVillage.TotalRecords > 0)
            {
                isPresent = true;
            }
            return(isPresent);
        }
コード例 #10
0
        private bool CheckIfDistrictBelongsToTheGivenState(int StateId, int DistrictId)
        {
            bool isPresent = false;

            Query     query            = new Query();
            Criterion criteriaState    = new Criterion("st.StateId", StateId, CriteriaOperator.Equal);
            Criterion criteriaDistrict = new Criterion("DistrictId", DistrictId, CriteriaOperator.Equal);

            query.Add(criteriaState);
            query.Add(criteriaDistrict);
            query.AddAlias(new Alias("st", "StateOfDistrict"));
            DistrictServiceReference.IDistrictService client = new DistrictServiceClient();
            var districts = client.FindByQuery(query);

            if (districts.TotalRecords > 0)
            {
                isPresent = true;
            }

            return(isPresent);
        }
コード例 #11
0
        public static List <CityVillageDto> GetPlaces(int district)
        {
            Query     query         = new Query();
            Criterion criteriaState = new Criterion("st.DistrictId", district, CriteriaOperator.Equal);

            query.Add(criteriaState);
            query.AddAlias(new Alias("st", "DistrictOfCityVillage"));

            CityVillageServiceReference.ICityVillageService client = new CityVillageServiceClient();
            var cityVillage = client.FindByQuery(query);
            List <CityVillageDto> cityVillageList = new List <CityVillageDto>();

            cityVillageList = cityVillage.Entities.ToList();
            cityVillageList.Insert(0, new CityVillageDto
            {
                CityVillageId = 0,
                CityOrVillage = CityVillageType.City,
                Name          = "[Select]"
            });
            return(cityVillageList);
        }
コード例 #12
0
        public List <BankBranchDto> GetBankBranchList(int BankId)
        {
            UserDto currentUserDto = (UserDto)Session[Constants.SKCURRENTUSER];
            Query   subquery1      = new Query();

            if (Helper.IsCAIdNotNull(currentUserDto))
            {
                Criterion criteriaCAId = new Criterion(Constants.CAID, Helper.GetCAIdOfUser(currentUserDto), CriteriaOperator.Equal);
                subquery1.Add(criteriaCAId);
                Criterion criteriaCAIdNULL = new Criterion(Constants.CAID, null, CriteriaOperator.IsNullOrZero);
                subquery1.Add(criteriaCAIdNULL);
                subquery1.QueryOperator = QueryOperator.Or;
            }
            else
            {
                Criterion criteriaCAIdNULL = new Criterion(Constants.CAID, null, CriteriaOperator.IsNullOrZero);
                subquery1.Add(criteriaCAIdNULL);
            }

            Query query = new Query();

            if (Helper.IsCAIdNotNull(currentUserDto))
            {
                query.CAId = Convert.ToInt32(Helper.GetCAIdOfUser(currentUserDto));
            }
            Criterion criteriaBankId = new Criterion("banks.BankId", BankId, CriteriaOperator.Equal);

            query.Add(criteriaBankId);
            query.AddAlias(new Alias("banks", "BranchOfBank"));
            query.QueryOperator = QueryOperator.And;
            query.AddSubQuery(subquery1);

            Branchclient = new BankBranchServiceClient();
            var BankBranches = Branchclient.FindByQuery(query);

            Branchclient.Close();
            return(BankBranches.Entities.ToList());
        }
コード例 #13
0
        public virtual void FindBranchesOfCA()
        {
            UserDto currentUserDto = UserService.GetById(42);
            Query   subquery1      = new Query();

            if (currentUserDto.UserOfClient.CAId > 0)
            {
                Criterion criteriaCAId = new Criterion(Constants.CAID, currentUserDto.UserOfClient.CAId, CriteriaOperator.Equal);
                subquery1.Add(criteriaCAId);
                Criterion criteriaCAIdNULL = new Criterion(Constants.CAID, null, CriteriaOperator.IsNullOrZero);
                subquery1.Add(criteriaCAIdNULL);
                subquery1.QueryOperator = QueryOperator.Or;
            }
            else
            {
                Criterion criteriaCAIdNULL = new Criterion(Constants.CAID, null, CriteriaOperator.IsNullOrZero);
                subquery1.Add(criteriaCAIdNULL);
            }

            Query query = new Query();

            if (currentUserDto.UserOfClient.CAId > 0)
            {
                query.CAId = Convert.ToInt32(currentUserDto.UserOfClient.CAId);
            }
            Criterion criteriaBankId = new Criterion("banks.BankId", 1, CriteriaOperator.Equal);

            query.Add(criteriaBankId);
            query.AddAlias(new Alias("banks", "BranchOfBank"));
            query.QueryOperator = QueryOperator.And;
            query.AddSubQuery(subquery1);

            var BankBranches = BankBranchService.FindByQuery(query);

            Assert.IsTrue(BankBranches.Entities.ToList().Count > 0, "found bank branch");
        }
コード例 #14
0
ファイル: CommodityService.cs プロジェクト: sagar-sk15/CAMS
        private bool IsCommodityPresent(Commodity commodity, bool IsEdit)
        {
            bool      checkCommodityPresence = false;
            Query     query           = new Query();
            Criterion criteriaName    = new Criterion(Constants.COMMODITYNAME, commodity.Name, CriteriaOperator.Equal);
            Criterion criteriaClassID = new Criterion("commodityclass.CommodityClassId", commodity.CommoditiesInCommodityClass.CommodityClassId, CriteriaOperator.Equal);

            query.Add(criteriaName);
            query.Add(criteriaClassID);
            if (IsEdit)
            {
                Criterion criteriaId = new Criterion(Constants.COMMODITYID, commodity.CommodityId, CriteriaOperator.NotEqual);
                query.Add(criteriaId);
            }
            query.AddAlias(new Alias("commodityclass", "CommoditiesInCommodityClass"));
            query.QueryOperator = QueryOperator.And;
            var commodityList = ExecuteCommand(locator => locator.GetRepository <Commodity>().FindBy(query));

            if (commodityList.Count() != 0)
            {
                checkCommodityPresence = true;
            }
            return(checkCommodityPresence);
        }
コード例 #15
0
        private bool IsBankBranchPresent(BankBranch bankbranch)
        {
            bool      isPresent        = false;
            Query     query            = new Query();
            Criterion criteriaName     = new Criterion(Constants.BANKBRANCHNAME, bankbranch.Name, CriteriaOperator.Equal);
            Criterion criteriaCAId     = new Criterion(Constants.CAID, bankbranch.CAId, CriteriaOperator.Equal);
            Criterion criteriaCAIdNull = new Criterion(Constants.CAID, null, CriteriaOperator.IsNullOrZero);
            Criterion criteriaBankId   = new Criterion("bank.BankId", bankbranch.BranchOfBank.BankId, CriteriaOperator.Equal);

            query.AddAlias(new Alias("bank", "BranchOfBank"));
            Criterion criteriaCV = new Criterion("cv.CityVillageId", bankbranch.BranchAddress.CityVillage.CityVillageId, CriteriaOperator.Equal);

            query.AddAlias(new Alias("ba", "BranchAddress"));
            query.AddAlias(new Alias("cv", "ba.CityVillage"));

            if (bankbranch.CAId == null)
            {
                query.Add(criteriaName);
                query.Add(criteriaCAIdNull);
                query.Add(criteriaBankId);
                query.Add(criteriaCV);
                query.QueryOperator = QueryOperator.And;
                var branchlist = FindByQuery(query);
                isPresent = (branchlist.TotalRecords != 0) ? true : false;
                //For Update Scenario
                if (isPresent && branchlist.TotalRecords == 1 && branchlist.Entities.ToList().FirstOrDefault().BranchId == bankbranch.BranchId)
                {
                    isPresent = false;
                }
            }
            else
            {
                query.Add(criteriaName);
                query.Add(criteriaBankId);
                query.Add(criteriaCV);

                Query subquery = new Query();
                subquery.Add(criteriaCAId);
                subquery.Add(criteriaCAIdNull);
                subquery.QueryOperator = QueryOperator.Or;
                query.AddSubQuery(subquery);

                query.QueryOperator = QueryOperator.And;
                query.CAId          = (int)bankbranch.CAId;

                var branchlist = FindByQuery(query);
                IEnumerable <BankBranchDto> bankbranchDtoList = branchlist.Entities.AsEnumerable();
                isPresent = (bankbranchDtoList.Count() != 0) ? true : false;
                //For Update Scenario
                if (bankbranchDtoList.Count() == 1 && bankbranchDtoList.FirstOrDefault().BranchId == bankbranch.BranchId)
                {
                    isPresent = false;
                }
                if (bankbranchDtoList.Count() == 1 && bankbranchDtoList.FirstOrDefault().BranchId == bankbranch.BaseBranchId)
                {
                    isPresent = false;
                }
            }

            return(isPresent);
        }
コード例 #16
0
        ////function to check wheather chequeDate is greater than 6 months from current date
        //public bool CheckChequeDate(string chequeDate)
        //{
        //    DateTime chequeDDTransactionDate;
        //    double totalDays;
        //    bool isChequeDateGreaterThanSixMonths=false;
        //    if(!string.IsNullOrEmpty(chequeDate))
        //    {
        //        DateTimeFormatInfo dateTimeFormatInfo = new DateTimeFormatInfo();
        //        dateTimeFormatInfo.ShortDatePattern = "dd-MM-yyyy";
        //        dateTimeFormatInfo.DateSeparator = "-";
        //        chequeDDTransactionDate = Convert.ToDateTime(chequeDate, dateTimeFormatInfo);
        //        totalDays = chequeDDTransactionDate.Subtract(DateTime.Now).TotalDays;
        //        if(totalDays >90)
        //        {
        //            isChequeDateGreaterThanSixMonths = true;
        //        }
        //    }
        //    return isChequeDateGreaterThanSixMonths;
        //}
        #endregion

        #region SearchBankandBranch
        public ActionResult SearchBankandBranch()
        {
            bool   flag       = false;
            string bankName   = Request.Params["bankName"];
            string bankBranch = Request.Params["bankBranch"];
            string place      = Request.Params["place"];
            string IFSCCode   = Request.Params["IFSCCode"];
            string MICRCode   = Request.Params["MICRCode"];
            string SWIFTCode  = Request.Params["SWIFTCode"];

            BankBranchServiceReference.BankBranchServiceClient bankBranchServiceClient = new BankBranchServiceClient();
            IList <BankBranchDto> bankBranchDtoList = null;
            Query query = new Query();

            if (!string.IsNullOrEmpty(bankName))
            {
                flag = true;
                Criterion criterionBankName = new Criterion("BranchBank.BankName", bankName, CriteriaOperator.Equal);
                query.AddAlias(new Alias("BranchBank", "BranchOfBank"));
                query.Add(criterionBankName);
            }
            if (!string.IsNullOrEmpty(bankBranch))
            {
                flag = true;
                Criterion criterionBranchName = new Criterion("Name", bankBranch, CriteriaOperator.Equal);
                query.Add(criterionBranchName);
            }
            if (!string.IsNullOrEmpty(place))
            {
                flag = true;
                Criterion criterionplace = new Criterion("cv.Name", place, CriteriaOperator.Equal);
                query.AddAlias(new Alias("ba", "BranchAddress"));
                query.AddAlias(new Alias("cv", "ba.CityVillage"));
                query.Add(criterionplace);
            }
            if (!string.IsNullOrEmpty(IFSCCode))
            {
                flag = true;
                Criterion criterionIFSCCode = new Criterion("IFSCCode", IFSCCode, CriteriaOperator.Equal);
                query.Add(criterionIFSCCode);
            }
            if (!string.IsNullOrEmpty(MICRCode))
            {
                flag = true;
                Criterion criterionMICRCode = new Criterion("MICRCode", MICRCode, CriteriaOperator.Equal);
                query.Add(criterionMICRCode);
            }
            if (!string.IsNullOrEmpty(SWIFTCode))
            {
                flag = true;
                Criterion criterionSWIFTCode = new Criterion("SWIFTCode", SWIFTCode, CriteriaOperator.Equal);
                query.Add(criterionSWIFTCode);
            }
            if (flag)
            {
                query.QueryOperator = QueryOperator.And;
                bankBranchDtoList   = bankBranchServiceClient.FindByQuery(query).Entities;
                bankBranchServiceClient.Close();
                ViewData["SearchBank"] = bankBranchDtoList;
            }
            else
            {
                ViewData["SearchBank"] = null;
            }
            return(PartialView("CBPPopupSearchBankBranchGrid", ViewData["SearchBank"]));
        }
コード例 #17
0
        private Query BuildQueryForUserList(string UserGroupIdList, string UserType, int?CAId)
        {
            //Default Criteria
            Query query = new Query();

            try
            {
                UserDto   CurrentUser = (UserDto)Session[Constants.SKCURRENTUSER];
                Criterion criteriaCAId;
                string[]  ugIdList = UserGroupIdList.Split(';');

                //query.AddAlias(new Alias("UserOfClient", "UserOfClient"));
                //Is SuperAdmin and Ack User
                if (UserType == "AckUser" && !Helper.IsCAIdNotNull(CurrentUser))
                {
                    //query.AddAlias(new Alias("UserOfClient", "UserOfClient",JoinType.LeftOuterJoin));
                    //criteriaCAId = new Criterion("UserOfClient.CAId", null, CriteriaOperator.IsNullOrZero);
                    criteriaCAId = new Criterion("CAId", null, CriteriaOperator.IsNullOrZero);
                    query.Add(criteriaCAId);
                    //IList<Criterion> criList = new List<Criterion>();
                    //criList.Add(criteriaCAId);
                    //query.AddJoinParamteres(new JoinParameters("UserOfClient", "UserOfClient", JoinType.LeftOuterJoin,criList));
                }
                else if (UserType == "CAUser" && (CAId != null || CAId != 0))
                {
                    //query.AddAlias(new Alias("UserOfClient", "UserOfClient"));
                    //criteriaCAId = new Criterion("UserOfClient.CAId", CAId, CriteriaOperator.Equal);
                    criteriaCAId = new Criterion("CAId", CAId, CriteriaOperator.Equal);
                    query.Add(criteriaCAId);
                }
                else
                {
                    //query.AddAlias(new Alias("UserOfClient", "UserOfClient"));
                    //criteriaCAId = new Criterion("UserOfClient.CAId", Helper.GetCAIdOfUser(CurrentUser), CriteriaOperator.Equal);
                    criteriaCAId = new Criterion("CAId", Helper.GetCAIdOfUser(CurrentUser), CriteriaOperator.Equal);
                    query.Add(criteriaCAId);
                }

                Query subquery = null;;
                query.AddAlias(new Alias("ug", "UserWithUserGroups"));
                //Add Filter criteria on selected UserGroups
                Criterion criteriaUserGroup = null;
                foreach (string ugId in ugIdList)
                {
                    int userGroupId = Convert.ToInt32(ugId);
                    if (userGroupId == 0)
                    {
                        //query.AddAlias(new Alias("ug", "UserWithUserGroups"));
                        break;
                    }
                    else
                    {
                        if (userGroupId != -1)
                        {
                            //if (query.Alias.ToList().Count == 0)
                            //    query.AddAlias(new Alias("ug", "UserWithUserGroups"));
                            criteriaUserGroup = new Criterion(Constants.USERGROUPID, userGroupId, CriteriaOperator.Equal);
                            if (subquery == null)
                            {
                                subquery = new Query();
                            }
                            subquery.Add(criteriaUserGroup);
                            subquery.QueryOperator = QueryOperator.Or;
                        }
                    }
                }
                if (subquery != null)
                {
                    query.AddSubQuery(subquery);
                    query.QueryOperator = QueryOperator.And;
                }
            }
            catch (Exception ex)
            {
            }
            return(query);
        }