Пример #1
0
        public void Save(Module4.Contact contact)
        {
            using var txScope = new TransactionScope();

            if (contact.IsNew)
            {
                this.Add(contact);
            }
            else
            {
                this.Update(contact);
            }

            foreach (var addr in contact.Addresses.Where(a => !a.IsDeleted))
            {
                addr.ContactId = contact.Id;

                if (addr.IsNew)
                {
                    this.Add(addr);
                }
                else
                {
                    this.Update(addr);
                }
            }

            foreach (var addr in contact.Addresses.Where(a => a.IsDeleted))
            {
                this.db.Execute("DELETE FROM Addresses WHERE Id = @Id", new { addr.Id });
            }

            txScope.Complete();
        }
Пример #2
0
        static int Insert_should_assign_identity_to_new_entity()
        {
            // arrange
            Module4.IContactRepository repository = CreateRepository();
            var contact = new Module4.Contact
            {
                FirstName = "Joe",
                LastName  = "Blow",
                Email     = "*****@*****.**",
                Company   = "Microsoft",
                Title     = "Developer"
            };
            var address = new Module4.Address
            {
                AddressType   = "Home",
                StreetAddress = "123 Main Street",
                City          = "Baltimore",
                StateId       = 1,
                PostalCode    = "22222"
            };

            contact.Addresses.Add(address);

            // act
            //repository.Add(contact);
            repository.Save(contact);

            // assert
            Debug.Assert(contact.Id != 0);
            Console.WriteLine("*** Contact Inserted ***");
            Console.WriteLine($"New ID: {contact.Id}");
            return(contact.Id);
        }
Пример #3
0
        public Module4.Contact Add(Module4.Contact contact)
        {
            var sql =
                "INSERT INTO Contacts (FirstName, LastName, Email, Company, Title) VALUES(@FirstName, @LastName, @Email, @Company, @Title); " +
                "SELECT CAST(SCOPE_IDENTITY() as int)";
            var id = db.Query <int>(sql, contact).Single();

            contact.Id = id;
            return(contact);
        }
Пример #4
0
        public Module4.Contact Update(Module4.Contact contact)
        {
            var sql =
                "UPDATE Contacts " +
                "SET FirstName = @FirstName, " +
                "    LastName  = @LastName, " +
                "    Email     = @Email, " +
                "    Company   = @Company, " +
                "    Title     = @Title " +
                "WHERE Id = @Id";

            this.db.Execute(sql, contact);
            return(contact);
        }