Exemple #1
0
        public void SetSystemSettings(string globalAdminDetails, string systemSettingsData)
        {
            LogExtension.LogInfo("Initializes system settings at first time", MethodBase.GetCurrentMethod());
            var systemSettingsProperties = JsonConvert.DeserializeObject <SystemSettings>(systemSettingsData);
            var globalAdminDetail        = JsonConvert.DeserializeObject <User>(globalAdminDetails);

            systemSettingsProperties.SqlConfiguration.AuthenticationType = 0;

            GlobalAppSettings.DbSupport = systemSettingsProperties.SqlConfiguration.ServerType;

            var systemSettingsModel = new SystemStartUpPageModel();

            SystemStartUpPageModel.SetSystemProperties(systemSettingsProperties);
            Connection.ConnectionString = _tokenCryptography.Decrypt(systemSettingsProperties.SqlConfiguration.ConnectionString);

            var systemSettings = new SystemSettings
            {
                OrganizationName         = "Grout",
                WelcomeNoteText          = "Welcome to Grout",
                ActivationExpirationDays = 3,
                DateFormat     = "MM/dd/yyyy",
                FavIcon        = "Grout_Favicon.png",
                LoginLogo      = "Grout_Login_Logo.png",
                MainScreenLogo = "Grout_Main_Logo.png",
                ReportCount    = 20,
                TimeZone       = TimeZoneInfo.Local.Id,
                Language       = "en-US",
                BaseUrl        = new UriBuilder(HttpContext.Request.Url.Scheme, HttpContext.Request.Url.Host, HttpContext.Request.Url.Port).ToString().TrimEnd('/')
            };

            //Insert System Settings
            systemSettingsModel.InsertSystemSettings(systemSettings, _tokenCryptography.Decrypt(systemSettingsProperties.SqlConfiguration.ConnectionString));

            //Initialize System Settings
            GlobalAppSettings.InitializeSystemSettings(GlobalAppSettings.GetConfigFilepath() + ServerSetup.Configuration);

            //Add System Administrator
            SystemStartUpPageModel.AddSystemAdmin(globalAdminDetail.UserName.ToLower(), CultureInfo.CurrentCulture.TextInfo.ToTitleCase(globalAdminDetail.FirstName), CultureInfo.CurrentCulture.TextInfo.ToTitleCase(globalAdminDetail.LastName),
                                                  globalAdminDetail.Email.ToLower(), globalAdminDetail.Password);

            DatabaseSchemaUpdater.UpdateLaterversionToServerVersion(DatabaseSchemaUpdater.GetLatestVersion());
            GlobalAppSettings.IsLatestVersion = false;

            //Add Sample Reports
            SystemStartUpPageModel.InsertSampleReports();
        }
