コード例 #1
0
        public void Save(Core.Model.Account account)
        {
            SecStatusCode res;

            var match = this.QueryAsRecord(out res);

            if (res == SecStatusCode.Success)
            {
                // Update
                match.Generic   = account.SerializeToNSData();
                match.Account   = account.UserName;
                match.ValueData = NSData.FromString(account.Token);
                SecKeyChain.Update(Query, match);
            }
            else
            {
                // create
                res = SecKeyChain.Add(new SecRecord(SecKind.GenericPassword)
                {
                    Label     = AppResources.ApplicationTitle,
                    Account   = account.UserName,
                    Service   = Service,
                    ValueData = NSData.FromString(account.Token),
                    Generic   = account.SerializeToNSData()
                });

                if (res != SecStatusCode.Success)
                {
                    throw new Exception("Unable to save account data");
                }
            }
        }
コード例 #2
0
        protected virtual Task <AppCore.Result> SendCoreAsync(Core.Model.Mail mail, Core.Model.Account account)
        {
            _client = new SmtpClient()
            {
                Host           = account.Host,
                Port           = account.Port,
                EnableSsl      = account.SSL,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                Credentials    = new NetworkCredential(account.Email, account.Password),
                Timeout        = 20000
            };

            _message = new MailMessage()
            {
                Body            = mail.Content,
                BodyEncoding    = Encoding.UTF8,
                Subject         = mail.Subject,
                SubjectEncoding = Encoding.UTF8,
                From            = new MailAddress(account.Email),
                IsBodyHtml      = true
            };

            mail.EmailReceivers.ForEach(f =>
            {
                if (!String.IsNullOrEmpty(f.Email))
                {
                    _message.To.Add(f.Email);
                }
                if (!String.IsNullOrEmpty(f.Cc))
                {
                    _message.CC.Add(f.Cc);
                }
                if (!String.IsNullOrEmpty(f.Bcc))
                {
                    _message.Bcc.Add(f.Bcc);
                }
            });

            _client.SendMailAsync(_message);

            return(AppCore.Result.SuccessfulAsync());
        }
コード例 #3
0
        public void Save(Core.Model.Account account)
        {
            if (!this.HasAccount)
            {
                var userData = new Bundle();

                userData.PutString(AccountManager.KeyAccountName, account.UserName);
                userData.PutString(AccountManager.KeyAccountType, AccountType);
                userData.PutString(AccountManager.KeyAuthtoken, account.Token);
                userData.PutString(KeyRefreshToken, account.RefreshToken);
                userData.PutString(KeyAuthValidUntil, account.TokenValidUntil.Ticks.ToString());
                userData.PutString(KeyAuthRetrieved, account.TokenRetrieved.Ticks.ToString());

                this.AM.AddAccount(AccountType, "client", null, userData, null, null, null);
            }
            else
            {
                var acc = this.AM.GetAccountsByType(AccountType)[0];
                this.AM.SetUserData(acc, AccountManager.KeyAuthtoken, account.Token);
                this.AM.SetUserData(acc, KeyRefreshToken, account.RefreshToken);
                this.AM.SetUserData(acc, KeyAuthValidUntil, account.TokenValidUntil.Ticks.ToString());
                this.AM.SetUserData(acc, KeyAuthRetrieved, account.TokenRetrieved.Ticks.ToString());
            }
        }