public void Delete(string uri, Guid userID, string email, int tenantId = 0)
        {
            var authorization = GetSystemAuthorization();
            var deleteUrlBook = GetRadicaleUrl(uri, email.ToLower(), true, true);
            var davRequest    = new DavRequest()
            {
                Url           = deleteUrlBook,
                Authorization = authorization
            };

            try
            {
                RadicaleClient.RemoveAsync(davRequest).ConfigureAwait(false);
                var dbConn = new DbRadicale();
                dbConn.RemoveCardDavUser(tenantId, userID.ToString());
            }
            catch (Exception ex)
            {
                Logger.Error("ERROR: " + ex.Message);
            }
        }
        public void UpdateItemForAllAddBooks(List <string> emailList, string uri, CardDavItem user, int tenantId = 0, string changedEmail = null)
        {
            var authorization = GetSystemAuthorization();

            if (changedEmail != null)
            {
                var deleteUrlBook = GetRadicaleUrl(uri, changedEmail.ToLower(), true, true);
                var davRequest    = new DavRequest()
                {
                    Url           = deleteUrlBook,
                    Authorization = authorization
                };
                RadicaleClient.RemoveAsync(davRequest).ConfigureAwait(false);

                try
                {
                    var dbConn = new DbRadicale();
                    dbConn.RemoveCardDavUser(tenantId, user.ID.ToString());
                }
                catch (Exception ex)
                {
                    Logger.Error("ERROR: " + ex.Message);
                }
            }

            foreach (string email in emailList)
            {
                try
                {
                    var currentEmail = email.ToLower();
                    var userData     = GetUserSerialization(user);
                    var requestUrl   = GetRadicaleUrl(uri, currentEmail, true, true, itemID: user.ID.ToString());
                    UpdateItem(requestUrl, authorization, userData, uri).ConfigureAwait(false);
                }
                catch (Exception ex)
                {
                    Logger.Error("ERROR: " + ex.Message);
                }
            }
        }
        public async Task <DavResponse> DeleteCardDavAddressBook()
        {
            var currUser         = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID);
            var currentUserEmail = currUser.Email;
            var cardDavAB        = new CardDavAddressbook();
            var authorization    = cardDavAB.GetSystemAuthorization();
            var myUri            = HttpContext.Current.Request.GetUrlRewriter();
            var requestUrlBook   = cardDavAB.GetRadicaleUrl(myUri.ToString(), currentUserEmail, true, true);
            var tenant           = CurrentTenant;
            var davRequest       = new DavRequest()
            {
                Url           = requestUrlBook,
                Authorization = authorization,
                Header        = myUri.ToString()
            };
            await RadicaleClient.RemoveAsync(davRequest).ConfigureAwait(false);

            try
            {
                var dbConn = new DbRadicale();
                dbConn.RemoveCardDavUser(tenant, currUser.ID.ToString());

                return(new DavResponse()
                {
                    Completed = true,
                    Data = Resource.RadicaleCardDavDeleteMessage
                });
            }
            catch (Exception ex)
            {
                Log.Error("ERROR: " + ex.Message);
                return(new DavResponse()
                {
                    Completed = false,
                    Error = ex.Message
                });
            }
        }