Пример #1
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);
                }
            }
        }
Пример #2
0
        public string GetUserSerialization(CardDavItem user)
        {
            var sex = (user.Sex.HasValue) ? user.Sex.Value ? "M" : "W" : string.Empty;

            var builder = new StringBuilder();

            builder.AppendLine("BEGIN:VCARD");
            builder.AppendLine("UID:" + user.ID.ToString());
            builder.AppendLine("N:" + user.LastName + ";" + user.FirstName);
            builder.AppendLine("FN:" + user.FirstName + " " + user.LastName);
            builder.AppendLine("EMAIL:" + user.Email);
            builder.AppendLine("TEL:" + user.MobilePhone);
            builder.AppendLine($"BDAY:{user.BirthDate:s}");
            builder.AppendLine("TITLE:" + user.Title);
            builder.AppendLine("URL:" + "");
            builder.AppendLine("GENDER:" + sex);
            builder.AppendLine($"REV:{DateTime.Now:s}");
            builder.AppendLine("TZ:" + DateTimeOffset.Now.Offset);
            builder.AppendLine("ORG:");
            builder.AppendLine("END:VCARD");

            return(builder.ToString());
        }