Пример #1
0
        public Group CreateGroup(string companyId, string name, string description)
        {
            if (unitOfWork.GroupRepository.GetAll().Any(x => x.CompanyId == companyId && x.Name == name.Trim() && !x.IsDeleted))
            {
                throw new CompanyException("Already registered group name.");
            }

            var group = new Lms.Domain.Models.Companies.Group(name, description, true, companyId);

            unitOfWork.GroupRepository.Insert(group);
            unitOfWork.SaveChanges();

            return(group);
        }
Пример #2
0
        public void AddTrialCompany(string firstName, string lastName, string phoneNumber, string companyName, string subDomain, string email, string password)
        {
            logger.Info("firstName: {0}, lastName: {1}, companyName: {2}, email: {3}",
                        firstName, lastName, companyName, email);

            string hostName = ToUrlSlug(subDomain) + "." + ConfigurationManager.AppSettings["LmsWebDomain"];

            logger.Debug("URL: " + hostName);

            if (unitOfWork.CompanyRepository.GetAll().Any(x => x.HostName == hostName))
            {
                throw new CompanyException(string.Format("The company name {0} is already registered in the system", email));
            }


            try
            {
                var company = new Company(firstName, lastName, phoneNumber, companyName, email, true, DateTime.UtcNow.AddMonths(1), hostName);
                var user    = new User(email, firstName, lastName, password, UserTypeEnum.Internal, UserStatusEnum.Active, false, AcquisitionEnum.OnPremise);
                logger.Debug("new company id: " + company.Id);
                var group = new Lms.Domain.Models.Companies.Group("Administrator", "Company Administrator", false, company.Id);

                user.AddUserGroup(group);
                company.AddCompanyAccess(user);

                unitOfWork.CompanyRepository.Insert(company);
                unitOfWork.SaveChanges();
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbex)
            {
                foreach (var validationErrors in dbex.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage);
                        logger.Error(message);
                    }
                }
                throw dbex;
            }
            catch (Exception ex)
            {
                logger.Error(ex.ToString());
                throw ex;
            }
        }