public void UpdateWithTwitterAndSkypeID()
        {
            CrudProxy proxy = new ContactProxy();
            ContactDto dto1 = this.GetContact1();
            dto1.TwitterId = "Contact1TwitterId1";
            dto1.SkypeId = "Contact1SkypeId1";
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after insert.");

            dto1.TwitterId = null;
            dto1.SkypeId = "Contact1SkypeIdNew";
            proxy.Update(dto1);

            dto1 = (ContactDto)proxy.GetByUid(dto1.Uid);
            Assert.AreEqual(null, dto1.TwitterId, "Incorrect twitter ID");
            Assert.AreEqual("Contact1SkypeIdNew", dto1.SkypeId, "Incorrect skype ID");
        }
        public void CanMarkAContactAsAContractor()
        {
            CrudProxy proxy = new ContactProxy();
            ContactDto contact = GetContact1();
            proxy.Insert(contact);

            var fromDb = (ContactDto)proxy.GetByUid(contact.Uid);
            Assert.IsFalse(((ContactType)fromDb.ContactType).HasFlag(ContactType.Contractor), "Shouldn't be flagged a contactor.");

            var contactTypeFlag = ContactType.Contractor | ContactType.Supplier;
            contact.ContactType = (int)contactTypeFlag;
            proxy.Update(contact);

            fromDb = (ContactDto)proxy.GetByUid(contact.Uid);
            Assert.AreEqual((int)contactTypeFlag, fromDb.ContactType, "Incorrect contact type.");

            var contactType = (ContactType)fromDb.ContactType;
            Assert.IsTrue(contactType.HasFlag(ContactType.Contractor), "IsContractor should be true.");
            Assert.IsTrue(contactType.HasFlag(ContactType.Supplier), "IsSupplier should be true.");
            Assert.IsFalse(contactType.HasFlag(ContactType.Customer), "IsCustomer should be false.");
        }
        public void UpdateWithLinkedInPublicProfile()
        {
            CrudProxy proxy = new ContactProxy();
            ContactDto dto1 = this.GetContact1();
            dto1.LinkedInPublicProfile = "http://www.linkedin.com/pub/kasun-amarasinghe/5/984/b5b";
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after insert.");

            dto1.LinkedInPublicProfile = "http://www.linkedin.com/in/marclehmann";
            proxy.Update(dto1);

            dto1 = (ContactDto)proxy.GetByUid(dto1.Uid);
            Assert.AreEqual("http://www.linkedin.com/in/marclehmann", dto1.LinkedInPublicProfile, "Incorrect LinkedIn Public Profile");
        }
        public void UpdateWithDefaultPurchaseDiscount()
        {
            CrudProxy proxy = new ContactProxy();
            ContactDto contact = GetContact1();
            contact.DefaultPurchaseDiscount = 15.75M;
            proxy.Insert(contact);

            contact.DefaultPurchaseDiscount = 14.75M;
            proxy.Update(contact);

            ContactDto fromDb = (ContactDto)proxy.GetByUid(contact.Uid);
            AssertEqual(contact, fromDb);
        }
        public void UpdateWithCustomField()
        {
            CrudProxy proxy = new ContactProxy();
            ContactDto dto1 = this.GetContact1();
            dto1.CustomField1 = "This is custom field 1";
            dto1.CustomField2 = "This is custom field 2";
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after insert.");

            dto1.CustomField1 = null;
            dto1.CustomField2 = "AAA";
            proxy.Update(dto1);

            dto1 = (ContactDto)proxy.GetByUid(dto1.Uid);
            Assert.AreEqual(null, dto1.CustomField1, "Incorrect custom field 1");
            Assert.AreEqual("AAA", dto1.CustomField2, "Incorrect custom field 2");
        }
        public void UpdateContactOrganizationDetails()
        {
            CrudProxy proxy = new ContactProxy();
            ContactDto dto1 = this.GetContact1();
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            int tempContactUid = dto1.Uid;
            string lastUpdatedUid = dto1.LastUpdatedUid;

            dto1 = this.GetContact2();
            dto1.OrganisationName = "Updated Organization Name";
            dto1.OrganisationAbn = "U1234567";
            dto1.OrganisationPosition = "Updated Organization Position";
            dto1.OrganisationWebsite = "www.updatedorg.com";

            dto1.Uid = tempContactUid;
            dto1.LastUpdatedUid = lastUpdatedUid;
            proxy.Update(dto1);

            var tmpDto = (ContactDto)proxy.GetByUid(dto1.Uid);
            AssertEqual(dto1, tmpDto);
        }
        public void Update()
        {
            CrudProxy proxy = new ContactProxy();
            ContactDto dto1 = this.GetContact1();
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            int tempContactUid = dto1.Uid;
            string lastUpdatedUid = dto1.LastUpdatedUid;

            dto1 = this.GetContact2();
            dto1.Uid = tempContactUid;
            dto1.LastUpdatedUid = lastUpdatedUid;
            proxy.Update(dto1);

            AssertEqual(dto1, (ContactDto)proxy.GetByUid(dto1.Uid));
        }