Beispiel #1
0
        public static Dictionary <string, string> GetReqTypeDict(User user)
        {
            Dictionary <string, string> ret = new Dictionary <string, string>();
            DBConnect connection            = new DBConnect();

            try
            {
                connection.Connect(ConnectionsMgr.GetAdminConnInfo());
                using (var query = connection.Select(new[] { _Column.TrxType, _Column.TrxDesc }, _Table.TrxInfo))
                {
                    while (query.Read())
                    {
                        ret.Add(query.Field(0), query.Field(1));
                    }
                }
                connection.Close();
                ret.Add("832_A", "Item Attributes");
                ret.Add("850_X", "PO Store X-Ref");
                ret.Add("856_X", "ASN Release X-Ref");
                ret.Add("832_P", "Al Tayer Item Attributes");
                return(ret);
            }
            catch (Exception e)
            {
                ProgramLog.LogError(user, "ProcessQueue", "GetReqTypeDict", e.Message);
                connection.Close();
                return(new Dictionary <string, string>());
            }
        }
Beispiel #2
0
        public static bool Submit(HttpRequest request, ReportDetail req, string usUserName, string usCustomer, string usPartner)
        {
            if (request == null || req == null)
            {
                return(false);
            }
            DBConnect connectionAdmin = new DBConnect();

            try
            {
                connectionAdmin.Connect(new DatabaseInfo(ConnectionsMgr.GetAdminConnInfo())
                {
                    Database = databaseEmailRequest
                });

                string defaultToEmail   = "*****@*****.**";
                string defaultFromEmail = "*****@*****.**";

                StringBuilder builtMessage = new StringBuilder();
                builtMessage.AppendLine("From: " + req.Name);
                builtMessage.AppendLine("Company: " + req.Company);
                builtMessage.AppendLine("Email: " + req.Email);
                builtMessage.AppendLine("Message: " + req.Message);
                builtMessage.AppendLine();
                builtMessage.AppendLine("Additional Info");
                builtMessage.AppendLine("IP Address: " + request.UserHostAddress);
                builtMessage.AppendLine("Browser Info: " + request.UserAgent);
                builtMessage.AppendLine("Referral: " + request.UrlReferrer.ToString());
                DateTime requestTime = DateTime.Now;
                var      vals        = new Dictionary <string, string>()
                {
                    { columnUniqueKey, connectionAdmin.GetNewKey() },
                    { columnCustomer, (usCustomer ?? "").SQLEscape() },
                    { columnPartner, (usPartner ?? "").SQLEscape() },
                    { columnRequestDate, requestTime.ToString("yyyy-MM-dd HH:mm:ss") },
                    { columnToEmail, defaultToEmail },
                    { columnFromEmail, defaultFromEmail },
                    { columnSubject, "EDIOC- Support Submission" },
                    { columnMessage, WrapTextTo70(builtMessage.ToString().SQLEscape()) },
#if DEBUG
                    { columnProcessed, "Y" },
#else
                    { columnProcessed, "" },
#endif
                    { columnSendAfter, requestTime.ToString("yyyy-MM-dd HH:mm:ss") }
                };
                var result = connectionAdmin.Insert(tableEmailReq, vals.ToNameValueCollection());
                return(result.AffectedRows > 0);
            }
            catch (Exception e)
            {
                ProgramLog.LogError(usUserName, usCustomer, usPartner, "SupportRequest", "Submit", e.Message);
                return(false);
            }
        }
