コード例 #1
0
        public async Task <DavResponse> GetCollection(string url, string authorization)
        {
            var davRequest = new DavRequest()
            {
                Url           = url,
                Authorization = authorization
            };

            return(await RadicaleClient.GetAsync(davRequest).ConfigureAwait(false));
        }
コード例 #2
0
        public async Task <DavResponse> UpdateItem(string url, string authorization, string data, string headerUrl = "")
        {
            var davRequest = new DavRequest()
            {
                Url           = url,
                Authorization = authorization,
                Header        = headerUrl,
                Data          = data
            };

            return(await RadicaleClient.UpdateItemAsync(davRequest).ConfigureAwait(false));
        }
コード例 #3
0
        public async Task <DavResponse> GetCollection(string url, string authorization, string myUri)
        {
            var path           = (new Uri(url).AbsolutePath.StartsWith("/carddav")) ? (new Uri(url).AbsolutePath.Remove(0, 8)) : new Uri(url).AbsolutePath;
            var defaultUrlconn = defaultRadicaleUrl + path;
            var davRequest     = new DavRequest()
            {
                Url           = defaultUrlconn,
                Authorization = authorization,
                Header        = myUri
            };

            return(await RadicaleClient.GetAsync(davRequest).ConfigureAwait(false));
        }
コード例 #4
0
        public async Task <DavResponse> Update(string name, string description, string backgroundColor, Uri uri, string userName, string authorization)
        {
            var requestUrl = GetRadicaleUrl(uri.ToString(), userName, IsShared, isRedirectUrl: true, entityId: Uid);

            var davRequest = new DavRequest()
            {
                Url           = requestUrl,
                Authorization = authorization,
                Data          = GetData(strUpdateTemplate, name, description, backgroundColor)
            };

            return(await RadicaleClient.UpdateAsync(davRequest).ConfigureAwait(false));
        }
コード例 #5
0
        public async Task <DavResponse> UpdateItem(string url, string authorization, string data, string headerUrl = "")
        {
            var path       = (new Uri(url).AbsolutePath.StartsWith("/carddav")) ? (new Uri(url).AbsolutePath.Remove(0, 8)) : new Uri(url).AbsolutePath;
            var requrl     = defaultRadicaleUrl + path;
            var davRequest = new DavRequest()
            {
                Url           = requrl,
                Authorization = authorization,
                Header        = headerUrl,
                Data          = data
            };

            return(await RadicaleClient.UpdateItemAsync(davRequest).ConfigureAwait(false));
        }
コード例 #6
0
        public async Task <DavResponse> Create(string name, string description, string backgroundColor, string uri, string authorization, bool isReadonly = true)
        {
            var rewriterUri = uri.StartsWith("http") ? uri : "";

            var davRequest = new DavRequest()
            {
                Url           = uri,
                Authorization = authorization,
                Header        = rewriterUri,
                Data          = GetData(strTemplate, name, description, backgroundColor)
            };

            return(await RadicaleClient.CreateAsync(davRequest).ConfigureAwait(false));
        }
コード例 #7
0
        public async Task <DavResponse> Update(string name, string description, string backgroundColor, string uri, string userName, string authorization, bool isReadonly = true)
        {
            var addbookId = isReadonly ? readonlyAddBookName : defaultAddBookName;

            var header = uri.StartsWith("http") ? uri : "";

            var requestUrl = defaultRadicaleUrl + "/" + HttpUtility.UrlEncode(userName) + "/" + addbookId;

            var davRequest = new DavRequest()
            {
                Url           = requestUrl,
                Authorization = authorization,
                Data          = GetData(strTemplate, name, description, backgroundColor),
                Header        = header
            };

            return(await RadicaleClient.UpdateAsync(davRequest).ConfigureAwait(false));
        }
コード例 #8
0
        public async Task <DavResponse> CreateAsync(string name, string description, string backgroundColor, Uri uri, string userName, string authorization)
        {
            var requestUrl = uri.Scheme + "://" + uri.Host + "/caldav/" + HttpUtility.UrlEncode(userName) + "/" + Uid + (IsShared ? "-readonly" : "");

            var davRequest = new DavRequest()
            {
                Url           = requestUrl,
                Authorization = authorization,
                Data          = GetData(strCreateTemplate, name, description, backgroundColor)
            };

            try
            {
                return(await RadicaleClient.CreateAsync(davRequest).ConfigureAwait(false));
            }
            catch (Exception ex)
            {
                throw new RadicaleException(ex.Message);
            }
        }
コード例 #9
0
        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);
            }
        }
コード例 #10
0
        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);
                }
            }
        }