Exemple #2
0
        /// <summary>
        /// Initialize the Settings for the Server.
        /// </summary>
        /// <param name="path">Path of the configuration file</param>
        public static void InitializeSystemSettings(string path)
        {
            var tokenCryptography = new TokenCryptography();

            try
            {
                SystemSettings = new SystemSettingsSerializer().Deserialize(path);
                if (SystemSettings != null)
                {
                    SystemSettings.SqlConfiguration.ConnectionString =
                        tokenCryptography.Decrypt(SystemSettings.SqlConfiguration.ConnectionString);
                    ConnectionString = SystemSettings.SqlConfiguration.ConnectionString;
                    DbSupport        = SystemSettings.SqlConfiguration.ServerType;
                    if (DbSupport == DataBaseType.MSSQLCE)
                    {
                        DataProvider = new SqlCeRelationalDataAdapter(ConnectionString);
                        QueryBuilder = new SqlCeQueryBuilder();
                    }
                    else
                    {
                        QueryBuilder = new SqlQueryBuilder();
                        DataProvider = new SqlRelationalDataAdapter(ConnectionString);
                    }
                    var globalSettings = new GlobalAppSettings().GetSystemSettings().DataTable.AsEnumerable()
                                         .Select(a => new
                    {
                        Key   = a.Field <string>(DbColumns.DB_SystemSettings.Key),
                        Value = a.Field <string>(DbColumns.DB_SystemSettings.Value)
                    }
                                                 ).ToDictionary(a => a.Key, a => a.Value);

                    SystemSettings.OrganizationName =
                        globalSettings[SystemSettingKeys.OrganizationName.ToString()];
                    SystemSettings.LoginLogo      = globalSettings[SystemSettingKeys.LoginLogo.ToString()];
                    SystemSettings.MainScreenLogo =
                        globalSettings[SystemSettingKeys.MainScreenLogo.ToString()];
                    SystemSettings.FavIcon         = globalSettings[SystemSettingKeys.FavIcon.ToString()];
                    SystemSettings.WelcomeNoteText =
                        globalSettings[SystemSettingKeys.WelcomeNoteText.ToString()];
                    SystemSettings.Language   = globalSettings[SystemSettingKeys.Language.ToString()];
                    SystemSettings.TimeZone   = globalSettings[SystemSettingKeys.TimeZone.ToString()];
                    SystemSettings.DateFormat = globalSettings[SystemSettingKeys.DateFormat.ToString()];
                    SystemSettings.BaseUrl    = globalSettings[SystemSettingKeys.BaseUrl.ToString()];
                    SystemSettings.ActivationExpirationDays =
                        Convert.ToInt32(globalSettings[SystemSettingKeys.ActivationExpirationDays.ToString()]);
                    SystemSettings.MailSettingsAddress =
                        globalSettings[SystemSettingKeys.MailSettingsAddress.ToString()];
                    SystemSettings.MailSettingsHost =
                        globalSettings[SystemSettingKeys.MailSettingsHost.ToString()];
                    SystemSettings.MailSettingsSenderName =
                        globalSettings[SystemSettingKeys.MailSettingsSenderName.ToString()];
                    SystemSettings.MailSettingsPassword =
                        tokenCryptography.Decrypt(
                            globalSettings[SystemSettingKeys.MailSettingsPassword.ToString()]);
                    SystemSettings.MailSettingsPort =
                        Convert.ToInt32(globalSettings[SystemSettingKeys.MailSettingsPort.ToString()]);
                    SystemSettings.MailSettingsIsSecureAuthentication =
                        Convert.ToBoolean(
                            globalSettings[SystemSettingKeys.MailSettingsIsSecureAuthentication.ToString()]);
                    Serializer = new JavaScriptSerializer();
                }
            }
            catch (Exception e)
            {
                LogExtension.LogError("Exception while deserializing system settings", e, MethodBase.GetCurrentMethod(),
                                      " Path - " + path + " ConnectionString - " + ConnectionString + " OrganizationName - " +
                                      SystemSettings.OrganizationName + " LoginLogo - " + SystemSettings.LoginLogo + " MainScreenLogo - " +
                                      SystemSettings.MainScreenLogo + " FavIcon - " + SystemSettings.FavIcon + " WelcomeNoteText - " +
                                      SystemSettings.WelcomeNoteText + " Language - " + SystemSettings.Language + " TimeZone - " +
                                      SystemSettings.TimeZone + " DateFormat - " + SystemSettings.DateFormat + " BaseUrl - " +
                                      SystemSettings.BaseUrl + " ActivationExpirationDays - " + SystemSettings.ActivationExpirationDays +
                                      " MailSettingsAddress - " + SystemSettings.MailSettingsAddress + " MailSettingsHost - " +
                                      SystemSettings.MailSettingsHost + " MailSettingsSenderName - " +
                                      SystemSettings.MailSettingsSenderName + " MailSettingsPassword - " +
                                      SystemSettings.MailSettingsPassword + " MailSettingsPort - " + SystemSettings.MailSettingsPort +
                                      " MailSettingsIsSecureAuthentication - " + SystemSettings.MailSettingsIsSecureAuthentication);
            }
        }
Exemple #3
0
        static void Main(string[] args)
        {
            var rootPath         = string.Empty;
            var processSuccess   = true;
            var errorLogFileName = string.Empty;
            var errorLogFolder   = string.Empty;

            if (args.Length != 0)
            {
                string syncfusionServerType;
                if (args[0].ToLower() == "reportserver")
                {
                    syncfusionServerType = "Report Server";
                    errorLogFileName     = "ReportServer_Errorlog_" + GetAssemblyVersion() + "_" + DateTime.Now.ToString("MMddyyyyHHmmssfff") + ".txt";
                }
                else
                {
                    syncfusionServerType = "Dashboard Server";
                    errorLogFileName     = "DashboardServer_Errorlog_" + GetAssemblyVersion() + "_" + DateTime.Now.ToString("MMddyyyyHHmmssfff") + ".txt";
                }
                errorLogFolder    = Path.Combine(Path.GetTempPath(), "Syncfusion " + syncfusionServerType);
                errorTextFilePath = Path.Combine(errorLogFolder, errorLogFileName);
                rootPath          = Path.GetFullPath(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) +
                                                     "\\Syncfusion\\" + syncfusionServerType);
                SystemSettings data          = null;
                var            xmlSerializer = new XmlSerializer(typeof(SystemSettings));
                if (File.Exists(rootPath + "\\Configuration\\Config.xml"))
                {
                    using (var reader = new StreamReader(rootPath + "\\Configuration\\Config.xml"))
                    {
                        data = (SystemSettings)xmlSerializer.Deserialize(reader);
                        reader.Close();
                    }
                }
                if (data != null)
                {
                    switch (data.SqlConfiguration.ServerType)
                    {
                    case DataBaseType.MSSQL:
                        var tokenCryptography = new TokenCryptography();
                        var connectionString  = tokenCryptography.Decrypt(data.SqlConfiguration.ConnectionString);
                        var builder           = new SqlConnectionStringBuilder(connectionString);
                        var isDatabaseExist   = CheckDatabaseExists(connectionString, builder.InitialCatalog);
                        if (isDatabaseExist)
                        {
                            var dbDropDatabaseScript = "use master; ALTER DATABASE [" + builder.InitialCatalog + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; drop database [" + builder.InitialCatalog + "];";
                            var deleteAction         = DeleteSQLDatabase(dbDropDatabaseScript, connectionString);
                            if (!deleteAction.Success)
                            {
                                processSuccess = false;
                                if (!Directory.Exists(errorLogFolder))
                                {
                                    Directory.CreateDirectory(errorLogFolder);
                                }
                                TextWriter tw = File.CreateText(errorTextFilePath);
                                tw.WriteLine("Syncfusion " + syncfusionServerType + " - Uninstaller Error log.");
                                tw.WriteLine("Error in dropping the database. Please find the below exception thrown from the SQL Server.");
                                tw.WriteLine(deleteAction.Value.ToString());
                                tw.Close();
                            }
                        }
                        break;
                    }
                    var deleteDirectory = DeleteDirectory(rootPath);
                    if (!deleteDirectory.Success)
                    {
                        processSuccess = false;
                        var errorFileExist = File.Exists(errorTextFilePath);
                        if (!errorFileExist)
                        {
                            if (!Directory.Exists(errorLogFolder))
                            {
                                Directory.CreateDirectory(errorLogFolder);
                            }
                            TextWriter tw = File.CreateText(errorTextFilePath);
                            tw.WriteLine("Syncfusion " + syncfusionServerType + " - Uninstaller Error log.");
                            tw.WriteLine("Error in deleting directories.");
                            tw.WriteLine(deleteDirectory.Value.ToString());
                            tw.Close();
                        }
                        else
                        {
                            TextWriter tw = new StreamWriter(errorTextFilePath);
                            tw.WriteLine("Error in deleting directories.");
                            tw.WriteLine(deleteDirectory.Value.ToString());
                            tw.Close();
                        }
                    }
                    var statusMessage = (processSuccess) ? "success" : "failure;" + errorLogFileName;
                    Console.WriteLine(statusMessage);
                }
            }
        }
