private PracticeHomeControllerViewModel GetViewModel()
        {
            var timeZoneId = this.DbPractice.WindowsTimeZoneId;

            var timeZone = Enum.GetValues(typeof(TypeTimeZone))
                           .Cast <TypeTimeZone>()
                           .First(tz => TimeZoneDataAttribute.GetAttributeFromEnumValue(tz).Id == timeZoneId);

            var address = this.DbPractice.Address ?? new Address();

            var viewModel = new PracticeHomeControllerViewModel
            {
                Address = new AddressViewModel
                {
                    CEP           = address.CEP,
                    City          = address.City,
                    Complement    = address.Complement,
                    Neighborhood  = address.Neighborhood,
                    StateProvince = address.StateProvince,
                    Street        = address.Street,
                },
                Email            = this.DbPractice.Email,
                Pabx             = this.DbPractice.PABX,
                PhoneAlt         = this.DbPractice.PhoneAlt,
                PhoneMain        = this.DbPractice.PhoneMain,
                PracticeName     = this.DbPractice.Name,
                PracticeTimeZone = (short)timeZone,
                SiteUrl          = this.DbPractice.SiteUrl,
                Doctors          = GetDoctorViewModelsFromPractice(this.db, this.DbPractice, this.GetPracticeLocalNow()),
                Users            = (from u in this.DbPractice.Users.OrderBy(u => u.Person.FullName).ToList()
                                    select UsersController.GetViewModel(u, u.Practice)).ToList()
            };

            return(viewModel);
        }
        public ActionResult Edit(PracticeHomeControllerViewModel formModel)
        {
            if (this.ModelState.IsValid)
            {
                formModel.PracticeName = Regex.Replace(formModel.PracticeName.Trim(), @"\s+", " ");

                this.DbPractice.Name = formModel.PracticeName;
                this.DbPractice.WindowsTimeZoneId = TimeZoneDataAttribute.GetAttributeFromEnumValue(
                    (TypeTimeZone)formModel.PracticeTimeZone).Id;

                this.DbPractice.PhoneMain = formModel.PhoneMain;
                this.DbPractice.PhoneAlt  = formModel.PhoneAlt;
                this.DbPractice.SiteUrl   = formModel.SiteUrl;
                this.DbPractice.Email     = formModel.Email;

                var address = this.DbPractice.Address;
                if (address == null)
                {
                    this.DbPractice.Address = address = new Address();
                }
                address.PracticeId    = this.DbPractice.Id;
                address.CEP           = formModel.Address.CEP;
                address.City          = formModel.Address.City;
                address.Complement    = formModel.Address.Complement;
                address.Neighborhood  = formModel.Address.Neighborhood;
                address.StateProvince = formModel.Address.StateProvince;
                address.Street        = formModel.Address.Street;

                this.db.SaveChanges();

                return(this.RedirectToAction("Index"));
            }

            return(this.View(formModel));
        }