public void GetAllAddressBookTest() { AddressBookQuery addQuery = new AddressBookQuery(); List <AddressBook> addresses = addQuery.GetAllAddressBook(); Assert.AreEqual(3, addresses.Count); }
/// <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); }
public void GetAddressBookByNameTest() { string name = "Robert"; AddressBookQuery addQuery = new AddressBookQuery(); AddressBook address = addQuery.GetAddressBookByName(name); Assert.AreEqual(name, address.AddressName); }
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); }
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; } }
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)); } }