Example #1
0
        /// <summary>
        /// 添加公司
        /// </summary>
        /// <param name="company"></param>
        /// <param name="user"></param>
        /// <param name="businessTypes"></param>
        public void Create(Company company, User user, List <string> businessTypes)
        {
            if (string.IsNullOrEmpty(company.CompanyName))
            {
                throw new ServiceException("公司名称不能为空!");
            }
            if (string.IsNullOrEmpty(user.UserName))
            {
                throw new ServiceException("用户名称不能为空!");
            }
            if (string.IsNullOrEmpty(user.Password))
            {
                throw new ServiceException("密码不能为空!");
            }
            var companyExists = CompanyRepository.Instance.Find(x => x.CompanyName.ToLower() == company.CompanyName.ToLower()).Any();

            if (companyExists)
            {
                throw new ServiceException("已经存在相同的公司名称,不能进行此操作!");
            }
            var userExists = UserRepository.Instance.Find(x => x.UserName.ToLower() == user.UserName.ToLower()).Any();

            if (userExists)
            {
                throw new ServiceException("已经存在相同的用户名称,不能进行此操作!");
            }

            CompanyRepository.Instance.Transaction(() =>
            {
                company.CreateTime = DateTime.Now;
                company.IsEnabled  = true;
                var dbCompany      = CompanyRepository.Instance.InsertReturnEntity(company);

                user.CreateTime    = DateTime.Now;
                user.CompanyId     = dbCompany.Id;
                user.IsEnabled     = true;
                user.IsAdmin       = false;
                user.UserKeyId     = string.Format("{0:N}", Guid.NewGuid());
                user.UserAccessKey = string.Format("{0:N}", Guid.NewGuid());
                user.PhoneNumber   = user.PhoneNumber;
                UserRepository.Instance.Insert(user);

                if (businessTypes != null)
                {
                    foreach (var businessType in businessTypes)
                    {
                        var companyBaseData        = new CompanyBaseData();
                        companyBaseData.ConfigName = businessType;
                        companyBaseData.ConfigType = ConfigTypeEnum.BusinessType;
                        companyBaseData.CompanyId  = dbCompany.Id;
                        companyBaseData.CreateTime = DateTime.Now;
                        CompanyBaseDataRepository.Instance.Insert(companyBaseData);
                    }
                }
            });
        }
Example #2
0
        /// <summary>
        /// 保存公司
        /// </summary>
        /// <param name="company"></param>
        /// <param name="user"></param>
        /// <param name="businessTypes"></param>
        public void Save(Company company, User user, List <string> businessTypes)
        {
            if (string.IsNullOrEmpty(company.CompanyName))
            {
                throw new ServiceException("公司名称不能为空!");
            }
            var companyExists = CompanyRepository.Instance.Find(x => x.CompanyName.ToLower() == company.CompanyName.ToLower() && x.Id != company.Id).Any();

            if (companyExists)
            {
                throw new ServiceException("已经存在相同的公司名称,不能进行此操作!");
            }

            var userEntity = UserRepository.Instance.Find(x => x.CompanyId == company.Id).FirstOrDefault();

            if (userEntity == null)
            {
                throw new ServiceException("找不到对应的管理员,不能进行此操作!");
            }

            var companyBaseDatas = CompanyBaseDataService.Instance.GetCompanyBuninessTypeList(company.Id);

            foreach (var companyBaseData in companyBaseDatas)
            {
                CompanyBaseDataRepository.Instance.Delete(companyBaseData);
            }

            CompanyRepository.Instance.Transaction(() =>
            {
                CompanyRepository.Instance.Save(company);
                if (businessTypes != null)
                {
                    foreach (var businessType in businessTypes)
                    {
                        var companyBaseData        = new CompanyBaseData();
                        companyBaseData.ConfigName = businessType;
                        companyBaseData.ConfigType = ConfigTypeEnum.BusinessType;
                        companyBaseData.CompanyId  = company.Id;
                        companyBaseData.CreateTime = DateTime.Now;
                        CompanyBaseDataRepository.Instance.Insert(companyBaseData);
                    }
                }

                userEntity.PhoneNumber = user.PhoneNumber;
                UserRepository.Instance.Save(userEntity);
            });
        }