/// <summary>
        /// Добавление новой должности
        /// </summary>
        /// <param name="name">название должности</param>
        /// <returns></returns>
        public ActionResult Add(string name)
        {
            var appointment = new AccountAppointment()
            {
                Name = name, GlobalEnabled = true
            };

            DB.AccountAppointment.Add(appointment);
            DB.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult AddAppointment(string name)
        {
            var appointment = DB.AccountAppointment.FirstOrDefault(x => x.Name == name);

            if (appointment == null)
            {
                appointment = new AccountAppointment()
                {
                    Name = name, GlobalEnabled = false
                };
                DB.AccountAppointment.Add(appointment);
                DB.SaveChanges();
            }
            return(Json(new {
                id = appointment.Id,
                name = appointment.Name
            }));
        }
        private Account SaveAccount(AccountCompany accountCompany, RegViewModel Reg_ViewModel = null, RegDomainViewModel RegDomain_ViewModel = null, RegNotProducerViewModel RegNotProducer_ViewModel = null, string Pass = null)
        {
            var newAccount = new Account();

            newAccount.EnabledEnum = UserStatus.New;
            newAccount.TypeUser    = (sbyte)TypeUsers.ProducerUser;
            newAccount.CompanyId   = accountCompany.Id;

            // регистрация первого пользователя компании
            if (Reg_ViewModel != null)
            {
                newAccount.Login           = Reg_ViewModel.login;
                newAccount.Password        = Md5HashHelper.GetHash(Pass);
                newAccount.PasswordUpdated = DateTime.Now;
                newAccount.FirstName       = Reg_ViewModel.FirstName;
                newAccount.LastName        = Reg_ViewModel.LastName;
                newAccount.OtherName       = Reg_ViewModel.OtherName;
                newAccount.Name            = Reg_ViewModel.LastName + " " + Reg_ViewModel.FirstName + " " + Reg_ViewModel.OtherName;
                newAccount.Phone           = Reg_ViewModel.PhoneNumber;
                newAccount.AppointmentId   = Reg_ViewModel.AppointmentId;
            }

            // регистрация второго и последующих пользователей производителя
            if (RegDomain_ViewModel != null)
            {
                newAccount.Login           = RegDomain_ViewModel.Mailname + "@" + DB.CompanyDomainName.Single(x => x.Id == RegDomain_ViewModel.EmailDomain).Name;
                newAccount.Password        = Md5HashHelper.GetHash(Pass);
                newAccount.PasswordUpdated = DateTime.Now;
                newAccount.FirstName       = RegDomain_ViewModel.FirstName;
                newAccount.LastName        = RegDomain_ViewModel.LastName;
                newAccount.OtherName       = RegDomain_ViewModel.OtherName;
                newAccount.Name            = RegDomain_ViewModel.LastName + " " + RegDomain_ViewModel.FirstName + " " + RegDomain_ViewModel.OtherName;
                newAccount.Phone           = RegDomain_ViewModel.PhoneNumber;
                newAccount.AppointmentId   = RegDomain_ViewModel.AppointmentId;
            }

            // Если компания в списке отсутствует
            if (RegNotProducer_ViewModel != null)
            {
                // создали новую должность
                var appointment = new AccountAppointment()
                {
                    Name = RegNotProducer_ViewModel.Appointment, GlobalEnabled = false
                };
                DB.Entry(appointment).State = EntityState.Added;
                DB.SaveChanges();

                newAccount.Login         = RegNotProducer_ViewModel.login;
                newAccount.FirstName     = RegNotProducer_ViewModel.FirstName;
                newAccount.LastName      = RegNotProducer_ViewModel.LastName;
                newAccount.OtherName     = RegNotProducer_ViewModel.OtherName;
                newAccount.Name          = RegNotProducer_ViewModel.LastName + " " + RegNotProducer_ViewModel.FirstName + " " + RegNotProducer_ViewModel.OtherName;
                newAccount.Phone         = RegNotProducer_ViewModel.PhoneNumber;
                newAccount.AppointmentId = appointment.Id;
                // особый статус
                newAccount.EnabledEnum = UserStatus.Request;
            }

            DB.Entry(newAccount).State = EntityState.Added;
            DB.SaveChanges();
            return(newAccount);
        }