public ActionResult PublicCloset(string userName) { if (!IsPublicCloset(userName)) { throw new NotPublicClosetException(); } int?userId = GetUserId(userName); if (IsUserCloset(userId)) { return(RedirectToAction("Index")); } OutfitSearch search = new OutfitSearch(); search.SortBy = "1"; search.Search = SEARCH_TEXT; search.Page = "1"; search.Season = SeasonHelper.CurrentSeasonId; search.SeasonName = SeasonHelper.CurrentSeason.ToString(); search.PageSize = "25"; OutfitView ov = BuildOutfitView(search, userId); ov.Search.Public = true; return(View("Index", ov)); }
public JsonResult GetResults(OutfitSearch outfitSearch) { OutfitView ov = BuildOutfitView(outfitSearch, this.UserId); if (ov.Outfits.Count == 0) { outfitSearch.Page = "1"; ov = BuildOutfitView(outfitSearch, this.UserId); } return(Json(new OutfitViewLight(ov))); }
public ActionResult Index() { OutfitSearch search = new OutfitSearch(); search.SortBy = "1"; search.Search = SEARCH_TEXT; search.Page = "1"; search.Season = SeasonHelper.CurrentSeasonId; search.PageSize = "25"; search.SeasonName = SeasonHelper.CurrentSeason.ToString(); return(View("Index", BuildOutfitView(search, this.UserId))); }
public JsonResult GetResultPublicCloset(OutfitSearch outfitSearch) { if (!IsPublicCloset(outfitSearch.Username)) { throw new NotPublicClosetException(); } int? userId = GetUserId(outfitSearch.Username); OutfitView ov = BuildOutfitView(outfitSearch, userId.Value); ov.Search.Public = true; return(Json(new OutfitViewLight(ov))); }
public JsonResult SaveFilters(OutfitSearch outfitSearch) { SavedFilter savedFilter = savedFilterRepository.GetByName(outfitSearch.Name, UserId); if (savedFilter == null) { savedFilter = new SavedFilter(); } savedFilter.Color = outfitSearch.Color; savedFilter.CreatedByMe = outfitSearch.CreatedByMe; savedFilter.Garment = outfitSearch.Garment; savedFilter.IsRatedByFriends = outfitSearch.IsRatedByFriends; savedFilter.IsRatedByMe = outfitSearch.IsRatedByMe; savedFilter.Name = outfitSearch.Name; savedFilter.Pattern = outfitSearch.Pattern; savedFilter.Search = outfitSearch.Search; savedFilter.SeasonName = outfitSearch.SeasonName; savedFilter.SelectedEvents = outfitSearch.SelectedEvents; savedFilter.SelectedFlavors = outfitSearch.SelectedFlavors; savedFilter.Trend = outfitSearch.Trend; savedFilter.UserId = UserId; savedFilter.MyFavorites = outfitSearch.MyFavorites; savedFilter.IsUpToDate = outfitSearch.IsUpToDate; savedFilterRepository.SaveOrUpdate(savedFilter); IList <SavedFilter> lst = savedFilterRepository.GetAllFor(UserId); List <MVCSavedFilter> result = new List <MVCSavedFilter>(); foreach (SavedFilter filter in lst) { if (filter.Name == outfitSearch.Name) { result.Add(new MVCSavedFilter(filter, true)); } else { result.Add(new MVCSavedFilter(filter)); } } return(Json(result)); }
private IList <ClosetOutfitView> Search(out int totalCount, OutfitSearch outfitSearch, RegisteredUser user) { IList <ClosetOutfitView> result = new List <ClosetOutfitView>(); using (SearchEngineService ses = SearchEngineService.GetByCloset(user.Closet.Id)) { string sortBy = string.Empty; switch (outfitSearch.SortBy) { case "1": sortBy = "EditorRating"; break; case "2": sortBy = "MyRating"; break; case "3": sortBy = "FriendRating"; break; case "4": sortBy = "WornDate"; break; } SearchParameters sp = new SearchParameters(); if (outfitSearch.MyFavorites) { sp.MyRating = 5; } if (!string.IsNullOrEmpty(outfitSearch.Search)) { outfitSearch.Search = outfitSearch.Search.Replace(',', ' '); } if (!string.IsNullOrEmpty(outfitSearch.Color)) { outfitSearch.Color = outfitSearch.Color.Replace(',', ' '); } if (!string.IsNullOrEmpty(outfitSearch.Pattern)) { outfitSearch.Pattern = outfitSearch.Pattern.Replace(',', ' '); } sp.FreeText = string.Format("{0} {1} {2}", outfitSearch.Color, outfitSearch.Pattern, outfitSearch.Search); char[] separator = new char[1]; separator[0] = ' '; if (!string.IsNullOrEmpty(outfitSearch.SeasonName)) { sp.Seasons = outfitSearch.SeasonName.Split(separator, StringSplitOptions.RemoveEmptyEntries); } if (!string.IsNullOrEmpty(outfitSearch.Garment) && outfitSearch.Garment != NOCATEGORY) { sp.FreeText += " " + outfitSearch.Garment; } separator[0] = ','; if (!string.IsNullOrEmpty(outfitSearch.SelectedEvents)) { sp.EventTypes = outfitSearch.SelectedEvents.Split(separator, StringSplitOptions.RemoveEmptyEntries); } if (!string.IsNullOrEmpty(outfitSearch.Trend) && outfitSearch.Trend != NOTREND) { Trend trend = trendRepository.GetByName(outfitSearch.Trend); sp.TrendKeywords = new List <string>(trend.Keywords).ToArray(); } if (outfitSearch.CreatedByMe) { sp.CreatedByMe = true; } if (outfitSearch.IsRatedByMe) { sp.IsRatedByMe = true; } if (outfitSearch.IsRatedByFriends) { sp.IsRatedByFriends = true; } if (outfitSearch.IsUpToDate) { sp.IsUpToDate = true; } if (outfitSearch.SelectedFlavors != null && outfitSearch.SelectedFlavors.Split(separator, StringSplitOptions.RemoveEmptyEntries).Length == 1) { sp.FlavorId = Convert.ToInt32(outfitSearch.SelectedFlavors.Split(separator, StringSplitOptions.RemoveEmptyEntries)[0]); } SearchEngineResponse response = ses.Search( sp, (Convert.ToInt32(outfitSearch.Page) * Convert.ToInt32(outfitSearch.PageSize)) - Convert.ToInt32(outfitSearch.PageSize), Convert.ToInt32(outfitSearch.PageSize), sortBy, true); totalCount = response.TotalCount; List <int> lstIds = new List <int>(); foreach (SearchEngineResult engineResult in response.Results) { lstIds.Add(engineResult.EntryId); } if (lstIds.Count > 0) { result = closetOutfitRepository.Search(lstIds, user.Closet.Id); } } return(result); }
private OutfitView BuildOutfitView(OutfitSearch outfitSearch, int?userId) { int totalCount; string originalSearch = outfitSearch.Search; bool showAsPublicCloset = ShowAsPublicCloset(userId); RegisteredUser user = (showAsPublicCloset) ? registeredUserRepository.Get(userId.Value) : registeredUserRepository.Get(this.ProxyLoggedUser.Id); BasicUser currentUser = null; if (User.Identity.IsAuthenticated) { currentUser = registeredUserRepository.Get(this.UserId); } if (!AccessClosetService.CanViewCloset(currentUser, user.Closet)) { throw new NotPublicClosetException(); } if (originalSearch == SEARCH_TEXT) { outfitSearch.Search = string.Empty; } GetOutfitsInfo(showAsPublicCloset); IList <ClosetOutfitView> lstResults = new List <ClosetOutfitView>(); lstResults = this.Search(out totalCount, outfitSearch, user); string userName = Membership.GetUser(user.MembershipUserId).UserName; OutfitView ov = new OutfitView(); ov.Search = new OutfitSearch(); if (showAsPublicCloset) { ov.StyleAlerts = contentService.GetRandomStyleAlerts(); foreach (ClosetOutfitView cov in lstResults) { cov.Disabled = true; cov.ShowAddToMyCloset = true; cov.SendToFriends = false; } userName += "'s Outfits"; } else { ov.StyleAlerts = contentService.GetRandomStyleAlerts((IList <FashionFlavor>)ViewData["fashionFlavors"]); } ov.FilterText = originalSearch; ov.Closet = user.Closet; ov.UserName = userName; ov.Outfits = lstResults; ov.TotalOutfits = totalCount; ov.Season = outfitSearch.Season; ov.PrivacyLevel = user.Closet.PrivacyLevel.ToString(); ov.CurrentPage = outfitSearch.Page; ov.ShowAsPublicCloset = showAsPublicCloset; ov.Search.ShowAsPublicCloset = showAsPublicCloset; ov.Search.Patterns = patterRepository.GetAll() as List <Pattern>; ov.Search.Categories = new List <SelectListItem>(); SelectListItem noCategory = new SelectListItem(); noCategory.Text = NOCATEGORY; noCategory.Value = "0"; ov.Search.Categories.Add(noCategory); ov.Search.Categories.AddRange(GetCategorySelectListItemList(categoryRepository.GetAll())); ov.Search.Trends = new List <SelectListItem>(); SelectListItem noTrend = new SelectListItem(); noTrend.Text = NOTREND; noTrend.Value = "0"; ov.Search.Trends.Add(noTrend); ov.Search.Trends.AddRange(GetTrendSelectListItemList(trendRepository.GetCurrentTrends())); ov.Search.Colors = colorRepository.GetAll() as List <Color>; ov.Search.Page = outfitSearch.Page; ov.Search.Season = outfitSearch.Season; ov.Search.SeasonName = outfitSearch.SeasonName; ov.Search.EventTypes = new List <SelectListItem>(); foreach (EventType eventType in user.EventTypes) { SelectListItem item = new SelectListItem(); item.Text = eventType.Description; item.Value = eventType.Id.ToString(); ov.Search.EventTypes.Add(item); } ov.Search.Flavors = new List <SelectListItem>(); foreach (UserFlavor userFlavor in user.UserFlavors) { SelectListItem item = new SelectListItem(); item.Text = userFlavor.Flavor.Name; item.Value = userFlavor.Flavor.Id.ToString(); ov.Search.Flavors.Add(item); } ov.Search.SavedFilters = savedFilterRepository.GetAllFor(UserId) as List <SavedFilter>; if (user.Closet.FavoriteOutfit != null) { ClosetOutfitView couv = closetOutfitRepository.GetByClosetOutfitId(ov.FavoriteOutfitId); if (couv != null) { ov.FavoriteOutfitId = user.Closet.FavoriteOutfit.Id; ov.FavoriteOutfit = couv.ShortEventTypes + ov.FavoriteOutfitId; } } else { ov.FavoriteOutfit = "None Selected"; } ViewData["procesingCloset"] = user.Closet.CreationStatus == ClosetGarmentStatus.Pending && IsSameUser(user.Id); ViewData["userId"] = user.Id; ViewData["closetUserId"] = user.MembershipUserId; ov.Pager = PagingHelper.Paging(totalCount, Convert.ToInt32(outfitSearch.Page), Convert.ToInt32(outfitSearch.PageSize), 4); ViewData["Pages"] = ov.Pager; //TODO: Hacer modificable este seteo ViewData["StyleAlertsStep"] = 5; foreach (ClosetOutfitView cov in lstResults) { if (cov.OutfitUpdater == null) { cov.OutfitUpdater = outfitUpdaterRepository.Get(ConfigurationManager.AppSettings["DefaultOU"]); } //We also need to be able to obtain the number of impressiones (views) of an outfit updaters. TrackingHelper.SaveOutfitUpdaterInfo(cov.OutfitUpdater.Id.ToString(), cov.ClosetOutfitId.ToString()); } ov.Search.Public = false; return(ov); }