Beispiel #3
0
        public static OCUserInfo GetOCRecord(string usToken)
        {
            OCUserInfo info = new OCUserInfo();

            if (string.IsNullOrEmpty(usToken))
            {
                return(info);
            }
            string    sToken     = usToken.SQLEscape();
            DBConnect connection = new DBConnect();
            DateTime  expTime    = new DateTime();

            try
            {
                connection.Connect(ConnectionsMgr.GetAdminConnInfo());
                using (var queryUserAuthInfo = connection.Select(new[] { columnUserName, columnActivePartner, columnIsTest, columnCreateDate }, tableOCAuth, string.Format("WHERE {0}='{1}'", columnSessionID, sToken)))
                {
                    if (queryUserAuthInfo.AffectedRows <= 0)
                    {
                        connection.Close();
                        return(info);
                    }
                    queryUserAuthInfo.Read();
                    info.UserName      = queryUserAuthInfo.Field(0);
                    info.ActivePartner = queryUserAuthInfo.Field(1);
                    info.IsTest        = queryUserAuthInfo.Field(2) == "1";
                    expTime            = (DateTime)queryUserAuthInfo.Field2(3, DateTime.MinValue);
                    connection.Delete(tableOCAuth, string.Format("WHERE {0}='{1}'", columnSessionID, sToken));
                }
                connection.Close();
                var authLimit = DateTime.Now.AddSeconds(-OCSessionTimeOutSeconds);
                if (expTime >= authLimit) //expire date must be within the last OCSessionTimeOutSeconds seconds
                {
                    info.IsValid = true;
                }
                else
                {
                    throw new Exception("Authentication time is not within range allowed. Auth Time: " + expTime.ToString("yyyy-MM-dd HH:mm:ss") + ", Auth Limit: " + authLimit.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                return(info);
            }
            catch (Exception ex)
            {
                ProgramLog.LogError(null, "Auth", "GetOCRecord", ex.Message);
                connection.Close();
                return(info);
            }
        }
Beispiel #4
0
        private static void _Log(string username, string customer, string partner, string source, string method, string type, string message)
        {
            if (customer == "")
            {
                customer = "EDIO";
            }
            if (partner == "")
            {
                partner = "EDIO";
            }
            string sCustomer = TruncateAndEscape(customer, 4);
            string sPartner  = TruncateAndEscape(partner, 4);
            string sUsername = TruncateAndEscape(username, 40);
            string sSource   = TruncateAndEscape(source, 32);
            string sMethod   = TruncateAndEscape(method, 32);
            string sMessage  = (string.IsNullOrWhiteSpace(message) ? "" : message).SQLEscape();
            bool   isTest    = false;

#if DEBUG
            isTest = true;
#endif
            var connection = new DBConnect();
            try
            {
                connection.Connect(ConnectionsMgr.GetAdminConnInfo());
                Dictionary <string, string> insertVals = new Dictionary <string, string>()
                {
                    { _Column.UniqueKey, connection.GetNewKey() },
                    { columnLogTime, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") },
                    { columnSource, sSource },
                    { columnMethod, sMethod },
                    { columnStatus, type },
                    { columnMessage, sMessage },
                    { _Column.UserName, sUsername },
                    { _Column.Customer, sCustomer },
                    { _Column.Partner, sPartner },
                    { columnIsTest, isTest ? "1" : "0" }
                };
                connection.Insert(tableLog, insertVals.ToNameValueCollection());
            }
            catch { }
            connection.Close();
        }
Beispiel #5
0
        private static string _GetElemDesc(User user, string usEleNum, string usCode)
        {
            DBConnect connect = new DBConnect();

            try
            {
                connect.Connect(ConnectionsMgr.GetAdminConnInfo());
                var queryCodes = connect.Select(_Column.CodeDesc, _Table.DisaCode, string.Format("WHERE {0}='{1}' AND {2}='{3}'", _Column.EleNum, usEleNum.SQLEscape(), _Column.Code, usCode.SQLEscape()));
                if (queryCodes.Read())
                {
                    return(queryCodes.Field(0));
                }
                else
                {
                    return("");
                }
            }
            catch (Exception e)
            {
                ProgramLog.LogError(user, "ElementLookup", "_GetElemDesc", e.Message);
                return("");
            }
        }
Beispiel #6
0
        public static bool BeginGuestSession()
        {
            try
            {
                // Check existence of session
                HttpSessionState session = HttpContext.Current.Session;
                HttpRequest      request = HttpContext.Current.Request;
                if (session == null)
                {
                    return(false);
                }

                User user = new User();
                user.UserName    = "******";
                user.Email       = "*****@*****.**";
                user.FirstName   = "Guest";
                user.LastName    = "";
                user.Level       = 1;
                user.Customer    = "GST1";
                user.PartnerList = new List <PartnerDetail>();
                user.IsGuest     = true;
                List <string> partnerList = new List <string>()
                {
                    "PART"
                };
                bool isTest = false;
                //CHECK DEVELOPMENT/TEST ENVIRONMENT
                string hostname = request.Url.Authority;
                if (hostname == "10.0.0.245:30658")
                {
                    isTest = true;
                }
#if DEBUG
                isTest = true;
#endif

                // Set connection IDs
                if (!ConnectionsMgr.SetConnIDs(user, isTest))
                {
                    // No Conn IDs?
                    ProgramLog.LogError(user, "SessionHandler", "GetUserInfo", string.Format("Unable to get connection IDs for customer {0} and partner {1}.", user.Customer, user.ActivePartner));
                    return(false);
                }
                DBConnect connection = new DBConnect();
                // Set partner info
                connection.Connect(ConnectionsMgr.GetAdminConnInfo());
                using (var res = connection.Select(new[] { columnPartner, columnPartnerName }, tablePartnerInfo, string.Format("WHERE {0} IN ({1})", columnPartner, string.Join(",", partnerList.Select(p => "'" + p + "'")))))
                {
                    while (res.Read())
                    {
                        user.PartnerList.Add(new PartnerDetail()
                        {
                            ID = res.Field(0), FullName = res.Field(1)
                        });
                    }
                }
                user.PartnerIndex = 0;
                connection.Close();
                // Set extra company info.
                connection.Connect(ConnectionsMgr.GetOCConnInfo(user));
                using (var res = connection.Select(columnCompanyName, tableCustomerInfo, string.Format("WHERE {0}='{1}'", columnCustomer, user.Customer)))
                {
                    if (res.AffectedRows == 0)
                    {
                        // No company name?
                        ProgramLog.LogError(user, "SessionHandler", "GetUserInfo", string.Format("Unable to find company name in {0} for customer {1}", tableCustomerInfo, user.Customer));
                        connection.Close();
                        return(false);
                    }
                    res.Read();
                    user.CompanyName = res.Field(0);
                }
                connection.Close();

                session[SKeys.User]        = user;
                session[SKeys.IsTest]      = isTest;
                session[SKeys.LandingPg]   = "Default.aspx";
                session[SKeys.TokenSet]    = new HashSet <string>();
                session[SKeys.TrxDict]     = ProcessQueue.GetReqTypeDict(user);
                session[SKeys.IsOCSession] = false;
                return(true);
            }
            catch (Exception e)
            {
                ProgramLog.LogError("Guest", "EDIO", "EDIO", "SessionHandler", "BeginGuestSession", e.Message);
                return(false);
            }
        }
Beispiel #7
0
        /// <summary>
        /// Fetches user information based on the username.
        /// </summary>
        /// <param name="user">The user object.</param>
        /// <param name="usUserName">The username of the user.</param>
        /// <returns>True if successful, false otherwise.</returns>
        private static bool GetUserInfo(User user, string usUserName, bool isTest)
        {
            string               sUserName         = usUserName.SQLEscape();
            List <string>        partnerList       = new List <string>();
            List <PartnerDetail> partnerDetailList = new List <PartnerDetail>();
            DBConnect            connection        = new DBConnect();

            try
            {
                connection.Connect(ConnectionsMgr.GetAuthConnInfo());
                using (var res = connection.Select(new[] { columnEmail, columnFirstName, columnLastName, columnLevel, columnOrgID, columnPartnerList }, tableUserInfo, string.Format("WHERE {0}='{1}'", columnUserName, sUserName)))
                {
                    if (!res.Read())
                    {
                        connection.Close();
                        return(false);
                    }
                    user.UserName  = sUserName;
                    user.Email     = res.Field(0);
                    user.FirstName = res.Field(1);
                    user.LastName  = res.Field(2);
                    user.Level     = (int)double.Parse(res.Field(3));
                    user.Customer  = res.Field(4).ToUpper();
                    partnerList.AddRange(res.Field(5).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(pt => pt.Trim()));
                }
                connection.Close();

                // Set partner info
                connection.Connect(ConnectionsMgr.GetAdminConnInfo());
                using (var res = connection.Select(new[] { columnPartner, columnPartnerName }, tablePartnerInfo, string.Format("WHERE {0} IN ({1})", columnPartner, string.Join(",", partnerList.Select(p => "'" + p + "'")))))
                {
                    while (res.Read())
                    {
                        partnerDetailList.Add(new PartnerDetail()
                        {
                            ID = res.Field(0), FullName = res.Field(1)
                        });
                    }
                }
                connection.Close();

                if (partnerDetailList.Count == 0)
                {
                    // No partners?
                    ProgramLog.LogError(user.UserName, user.Customer, "EDIO", "SessionHandler", "GetUserInfo", string.Format("Unable to find partner list in {0} for user {1}.", tablePartnerInfo, user.UserName));
                    return(false);
                }
                user.PartnerList  = partnerDetailList;
                user.PartnerIndex = 0;

                // Set connection IDs
                if (!ConnectionsMgr.SetConnIDs(user, isTest))
                {
                    // No Conn IDs?
                    ProgramLog.LogError(user, "SessionHandler", "GetUserInfo", string.Format("Unable to get connection IDs for customer {0} and partner {1}.", user.Customer, user.ActivePartner));
                    return(false);
                }

                // Set extra company info.
                connection.Connect(ConnectionsMgr.GetOCConnInfo(user));
                using (var res = connection.Select(columnCompanyName, tableCustomerInfo, string.Format("WHERE {0}='{1}'", columnCustomer, user.Customer)))
                {
                    if (res.AffectedRows == 0)
                    {
                        // No company name?
                        ProgramLog.LogError(user, "SessionHandler", "GetUserInfo", string.Format("Unable to find company name in {0} for customer {1}", tableCustomerInfo, user.Customer));
                        connection.Close();
                        return(false);
                    }
                    res.Read();
                    user.CompanyName = res.Field(0);
                }
                connection.Close();

                return(true);
            }
            catch (Exception e)
            {
                ProgramLog.LogError("", "EDIO", "EDIO", "SessionHandler", "GetUserInfo", e.Message);
                return(false);
            }
        }