Example #1
0
        public LoginInternalResult Login(string username, string password, int companyNumber, string languageID, bool firstLogin, bool singleTenant)
        {
            _nLogLogger.Debug($"username {username}", "Login");
            _nLogLogger.Debug($"password {password}", "Login");
            _nLogLogger.Debug($"companyNumber {companyNumber}", "Login");
            _nLogLogger.Debug($"languageID {languageID}", "Login");
            _nLogLogger.Debug($"firstLogin {firstLogin}", "Login");
            _nLogLogger.Debug($"singleTenant {singleTenant}", "Login");
            var pdsUserLoginDataSet = new pdsUserLoginDataSet();

            pdsUserLoginDataSet.ttblUserLogin.AddttblUserLoginRow(username, password, companyNumber, languageID, firstLogin, singleTenant);
            var cErrorMessage = string.Empty;

            StopwatchUtil.Time(
                () =>
            {
                this._poLoginproxy.Login(ref this._pdsContext, ref pdsUserLoginDataSet, out cErrorMessage);
            });
            _nLogLoggerP.Trace("Login");
            if (!string.IsNullOrEmpty(cErrorMessage))
            {
                if (cErrorMessage.Contains(OperInUse))
                {
                    _nLogLogger.Warn($"Error returned - {cErrorMessage}", "PopulateLoginModel");
                }
                else
                {
                    _nLogLogger.Error($"Error returned - {cErrorMessage}", "PopulateLoginModel");
                }
            }
            if (pdsUserLoginDataSet.HasErrors)
            {
                _nLogLogger.Error("pdsUserContext is showing errors", "Login");
            }
            var result = new UserLogin();

            if (pdsUserLoginDataSet.ttblUserLogin.Count > 0)
            {
                result = UserLogin.BuildUserLoginFromRow(pdsUserLoginDataSet.ttblUserLogin[0]);
            }
            var loginInternalResult = this.PopulateLoginModel(pdsUserLoginDataSet.HasErrors, cErrorMessage, result, firstLogin);

            loginInternalResult.availUsers = new List <AvailUsers>();
            foreach (DataRow row in pdsUserLoginDataSet.ttblAvailUsers)
            {
                _nLogLogger.Debug($"Building Avail Users", "Login");
                loginInternalResult.availUsers.Add(AvailUsers.BuildAvailUsersFromRow(row));
            }
            _nLogLogger.Debug($"Finished Login", "Login");
            return(loginInternalResult);
        }
Example #2
0
        public LoginLoginResponseAPI Login(UserLogin UserLogin)
        {
            var result = new LoginLoginResponseAPI();

            var pdsUserLogin = new pdsUserLoginDataSet();

            DataRow ttblUserLoginCriteria = pdsUserLogin.ttblUserLogin.NewttblUserLoginRow();

            UserLogin.UpdateRowFromUserLogin(ref ttblUserLoginCriteria, UserLogin);
            pdsUserLogin.ttblUserLogin.AddttblUserLoginRow((pdsUserLoginDataSet.ttblUserLoginRow)ttblUserLoginCriteria);

            string cErrorMessage = string.Empty;


            NLogLoggerP.Trace("Login - Login - Before Call");
            StopwatchUtil.Time(
                () =>
            {
                using (var poLoginproxy = this.proxyAppObject.CreatePO_loginproxy())
                {
                    this.SetRequiredContextParameters();
                    poLoginproxy.Login(ref pdsContext, ref pdsUserLogin, out cErrorMessage);
                }
            });
            NLogLoggerP.Info("Login - Login - After Call");


            this.ReportErrors(cErrorMessage);
            this.ReportErrors(this.pdsContext);
            this.ReportErrors(pdsUserLogin);

            foreach (DataRow row in pdsUserLogin.ttblAvailUsers)
            {
                result.availUsers.Add(AvailUsers.BuildAvailUsersFromRow(row));
            }
            if (pdsUserLogin.ttblUserLogin.Count > 0)
            {
                result.userLogin = UserLogin.BuildUserLoginFromRow(pdsUserLogin.ttblUserLogin[0]);
            }


            return(result);
        }