Exemple #4
0
        public ApiResponse Login(string authHeader, string ipAddress, string requestMode = null)
        {
            var authorization   = authHeader;
            var status          = true;
            var isValid         = LoginResponse.DeactivatedUser;
            var responseMessage = string.Empty;

            if (!string.IsNullOrEmpty(authorization))
            {
                if (!string.IsNullOrEmpty(requestMode))
                {
                    var requestModeString  = Encoding.UTF8.GetString(Convert.FromBase64String(requestMode));
                    var requestModeDecrypt =
                        crypto.Decrypt(requestModeString)
                        .Split(';')
                        .Select(part => part.Split('='))
                        .Where(part => part.Length == 2)
                        .ToDictionary(sp => sp[0], sp => sp[1]);
                    ipAddress = requestModeDecrypt["IP"];
                }

                var encodeUsernamePwd = Encoding.UTF8.GetString(Convert.FromBase64String(authorization));
                var splitUsernamePwd  = encodeUsernamePwd.IndexOf(":");

                var encryptusername = encodeUsernamePwd.Substring(0, splitUsernamePwd);
                var usernameIp      = crypto.Decrypt(encryptusername);
                var usernameDic     =
                    usernameIp.Split(';')
                    .Select(e => e.Split('='))
                    .Where(e => e.Length == 2)
                    .ToDictionary(a => a[0], a => a[1]);
                var username = usernameDic["plainText"];

                var encryptPassword = encodeUsernamePwd.Substring(splitUsernamePwd + 1);
                var passwordIp      = crypto.Decrypt(encryptPassword);
                var passwordDic     =
                    passwordIp.Split(';')
                    .Select(part => part.Split('='))
                    .Where(part => part.Length == 2)
                    .ToDictionary(sp => sp[0], sp => sp[1]);
                var password = passwordDic["plainText"];

                isValid = IsValidCredentials(username, password);

                if (ipAddress == passwordDic["IP"])
                {
                    switch (isValid)
                    {
                    case LoginResponse.ValidUser:
                        userManagement.AddUserToken(userManagement.GetUserId(username), ipAddress, String.Empty);
                        responseMessage = "Logged in successfully";
                        break;

                    case LoginResponse.InvalidPassword:
                        status          = false;
                        responseMessage = "Invalid password";
                        break;

                    case LoginResponse.ThrottledUser:
                        status          = false;
                        responseMessage = "User has been locked";
                        break;

                    case LoginResponse.InvalidUserName:
                        status          = false;
                        responseMessage = "Invalid username";
                        break;

                    case LoginResponse.DeactivatedUser:
                        status          = false;
                        responseMessage = "Invalid user";
                        break;

                    case LoginResponse.DeletedUser:
                        status          = false;
                        responseMessage = "Deleted user";
                        break;
                    }
                }
                else
                {
                    status          = false;
                    responseMessage = "You are not an authorized user";
                }
            }
            return(new ApiResponse
            {
                ApiStatus = true,
                Data =
                    new ApiData
                {
                    Success = status,
                    Message = responseMessage,
                    StatusText = isValid.ToString()
                }
            });
        }