public bool UpdateUserProfile(Person updatedPerson)
        {
            try
            {
                var regContext = new RegistrationDbContext();

                //get existing person
                var person = _contextProvider.Context.People.Include(x => x.Contact).Include(x=> x.Address).SingleOrDefault(p => p.Id == updatedPerson.Id);

                #region update meta data properties
                person.LastChangeDate = DateTime.UtcNow;
                person.Address.LastChangeDate = DateTime.UtcNow;
                if (person.HomeAddress != null)
                    person.HomeAddress.LastChangeDate = DateTime.UtcNow;
                person.Contact.LastChangeDate = DateTime.UtcNow;
                person.LastChangePersonId = person.Id;
                person.Address.LastChangePersonId = person.Id;
                if (person.HomeAddress != null)
                   person.HomeAddress.LastChangePersonId = person.Id;
                person.Contact.LastChangePersonId = person.Id;
                #endregion  

                #region update person details
                person.Salutation = updatedPerson.Salutation;
                person.FirstName = updatedPerson.FirstName;
                person.LastName = updatedPerson.LastName;
                person.MiddleName = updatedPerson.MiddleName;
                person.Suffix = updatedPerson.Suffix;
                person.Title = updatedPerson.Title;

                person.Contact.Phone = updatedPerson.Contact.Phone;
                person.Contact.Fax = updatedPerson.Contact.Fax;
                person.Contact.Cell = updatedPerson.Contact.Cell;

                person.Address.AddressLine1 = updatedPerson.Address.AddressLine1;
                person.Address.AddressLine2 = updatedPerson.Address.AddressLine2;
                person.Address.CityLocality = updatedPerson.Address.CityLocality;
                person.Address.StateProvince = updatedPerson.Address.StateProvince;
                person.Address.Country = updatedPerson.Address.Country;
                person.Address.PostalCode = updatedPerson.Address.PostalCode;

                #endregion 

                regContext.People.Attach((person));
                regContext.Entry(person).State = System.Data.Entity.EntityState.Modified;

                if (person.Address != null)
                    regContext.Entry(person.Address).State = System.Data.Entity.EntityState.Modified;
                if (person.HomeAddress != null)
                    regContext.Entry(person.HomeAddress).State = System.Data.Entity.EntityState.Modified;
                if (person.Contact != null)
                    regContext.Entry(person.Contact).State = System.Data.Entity.EntityState.Modified;
                regContext.SaveChanges();

                return true;

            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
Beispiel #2
0
        public bool IsEqual(Person personToCheck, bool ignoreCase)
        {
            bool bSame = true;

            bSame = StringCompareIgnoreNull(this.Contact.Email, personToCheck.Contact.Email, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Contact.Phone, personToCheck.Contact.Phone, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Contact.Fax, personToCheck.Contact.Fax, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Contact.Cell, personToCheck.Contact.Cell, ignoreCase, bSame);

            bSame = StringCompareIgnoreNull(this.Address.Organization, personToCheck.Address.Organization, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Address.CityLocality, personToCheck.Address.CityLocality, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Address.AddressLine1, personToCheck.Address.AddressLine1, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Address.AddressLine2, personToCheck.Address.AddressLine2, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Address.StateProvince, personToCheck.Address.StateProvince, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Address.PostalCode, personToCheck.Address.PostalCode, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Address.Country, personToCheck.Address.Country, ignoreCase, bSame);

            bSame = StringCompareIgnoreNull(this.Salutation, personToCheck.Salutation, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.FirstName, personToCheck.FirstName, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.LastName, personToCheck.LastName, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Suffix, personToCheck.Suffix, ignoreCase, bSame);
            bSame = StringCompareIgnoreNull(this.Title, personToCheck.Title, ignoreCase, bSame);

            return bSame;
        }
        /// <summary>
        /// Inserts a new record inot the People table
        /// </summary>
        /// <param name="person"></param>
        /// <returns></returns>
        public bool CreatePerson(Person person)
        {
            try
            {

                #region Setup metadata properties

                //Set meta data properties.
                person.UniqueId = Guid.NewGuid();
                person.CreatedDate = DateTime.UtcNow;
                person.LastChangeDate = DateTime.UtcNow;

                person.Address.UniqueId = Guid.NewGuid();
                person.Address.CreatedDate = DateTime.UtcNow;
                person.Address.LastChangeDate = DateTime.UtcNow;

                if (person.HomeAddress != null)
                {
                    person.HomeAddress.UniqueId = Guid.NewGuid();
                    person.HomeAddress.CreatedDate = DateTime.UtcNow;
                    person.HomeAddress.LastChangeDate = DateTime.UtcNow;
                }

                person.Contact.UniqueId = Guid.NewGuid();
                person.Contact.CreatedDate = DateTime.UtcNow;
                person.Contact.LastChangeDate = DateTime.UtcNow;

                //Temporarily set unknown values.
                person.Address.CreatedPersonId = 1;
                person.Address.LastChangePersonId = 1;
                if (person.HomeAddress != null)
                {
                    person.HomeAddress.CreatedPersonId = 1;
                    person.HomeAddress.LastChangePersonId = 1;
                }
                person.Contact.CreatedPersonId = 1;
                person.Contact.LastChangePersonId = 1;

                #endregion

                var regContext = new RegistrationDbContext();
                regContext.People.Add((person));
                regContext.SaveChanges();

                #region Update Model

                person.ContactId = person.Contact.Id;
                person.AddressId = person.Address.Id;
                if (person.HomeAddress != null)
                {
                    person.HomeAddressId = person.HomeAddress.Id;
                }

                //Update the person record with the correct created and last change person Ids.
                person.CreatedPersonId = person.Id;
                person.LastChangePersonId = person.Id;
                person.Address.CreatedPersonId = person.Id;
                person.Address.LastChangePersonId = person.Id;
                if (person.HomeAddress != null)
                {
                    person.HomeAddress.CreatedPersonId = person.Id;
                    person.HomeAddress.LastChangePersonId = person.Id;
                }
                person.Contact.CreatedPersonId = person.Id;
                person.Contact.LastChangePersonId = person.Id;

                #endregion

                regContext.People.Attach((person));
                regContext.Entry(person).State = System.Data.Entity.EntityState.Modified;

                if (person.Address != null)
                    regContext.Entry(person.Address).State = System.Data.Entity.EntityState.Modified;
                if (person.HomeAddress != null)
                    regContext.Entry(person.HomeAddress).State = System.Data.Entity.EntityState.Modified;
                if (person.Contact != null)
                    regContext.Entry(person.Contact).State = System.Data.Entity.EntityState.Modified;
                regContext.SaveChanges();

                return true;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }