Exemplo n.º 1
0
        public IHttpActionResult AdvancedSearch(AdvancedSearchModel model)

        {
            List <UserWithCountryIconInfo> userList = new List <UserWithCountryIconInfo>();

            try
            {
                var allUserList = _userService.GetAllUsersWithCountryFlag().ToList();
                if (!string.IsNullOrEmpty(model.Address))
                {
                    model.Address = model.Address.ToLower();
                    allUserList   = allUserList.Where(a => a.Address.ToLower().Contains(model.Address)).ToList();
                }
                if (model.NatioanlityId > 0)
                {
                    allUserList = allUserList.Where(a => a.Country_Id == model.NatioanlityId).ToList();
                }
                if (model.LangLevelId > 0)
                {
                    allUserList = allUserList.Where(a => a.LagLevel_ID == model.LangLevelId).ToList();
                }
                var userLangList = _userLanguageService.GetAllUsersLanguages().ToList();
                if (model.LearningLangId > 0)
                {
                    userLangList = userLangList.Where(a => a.Learning_LanguageId == model.LearningLangId).ToList();
                }
                if (model.NativeLangId > 0)
                {
                    userLangList = userLangList.Where(a => a.Native_LanguageId == model.NativeLangId).ToList();
                }
                string userIdList = string.Empty;
                if (userLangList.Count > 0)
                {
                    foreach (var item in userLangList)
                    {
                        if (string.IsNullOrEmpty(userIdList))
                        {
                            userIdList = item.User_Id.ToString();
                        }
                        else
                        {
                            userIdList = userIdList + "," + item.User_Id.ToString();
                        }
                    }
                }

                List <LanguageDetails> langList = _langService.GetAllLangugaes().ToList();
                foreach (var item in allUserList)
                {
                    if (!string.IsNullOrEmpty(userIdList))
                    {
                        if (userIdList.Contains(item.User_Id.ToString()))
                        {
                            UserWithCountryIconInfo details = new UserWithCountryIconInfo();
                            details.Address     = item.Address;
                            details.Country_Id  = item.Country_Id;
                            details.CreatedTime = item.CreatedTime;
                            details.DeviceId    = item.DeviceId;
                            details.Dob         = item.Dob;
                            details.Email_Id    = item.Email_Id;
                            details.Flag_Icon   = item.Flag_Icon;
                            details.Gender      = item.Gender;
                            details.Icon_Path   = countryIconPath + item.Flag_Icon;
                            if (string.IsNullOrEmpty(item.ImagePath))
                            {
                                details.ImagePath = noImagePath;
                            }
                            else
                            {
                                var extension = item.ImagePath.Split('.')[1];
                                var imageName = item.ImagePath.Split('.')[0] + "_thumbnail";
                                details.ImagePath = proImagePath + imageName + "." + extension;
                            }
                            // details.ImagePath = proImagePath + item.ImagePath;
                            details.Interests             = item.Interests;
                            details.IsVerified            = item.IsVerified;
                            details.LagLevel_ID           = item.LagLevel_ID;
                            details.LearningAbbrv         = langList.Where(a => a.Language_Id == item.Learning_LanguageId).FirstOrDefault().Abbreviation;
                            details.Name                  = item.Name;
                            details.NativeAbbrv           = langList.Where(a => a.Language_Id == item.Native_LanguageId).FirstOrDefault().Abbreviation;
                            details.Self_Introduction     = item.Self_Introduction;
                            details.TravelDestination_CId = item.TravelDestination_CId;
                            details.TrevoId               = item.TrevoId;
                            details.User_Id               = item.User_Id;
                            userList.Add(details);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e.Message)));
            }
            return(Ok(userList));
        }