Пример #1
0
        private COMPANY CreateCompany(GMEntities context, Company company, int newUserId)
        {
            var gmCompany = new COMPANY
            {
                NAME            = company.Name,
                ADDRESS_LINE_1  = company.AddressLine1,
                ADDRESS_LINE_2  = company.AddressLine2,
                SUBURB          = company.Subarb,
                POST_CODE       = company.PostCode,
                COUNTRY         = company.Country,
                PHONE           = company.Phone,
                ABN             = company.Abn,
                ACCOUNT_NO      = RandomToken.GenerateDigitsOnly(11),
                BSB             = GlobalSettings.Instance.Bsb,
                IS_ACTIVE       = company.IsActive,
                IS_ADMIN        = company.IsAdmin,
                IS_DELETED      = company.IsDeleted,
                CR_BY           = company.CrBy,
                CR_AT           = company.CrAt,
                UP_BY           = company.UpBy,
                UP_AT           = company.UpAt,
                LOGO_PATH       = company.LogoPath,
                AGREEMENT_DATE  = company.AgreementDate,
                AGREEMENT_PATH  = company.AgreementPath,
                EMAIL           = company.Email,
                CONTACT_USER_ID = newUserId,
                GUID            = Guid.NewGuid(),
                ADMIN_FEE       = company.AdminFee
            };

            context.COMPANies.Add(gmCompany);
            context.SaveChanges();
            return(gmCompany);
        }
Пример #2
0
        public Company StartNewCompanyFlow(Company company, string baseUrl)
        {
            //Email existance
            if (UserEmailExists(company.Email))
            {
#if !DEBUG
                throw new Exception("User email already exists. Please use different contact email address.");
#endif
            }

            USER    newUser    = null;
            COMPANY newCompany = null;
            // transaction started...
            using (var context = new GMEntities())
            {
                using (var dbContextTransaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        //Contact person user creation
                        newUser = CreateCompanyUser(context, company);

                        //Company creation
                        newCompany = CreateCompany(context, company, newUser.ID);

                        company.Id          = newCompany.ID;
                        company.ContactName = newCompany.CONTACT_NAME;

                        dbContextTransaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();
                        throw new Exception("Error occured while creating new company. Transaction rolled-back.");
                    }
                }
            }

            try
            {
                //Eamil to user
                bool emailSentToUser = SendUserEmail(newCompany, newUser, baseUrl, new Email {
                    To = company.Email
                });

                //Eamil to user
                bool emailSentToAdmin = SendAdminEmail(newCompany);


                if (!emailSentToUser || !emailSentToAdmin)
                {
                    throw new Exception("Problem in sending emails");
                }
            }
            catch (Exception)
            {
            }
            return(company);
        }
Пример #3
0
        private USER CreateCompanyUser(GMEntities context, Company company)
        {
            var gmUser = new USER
            {
                FIRST_NAME = company.ContactName,
                EMAIL      = company.Email,
#if DEBUG
                USERNAME = company.Email + "-" + RandomToken.GenerateDigitsOnly(5),
#else
                USERNAME = company.Email,
#endif
                PASSWORD          = RandomToken.GenerateAlphaNumeric(8),
                CR_BY             = company.CrBy,
                CR_AT             = company.CrAt,
                IS_ACTIVE         = true,
                IS_EMAIL_VERIFIED = false,
                GUID  = Guid.NewGuid(),
                TOKEN = RandomToken.GenerateLowerAlphaNumeric(16)
            };

            context.USERs.Add(gmUser);
            context.SaveChanges();
            return(gmUser);
        }