public IHttpActionResult RemoveRepositoryFromFavorites(string clientId, string repositoryKey) { bool result = false; try { if (string.IsNullOrWhiteSpace(clientId) || string.IsNullOrWhiteSpace(repositoryKey)) { return(BadRequest()); } result = FavoritesStorage.RemoveRepository(clientId, repositoryKey); if (result) { return(Ok()); } else { return(Conflict()); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult AddRepositoryToFavorites(string clientId, Repository repository) { bool result = false; try { if (string.IsNullOrWhiteSpace(clientId) || repository == null) { return(BadRequest()); } result = FavoritesStorage.AddRepository(clientId, repository); if (result) { return(Created(string.Empty, result)); } else { return(Conflict()); } } catch (Exception ex) { return(InternalServerError(ex)); } }
private void ShowAlert(object sender, PopupMenu.MenuItemClickEventArgs e) { switch (e.Item.ItemId) { case (Resource.Id.action_add_fav_query): ShowAddToFavAlert((name) => { string key = ApplicationContext.GetString(Resource.String.fav_query_storage_key); var storage = new FavoritesStorage <FavoriteQuery>(ApplicationContext, key); storage.AddItem(new FavoriteQuery() { Id = storage.GetUniqueId(), Name = name, Query = searchTextView.Text }); AWidget.Toast.MakeText(this, GetString(Resource.String.saved), AWidget.ToastLength.Short).Show(); }); break; case (Resource.Id.action_add_fav_place): ShowAddToFavAlert((name) => { string key = ApplicationContext.GetString(Resource.String.fav_places_storage_key); var storage = new FavoritesStorage <FavoritePlace>(ApplicationContext, key); storage.AddItem(new FavoritePlace() { Id = storage.GetUniqueId(), Name = name, Place = nearestPlace }); AWidget.Toast.MakeText(this, GetString(Resource.String.saved), AWidget.ToastLength.Short).Show(); }); break; } }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.Inflate(Resource.Layout.favorites_fragment, container, false); string key = Activity.ApplicationContext.GetString(Resource.String.fav_query_storage_key); var storage = new FavoritesStorage <FavoriteQuery>(Activity.ApplicationContext, key); favQueries = storage.GetItems(); adapter = new CustomAdapter(Activity.ApplicationContext); adapter.ItemClicked += (s, item) => { var query = favQueries.Single(x => x.Id == item.Id); ItemClicked?.Invoke(this, query.Query); }; adapter.ItemRemoved += (s, item) => { if (adapter.ItemCount == 0) { recyclerView.Visibility = ViewStates.Gone; emptyTextView.Visibility = ViewStates.Visible; } storage.RemoveItem(favQueries.Single(x => x.Id == item.Id)); }; foreach (var query in favQueries) { adapter.Items.Add(new CustomItem() { Id = query.Id, Name = query.Name, Description = query.Query }); } emptyTextView = view.FindViewById <TextView>(Resource.Id.fav_list_empty); recyclerView = view.FindViewById <RecyclerView>(Resource.Id.recycler_view); recyclerView.SetLayoutManager(new LinearLayoutManager(Activity.ApplicationContext)); recyclerView.SetAdapter(adapter); recyclerView.AddItemDecoration(new ItemDecoration(Activity.ApplicationContext)); recyclerView.HasFixedSize = true; // swipe to remove var mItemTouchHelper = new ItemTouchHelper( new ItemTouchCallback(0, ItemTouchHelper.Left, Activity.ApplicationContext, adapter)); mItemTouchHelper.AttachToRecyclerView(recyclerView); if (adapter.ItemCount == 0) { recyclerView.Visibility = ViewStates.Gone; emptyTextView.Visibility = ViewStates.Visible; } else { recyclerView.Visibility = ViewStates.Visible; emptyTextView.Visibility = ViewStates.Gone; } return(view); }
public IHttpActionResult GetClientFavorites(string clientId) { try { return(Ok(FavoritesStorage.GetRepositories(clientId))); } catch (Exception ex) { return(InternalServerError(ex)); } }
public SearchResult(string clientId, GitHubSearchReponse v) : this() { if (v != null && v.total_count > 0) { this.Count = v.total_count; var favoriteRepositories = FavoritesStorage.GetRepositories(clientId); foreach (var item in v.items) { var repository = new Repository(item); repository.IsFavorite = favoriteRepositories.Exists(f => f.Key == repository.Key); this.Repositories.Add(repository); } } }