Esempio n. 1
0
        public ActionResult Index()
        {
            this.Server.ScriptTimeout = 300;
            var model = new InstallDatabaseModel
            {
                Datasource    = ".",
                Database      = "sms",
                AdminUsername = "******",
                Username      = "******",
                Password      = "",
                AdminPassword = "******",
                UserId        = 1,
                Email         = "*****@*****.**"
            };

            model.School.FullName        = "Test School";
            model.School.AcadmicYearName = (DateTime.Now.Month <= 3 ? Convert.ToString(Convert.ToInt32(DateTime.Now.ToString("yyyy")) - 1) : Convert.ToString(Convert.ToInt32(DateTime.Now.ToString("yyyy")))) + "-" + (DateTime.Now.Month <= 3 ? Convert.ToString(Convert.ToInt32(DateTime.Now.ToString("yy"))) : Convert.ToString(Convert.ToInt32(DateTime.Now.ToString("yy")) + 1));
            return(View(model));
        }
Esempio n. 2
0
        public ActionResult Index(InstallDatabaseModel model)
        {
            if (DatabaseHelper.DatabaseIsInstalled())
            {
                return(RedirectToRoute("HomePage"));
            }

            //set page timeout to 5 minutes
            this.Server.ScriptTimeout = 300;
            string connectionString;

            if (ModelState.IsValid)
            {
                var webHelper = ContextHelper.Current.Resolve <IUrlHelper>();
                try
                {
                    var settingsManager = new DataSettingsContext();
                    connectionString = "Data Source=" + model.Datasource + ";Initial Catalog=" + model.Database + ";User id=" + model.Username + ";pwd=" + model.Password + "";
                    if (!SqlServerDatabaseExists(connectionString.Trim()))
                    {
                        //create database
                        var collation             = "SQL_Latin1_General_CP1_CI_AS";
                        var errorCreatingDatabase = CreateDatabase(connectionString, collation);
                        if (!String.IsNullOrEmpty(errorCreatingDatabase))
                        {
                            throw new Exception(errorCreatingDatabase);
                        }

                        var dataProvider = "sqlserver";
                        var settings     = new DatabaseSettings
                        {
                            DataProvider         = dataProvider,
                            DataConnectionString = connectionString
                        };
                        settingsManager.SaveSettings(settings);

                        //init data provider
                        var dataProviderInstance = ContextHelper.Current.Resolve <DataManager>().LoadDataProvider();
                        dataProviderInstance.InitDatabase();

                        //now resolve installation service
                        var installationService = ContextHelper.Current.Resolve <IInstallationService>();
                        var school = new School();

                        school.AffiliationNumber  = !String.IsNullOrEmpty(model.School.AffiliationNumber) ? model.School.AffiliationNumber.Trim() : "";
                        school.RegistrationNumber = !String.IsNullOrEmpty(model.School.RegistrationNumber) ? model.School.RegistrationNumber.Trim() : "";

                        school.AcadmicYearName  = model.School.AcadmicYearName;
                        school.City             = !String.IsNullOrEmpty(model.School.City) ? model.School.City.Trim() : "";
                        school.State            = !String.IsNullOrEmpty(model.School.State) ? model.School.State.Trim() : "";
                        school.Country          = !String.IsNullOrEmpty(model.School.Country) ? model.School.Country.Trim() : "";
                        school.Street1          = !String.IsNullOrEmpty(model.School.Street1) ? model.School.Street1.Trim() : "";
                        school.Street2          = !String.IsNullOrEmpty(model.School.Street2) ? model.School.Street2.Trim() : "";
                        school.Landmark         = !String.IsNullOrEmpty(model.School.Landmark) ? model.School.Landmark.Trim() : "";
                        school.ZipCode          = !String.IsNullOrEmpty(model.School.ZipCode) ? model.School.ZipCode.Trim() : "";
                        school.FullName         = !String.IsNullOrEmpty(model.School.FullName) ? model.School.FullName.Trim() : "";
                        school.Longitude        = !String.IsNullOrEmpty(model.School.Longitude) ? model.School.Longitude.Trim() : "";
                        school.Latitude         = !String.IsNullOrEmpty(model.School.Latitude) ? model.School.Latitude.Trim() : "";
                        school.FacebookLink     = !String.IsNullOrEmpty(model.School.FacebookLink) ? model.School.FacebookLink.Trim() : "";
                        school.TweeterLink      = !String.IsNullOrEmpty(model.School.TweeterLink) ? model.School.TweeterLink.Trim() : "";
                        school.InstagramLink    = !String.IsNullOrEmpty(model.School.InstagramLink) ? model.School.InstagramLink.Trim() : "";
                        school.GooglePlusLink   = !String.IsNullOrEmpty(model.School.GooglePlusLink) ? model.School.GooglePlusLink.Trim() : "";
                        school.PInterestLink    = !String.IsNullOrEmpty(model.School.PInterestLink) ? model.School.PInterestLink.Trim() : "";
                        school.SchoolGuid       = new Guid();
                        school.CoverPictureId   = model.School.CoverPictureId;
                        school.ProfilePictureId = model.School.ProfilePictureId;
                        school.Email            = model.School?.Email;

                        installationService.InstallData(model.AdminUsername, model.AdminPassword, school);

                        //reset cache
                        DatabaseHelper.ResetCache();

                        //Redirect to home page
                        return(RedirectToRoute("Root"));
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }

            return(View(model));
        }