/// <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); } } }); }
/// <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); }); }