private async void SendDeleteByIdRequest()
        {
            try
            {
                using (var session = this.instanceSettings.GetSession())
                {
                    var request = ItemWebApiRequestBuilder.DeleteItemRequestWithId(this.itemIdField.Text)
                                  .Build();

                    this.ShowLoader();

                    ScDeleteItemsResponse response = await session.DeleteItemAsync(request);

                    this.ProceedResponce(response);
                }
            }
            catch (Exception e)
            {
                AlertHelper.ShowLocalizedAlertWithOkOption("Error", e.Message);
            }
            finally
            {
                BeginInvokeOnMainThread(delegate
                {
                    this.HideLoader();
                });
            }
        }
        public void TestDeleteItemByInvalidIdReturnsException()
        {
            var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.DeleteItemRequestWithId("invalid id")
                                                              .Build());

            Assert.AreEqual("DeleteItemByIdRequestBuilder.ItemId : Item id must have curly braces '{}'", exception.Message);
        }
        private async void DeleteItemById()
        {
            var itemIdField = this.FindViewById <EditText>(Resource.Id.field_item_id);
            var itemId      = itemIdField.Text;

            if (string.IsNullOrWhiteSpace(itemId))
            {
                Toast.MakeText(this, "Please enter item ID", ToastLength.Long).Show();
                return;
            }

            try
            {
                var request = ItemWebApiRequestBuilder.DeleteItemRequestWithId(itemId).Build();

                this.SetProgressBarIndeterminateVisibility(true);

                using (var session = this.prefs.Session)
                {
                    var response = await session.DeleteItemAsync(request);

                    this.SetProgressBarIndeterminateVisibility(false);
                    this.ShowResult(response);
                }
            }
            catch (System.Exception exception)
            {
                this.SetProgressBarIndeterminateVisibility(false);

                var title = this.GetString(Resource.String.text_error);
                DialogHelper.ShowSimpleDialog(this, title, exception.Message);
            }
        }
        public void TestDeleteItemByIdWithEmptyDatabaseDoNotReturnsException()
        {
            var request = ItemWebApiRequestBuilder.DeleteItemRequestWithId(SampleId)
                          .Database("")
                          .Build();

            Assert.IsNotNull(request);
        }
        public void TestDeleteItemByIdWithDuplicateScopeReturnsException()
        {
            var exception = Assert.Throws <InvalidOperationException>(() => ItemWebApiRequestBuilder.DeleteItemRequestWithId(SampleId)
                                                                      .AddScope(ScopeType.Self)
                                                                      .AddScope(ScopeType.Self));

            Assert.AreEqual("DeleteItemByIdRequestBuilder.Scope : Adding scope parameter duplicates is forbidden", exception.Message);
        }
        private async Task <ScDeleteItemsResponse> DeleteAllItems(string database)
        {
            var request = ItemWebApiRequestBuilder.DeleteItemRequestWithId(this.testData.Items.UploadMediaHere.Id)
                          .AddScope(ScopeType.Children)
                          .Database(database)
                          .Build();

            return(await this.session.DeleteItemAsync(request));
        }
        public async void TestDeleteItemByNotExistentId()
        {
            await this.RemoveAll();

            var request = ItemWebApiRequestBuilder.DeleteItemRequestWithId(SampleId).Build();


            var response = await session.DeleteItemAsync(request);

            Assert.AreEqual(0, response.Count);
        }
        public void TestDeleteItemByEmptyIdReturnsException()
        {
            var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.DeleteItemRequestWithId(""));

            Assert.AreEqual("DeleteItemByIdRequestBuilder.ItemId : The input cannot be empty.", exception.Message);
        }