Exemple #1
0
        public void GetAllAddressBookTest()
        {
            AddressBookQuery   addQuery  = new AddressBookQuery();
            List <AddressBook> addresses = addQuery.GetAllAddressBook();

            Assert.AreEqual(3, addresses.Count);
        }
Exemple #2
0
        /// <summary>
        /// Sends email with picture attachment
        /// </summary>
        /// <param name="imagePath">Path to the image on the disk</param>
        public void SendMailForDifferentImages(string imagePath)
        {
            EmailSettings emailSettings = new EmailSettingsQuery().GetEmailSettings();

            MailAddress mailFrom = new MailAddress(emailSettings.SMTPUserName);

            MailMessage mailMessage = new MailMessage()
            {
                IsBodyHtml = true,
                Subject    = "Motion CAPTURED",
                Body       = "<h>Please check the attachments to see what happened!!!</h>",
                Sender     = mailFrom,
                From       = mailFrom
            };

            List <AddressBook> addresses = new AddressBookQuery().GetAllAddressBook();

            foreach (AddressBook address in addresses)
            {
                mailMessage.To.Add(address.EmailAddress);
            }

            mailMessage.CC.Add(mailFrom);

            mailMessage.Attachments.Add(new Attachment(imagePath));

            new EmailSender(emailSettings).SendTheMail(mailMessage);
        }
Exemple #3
0
        public void GetAddressBookByNameTest()
        {
            string           name     = "Robert";
            AddressBookQuery addQuery = new AddressBookQuery();
            AddressBook      address  = addQuery.GetAddressBookByName(name);

            Assert.AreEqual(name, address.AddressName);
        }
Exemple #4
0
        public static async Task <string> ExportAsync(string tenant, AddressBookQuery query, HttpRequestBase request)
        {
            var contacts = await DAL.Contacts.GetContactsAsync(tenant, query).ConfigureAwait(false);

            var vcards = contacts.Select(contact => contact.ToVCard(tenant, request)).ToList();

            string pathToDisk = $"/Tenants/{tenant}/Temp/{Guid.NewGuid()}";

            Directory.CreateDirectory(PathMapper.MapPath(pathToDisk));
            pathToDisk = Path.Combine(pathToDisk, "contacts.vcf");

            string serialized = vcards.Serialize();

            File.WriteAllText(PathMapper.MapPath(pathToDisk), serialized, new UTF8Encoding(false));

            return(pathToDisk);
        }
Exemple #5
0
        public async Task <ActionResult> GetAsync(AddressBookQuery query)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.InvalidModelState(this.ModelState));
            }

            var meta = await AppUsers.GetCurrentAsync().ConfigureAwait(true);

            query.UserId = meta.UserId;

            try
            {
                var model = await Contacts.GetContactsAsync(this.Tenant, query).ConfigureAwait(true);

                return(this.Ok(model.OrderBy(x => x.FormattedName)));
            }
            catch (Exception ex)
            {
                return(this.Failed(ex.Message, HttpStatusCode.InternalServerError));
            }
        }
        public async Task <ActionResult> ExportAsync(AddressBookQuery query)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.InvalidModelState(this.ModelState));
            }

            var meta = await AppUsers.GetCurrentAsync().ConfigureAwait(true);

            query.UserId = meta.UserId;

            try
            {
                string path = await VCardExporter.ExportAsync(this.Tenant, query, this.Request).ConfigureAwait(true);

                return(this.Ok(path));
            }
            catch (Exception ex)
            {
                this.Failed(ex.Message, HttpStatusCode.InternalServerError);
                throw;
            }
        }
Exemple #7
0
        public static async Task <IEnumerable <Contact> > GetContactsAsync(string tenant, AddressBookQuery query)
        {
            using (var db = DbProvider.Get(FrapidDbServer.GetConnectionString(tenant), tenant).GetDatabase())
            {
                var sql = new Sql("SELECT * FROM addressbook.contacts");
                sql.Append("WHERE deleted = @0", false);

                if (!string.IsNullOrWhiteSpace(query.Tags))
                {
                    var tags  = query.Tags.Split(',');
                    int index = 0;

                    foreach (string tag in tags)
                    {
                        if (string.IsNullOrWhiteSpace(tag))
                        {
                            continue;
                        }

                        sql.Append(index == 0 ? "AND (" : "OR");

                        sql.Append("LOWER(tags) LIKE LOWER(@0)", "%" + tag.Trim() + "%");
                        index++;
                    }

                    if (index > 0)
                    {
                        sql.Append(")");
                    }
                }

                if (query.PrivateOnly)
                {
                    sql.Append("AND created_by = @0", query.UserId);
                    sql.Append("AND is_private = @0", true);
                }
                else
                {
                    sql.Append("AND (is_private = @0 OR created_by = @1)", false, query.UserId);
                }

                return(await db.SelectAsync <Contact>(sql).ConfigureAwait(false));
            }
        }