Example #3
0
        private static int Main(string[] args)
        {
            var errorLogPath = AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog.Txt";

            File.Delete(errorLogPath);
            var errorLines = new List <string> {
                "Build Version Error Log", "--------------------", string.Empty, "From Jenkins:"
            };
            // ----------------------------------
            // Pick up options from arguments
            // ----------------------------------
            var returnCode = 0;

            Parser.Default.ParseArguments <Options>(args)
            .WithParsed(opts =>
            {
                if (string.IsNullOrEmpty(opts.Password))
                {
                    opts.Password = opts.User;
                }
                var absolutePath = Environment.GetEnvironmentVariable(AbsolutePath);
                if (absolutePath == null)
                {
                    returnCode = -1;
                    return;
                }

                if (!opts.NoAppServerCall)
                {
                    if (string.IsNullOrEmpty(opts.AppServerUrl))
                    {
                        // ----------------------------
                        // Read the web.config and attempt to get the URL from there
                        // ----------------------------
                        var webConfigFullName = Path.Combine(absolutePath, opts.HomeForReport, WebConfigFile);
                        if (!File.Exists(webConfigFullName))
                        {
                            errorLines.Add("web.config not found");
                            File.WriteAllLines(errorLogPath, errorLines);
                            returnCode = -2;
                            return;
                        }
                        var webConfig      = XDocument.Load(webConfigFullName);
                        var firstOrDefault =
                            webConfig.Root?.Descendants("add")
                            .FirstOrDefault(x => x.Attribute("key")?.Value == "PROGRESS.Session.Url");
                        if (firstOrDefault != null)
                        {
                            opts.AppServerUrl = firstOrDefault.Attribute("value")?.Value;
                        }
                    }
                    if (string.IsNullOrEmpty(opts.AppServerUrl))
                    {
                        errorLines.Add("Never got an appserver url");
                        File.WriteAllLines(errorLogPath, errorLines);
                        returnCode = -2;
                        return;
                    }
                }

                // ----------------------------------
                // Jenkins Build Information
                // ----------------------------------
                var reportPathAndName = Path.Combine(absolutePath, opts.HomeForReport, ReportName);

                File.Delete(reportPathAndName);
                var lines = new List <string> {
                    $"Build Version Report {Assembly.GetEntryAssembly().GetName().Version}", "------------------------------", string.Empty, DateTime.Now.ToLongDateString(), string.Empty, opts.Identity, string.Empty, string.Empty, "From Jenkins:"
                };
                lines.AddRange(
                    from environmentVar in ListOfVariableToPull
                    let environmentValue = Environment.GetEnvironmentVariable(environmentVar)
                                           select $"  {environmentVar,-15}: {environmentValue ?? "Not set!"}");
                lines.Add(string.Empty);


                if (!opts.NoAppServerCall)
                {
                    // ----------------------------------
                    // DLL Processing
                    // ----------------------------------
                    lines.Add("From DLLs:");
                    var dlls           = Directory.GetFiles(Path.Combine(absolutePath, opts.DllLocation), "*ProxyAppObject.DLL");
                    var versionList    = new Dictionary <string, string>();
                    var defaultVersion = string.Empty;
                    var maxLength      = 0;
                    foreach (var dll in dlls)
                    {
                        var assembly = Assembly.LoadFrom(dll);
                        var version  = assembly.GetName().Version.ToString();
                        if (string.IsNullOrEmpty(defaultVersion))
                        {
                            defaultVersion = version;
                        }
                        var name = assembly.GetName().Name;
                        if (name.Length > maxLength)
                        {
                            maxLength = name.Length;
                        }
                        versionList.Add(name, version);
                    }
                    if (!string.IsNullOrEmpty(defaultVersion))
                    {
                        var countOfDefaultVersion = versionList.Count(d => d.Value.Equals(defaultVersion));
                        if (countOfDefaultVersion != versionList.Count)
                        {
                            lines.Add("  Warning not all DLL's contain the same version");
                            lines.AddRange(
                                versionList.Select(version => $"  {version.Key,-20}: {version.Value}"));
                        }
                        else
                        {
                            lines.Add($"  All DLLS are at version {defaultVersion}");
                        }
                    }
                    else
                    {
                        lines.Add("  Error getting SI version from DLL's");
                    }

                    // ----------------------------------------
                    // Progress SI Call to get more information
                    // ----------------------------------------
                    try
                    {
                        lines.Add(string.Empty);
                        lines.Add("From Sxe:");
                        var connection = new Connection(opts.AppServerUrl, "", "", "")
                        {
                            SessionModel = opts.SessionModel == "SL" ? 0 : 1
                        };
                        var sharedProxyAppObject = new SharedProxyAppObject(connection);
                        var pdsContextDataSet    = new pdsContextDataSet();
                        var loginproxy           = sharedProxyAppObject.CreatePO_loginproxy();

                        var pdsUserLoginDataSet = new pdsUserLoginDataSet();
                        pdsUserLoginDataSet.ttblUserLogin.AddttblUserLoginRow(
                            opts.User,
                            opts.Password,
                            opts.Cono,
                            string.Empty,
                            false,
                            !opts.Multitenant);
                        loginproxy.Login(ref pdsContextDataSet, ref pdsUserLoginDataSet, out var cErrorMessage);
                        var doRest = true;
                        if (pdsContextDataSet.HasErrors)
                        {
                            lines.Add(cErrorMessage);
                            doRest = false;
                        }
                        if (!string.IsNullOrEmpty(cErrorMessage) && !cErrorMessage.ToLower(CultureInfo.InvariantCulture).Contains(OperInUse.ToLower(CultureInfo.InvariantCulture)))
                        {
                            lines.Add(cErrorMessage);
                            doRest = false;
                        }
                        if (string.IsNullOrEmpty(cErrorMessage))
                        {
                            cErrorMessage = string.Empty;
                        }
                        if (doRest && cErrorMessage.ToLower(CultureInfo.InvariantCulture).Contains(OperInUse.ToLower(CultureInfo.InvariantCulture)))
                        {
                            loginproxy.ClearCoreSession(ref pdsContextDataSet, opts.Cono, opts.User, out cErrorMessage);
                            if (string.IsNullOrEmpty(cErrorMessage))
                            {
                                pdsUserLoginDataSet.ttblUserLogin.AddttblUserLoginRow(
                                    opts.User,
                                    opts.Password,
                                    opts.Cono,
                                    string.Empty,
                                    false,
                                    !opts.Multitenant);
                                loginproxy.Login(ref pdsContextDataSet, ref pdsUserLoginDataSet, out cErrorMessage);
                                if (!string.IsNullOrEmpty(cErrorMessage))
                                {
                                    lines.Add(cErrorMessage);
                                    doRest = false;
                                }
                            }
                            else
                            {
                                lines.Add(cErrorMessage);
                                doRest = false;
                            }
                        }
                        if (doRest)
                        {
                            string cDisplayVersion;
                            string cInternalVersion;
                            string cEsbVersion;
                            string cSiVersion;
                            using (var poAssharedinquiryproxy = sharedProxyAppObject.CreatePO_assharedinquiryproxy()
                                   )
                            {
                                poAssharedinquiryproxy.GetSXVersionNumbers(
                                    ref pdsContextDataSet,
                                    out cErrorMessage,
                                    out cDisplayVersion,
                                    out cInternalVersion,
                                    out cEsbVersion,
                                    out cSiVersion);
                            }
                            if (!string.IsNullOrEmpty(cErrorMessage))
                            {
                                lines.Add(cErrorMessage);
                            }
                            else
                            {
                                lines.Add(string.Format($"  {"DisplayVersion",-20}: {cDisplayVersion}"));
                                lines.Add(string.Format($"  {"InternalVersion",-20}: {cInternalVersion}"));
                                lines.Add(string.Format($"  {"ESBVersion",-20}: {cEsbVersion}"));
                                lines.Add(string.Format($"  {"SIVersion",-20}: {cSiVersion}"));
                            }
                            loginproxy.Logout(ref pdsContextDataSet, out cErrorMessage);
                        }
                    }
                    catch (Exception e)
                    {
                        errorLines.Add(e.Message);
                        File.WriteAllLines(errorLogPath, errorLines);
                        returnCode = -3;
                        return;
                    }
                }

                // ----------------------------------
                // Write Final Build Information
                // ----------------------------------

                File.WriteAllLines(reportPathAndName, lines);
                returnCode = 0;
            })
            .WithNotParsed <Options>(errs =>
            {
            });

            return(returnCode);
        }