Ejemplo n.º 1
0
		public static string GetMessage (IntPtr Display, IntPtr ResourceID, IntPtr Serial, byte ErrorCode, XRequest RequestCode, byte MinorCode)
		{
			StringBuilder	sb;
			string		x_error_text;
			string		error;
			string		hwnd_text;
			string		control_text;
			Hwnd		hwnd;
			Control		c;

			sb = new StringBuilder(160);
			Xlib.XGetErrorText (Display, ErrorCode, sb, sb.Capacity);
			x_error_text = sb.ToString();
			hwnd = Hwnd.ObjectFromHandle(ResourceID);
			if (hwnd != null) {
				hwnd_text = hwnd.ToString();
				c = Control.FromHandle(hwnd.Handle);
				if (c != null) {
					control_text = c.ToString();
				} else {
					control_text = String.Format("<handle {0:X} non-existant>", hwnd.Handle);
				}
			}
			else {
				hwnd_text = "<null>";
				control_text = "<null>";
			}

			error = String.Format("\n  Error: {0}\n  Request:     {1:D} ({2})\n  Resource ID: 0x{3:X}\n  Serial:      {4}\n  Hwnd:        {5}\n  Control:     {6}", x_error_text, RequestCode, RequestCode, ResourceID.ToInt32(), Serial, hwnd_text, control_text);
			return error;
		}
Ejemplo n.º 2
0
 public XResponse Execute(XRequest request, IXExecutionContext context)
 {
     if (request is XGetTreeDataRequest)
     {
         request.Name = "XGetTreeData";
         ((XGetTreeDataRequest)request).Params.Add("CurrentEmployeeID", ((ITUser)XSecurityManager.Instance.GetCurrentUser()).EmployeeID);
         ((XGetTreeDataRequest)request).Params.Add("CurrentSystemUserID", ((ITUser)XSecurityManager.Instance.GetCurrentUser()).SystemUserID);
     }
     else if (request is XGetTreeMenuRequest)
     {
         request.Name = "XGetTreeMenu";
         ((XGetTreeMenuRequest)request).Params.Add("CurrentEmployeeID", ((ITUser)XSecurityManager.Instance.GetCurrentUser()).EmployeeID);
         ((XGetTreeMenuRequest)request).Params.Add("CurrentSystemUserID", ((ITUser)XSecurityManager.Instance.GetCurrentUser()).SystemUserID);
     }
     else if (request is XGetListDataRequest)
     {
         request.Name = "XGetListData";
         ((XGetListDataRequest)request).Params.Add("CurrentEmployeeID", ((ITUser)XSecurityManager.Instance.GetCurrentUser()).EmployeeID);
         ((XGetListDataRequest)request).Params.Add("CurrentSystemUserID", ((ITUser)XSecurityManager.Instance.GetCurrentUser()).SystemUserID);
     }
     else if (request is XExecuteDataSourceRequest)
     {
         request.Name = "XExecuteDataSource";
         ((XExecuteDataSourceRequest)request).Params.Add("CurrentEmployeeID", ((ITUser)XSecurityManager.Instance.GetCurrentUser()).EmployeeID);
         ((XExecuteDataSourceRequest)request).Params.Add("CurrentSystemUserID", ((ITUser)XSecurityManager.Instance.GetCurrentUser()).SystemUserID);
     }
     return(context.ExecCommand(request, true));
 }
Ejemplo n.º 3
0
        public Domain.Enum.UserLoginResult ValidateUser(string usernameOrEmail, string password)
        {
            var user = GetUserByUserNameOrEmail(usernameOrEmail);

            if (user == null)
            {
                return(UserLoginResult.UserNotExist);
            }
            if (user.IsLocked)
            {
                return(UserLoginResult.Locked);
            }
            if (!user.IsActivated)
            {
                return(UserLoginResult.NotActive);
            }

            var passwordHash = Cipher.Hash(password, user.PasswordSalt);
            var isValid      = passwordHash.Equals(user.Password);

            if (!isValid)
            {
                return(UserLoginResult.WrongPassword);
            }

            //save last login date
            user.LastLoginDate = DateTime.Now;
            user.LastActiveIP  = XRequest.GetIP();
            user.TryCount      = 0;
            UserService.SubmitChanges();
            return(UserLoginResult.Successful);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Метод выполнения операции, реализация IXCommand.Execute
        /// </summary>
        ///	<param name="request">Объект-запрос на выполнение операции</param>
        /// <param name="context">Представление контекста выполнения операции</param>
        /// <returns>
        /// Экземпляр объекта-результата выполнения операции
        /// </returns>
        public override XResponse Execute(XRequest request, IXExecutionContext context)
        {
            request.ValidateRequestType(typeof(XGetObjectRequest));

            // Вызывается частная, полностью типизированная реализация
            return(this.Execute((XGetObjectRequest)request, context));
        }
Ejemplo n.º 5
0
        public override void Process(Command cmd, object packet)
        {
            try
            {
                XRequest request = null;
                switch (cmd)
                {
                case Command.UpdateVideoRecordState:
                {
                    //TODO
                    break;
                }

                default:
                {
                    request = new SyncRouteRequest();
                    break;
                }
                }
                if (null != request)
                {
                    request.Process(packet);
                }
            }
            catch (Exception e)
            {
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// ћетод запуска операции на выполнение, <входна¤> точка операции
        /// ѕ≈–≈√–”∆≈ЌЌџ…, —“–ќ√ќ “»ѕ»«»–ќ¬јЌЌџ… ћ≈“ќƒ
        /// ¬џ«џ¬ј≈“—я яƒ–ќћ ј¬“ќћј“»„≈— »
        /// </summary>
        /// <param name="request">«апрос на выполнение операции</param>
        /// <param name="context"> онтекст выполнени¤ операции</param>
        /// <returns>–езультат выполнени¤</returns>
        public override XResponse Execute(XRequest request, IXExecutionContext context)
        {
            ITUser     user = (ITUser)XSecurityManager.Instance.GetCurrentUser();
            XmlElement xmlCurrentEmployee = context.Connection.Load("Employee", user.EmployeeID);

            context.Connection.LoadProperty(xmlCurrentEmployee, "SystemUser");
            return(new XGetObjectResponse(xmlCurrentEmployee));
        }
Ejemplo n.º 7
0
        public override XResponse Execute(XRequest request, IXExecutionContext context)
        {
            XDataSource ds = context.Connection.GetDataSource(DATASOURCE_NAME);

            ds.ExecuteScalar();

            return(new XResponse());
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Метод проверки данных запроса.
        /// Вызывается Ядром перед передачей объекта в прикладной код.
        /// </summary>
        /// <remarks>
        /// Метод проверяет, чтобы наименование описания структуры иерархии в
        /// метаданных было задано (явно или в результате разбора XML-запроса).
        /// </remarks>
        public override void Validate()
        {
            // Вызываем базовую реализацию - проверка свойств базового класса
            base.Validate();

            // Наименование описания структуры иерархии в метаданных должно
            // быть задано (явно или в результате разбора XML-запроса):
            XRequest.ValidateRequiredArgument(MetaName, "MetaName");
        }
Ejemplo n.º 9
0
		public X11Exception (IntPtr Display, IntPtr ResourceID, IntPtr Serial, byte ErrorCode, XRequest RequestCode, byte MinorCode)
		{
			this.Display = Display;
			this.ResourceID = ResourceID;
			this.Serial = Serial;
			this.RequestCode = RequestCode;
			this.ErrorCode = ErrorCode;
			this.MinorCode = MinorCode;
		}
Ejemplo n.º 10
0
 public X11Exception(IntPtr Display, IntPtr ResourceID, IntPtr Serial, byte ErrorCode, XRequest RequestCode, byte MinorCode)
 {
     this.Display     = Display;
     this.ResourceID  = ResourceID;
     this.Serial      = Serial;
     this.RequestCode = RequestCode;
     this.ErrorCode   = ErrorCode;
     this.MinorCode   = MinorCode;
 }
Ejemplo n.º 11
0
        /// <summary>
        /// Выполняет задание
        /// </summary>
        public void RunJob()
        {
            // увеличиваем время следующего запуска
            this.m_dtNextStartTime += this.Description.Period;

            // запускаем команду XFW
            XRequest request = new XRequest();

            request.Name = this.Description.CommandName;
            XFacade.Instance.ExecCommand(request);
        }
Ejemplo n.º 12
0
 public override XResponse Execute(XRequest request, IXExecutionContext context)
 {
     using (XDbCommand cmd = context.Connection.CreateCommand())
     {
         cmd.CommandType    = CommandType.StoredProcedure;
         cmd.CommandText    = "dbo.app_messagingCheckIncidentsDeadline";
         cmd.CommandTimeout = int.MaxValue - 128;
         cmd.ExecuteNonQuery();
     }
     return(new XResponse());
 }
Ejemplo n.º 13
0
        /// <summary>
        /// Проверяет корректность заполнения данных запроса
        /// </summary>
        public override void Validate()
        {
            // Обязательно вызываем базовую реализацию - там проверяются
            // свойства, определяемые базовой же реализацией
            XRequest.ValidateOptionalArgument(SessionID, "SessionID");

            // В отличие от запроса типа GetObjectIdByExKeyRequest, здесь
            // наименование ds-типа должно быть задано ВСЕГДА. При этом допустимо
            // задание наименование источника данных наряду с указанием ds-типа -
            // тогда именно источник будет использоваться для определения
            // идентификатора
            ValidateRequiredArgument(TypeName, "TypeName");
        }
Ejemplo n.º 14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Request.Cookies["yklm_agent"] != null)
                {
                    //UserNameBox.Value = Request.Cookies["yklm_agent"]["username"].ToString();
                    //password.Attributes["value"] = "**********";
                }
            }

            if (XRequest.IsPost())
            {
                SignIn();
            }
        }
Ejemplo n.º 15
0
 public override bool HasRightsToExecute(XRequest request, IXExecutionContextGuard context)
 {
     try
     {
         XSecurityManager.Instance.GetCurrentUser();
         return(true);
     }
     catch (SecurityException)
     {
         return(false);
     }
     catch
     {
         throw;
     }
 }
        /// <summary>
        /// Метод запуска операции на выполнение, <входная> точка операции
        /// ПЕРЕГРУЖЕННЫЙ, СТРОГО ТИПИЗИРОВАННЫЙ МЕТОД
        /// ВЫЗЫВАЕТСЯ ЯДРОМ АВТОМАТИЧЕСКИ
        /// </summary>
        /// <param name="request">Запрос на выполнение операции</param>
        /// <param name="context">Контекст выполнения операции</param>
        /// <returns>Результат выполнения</returns>
        public override XResponse Execute(XRequest request, IXExecutionContext context)
        {
            ITUser user = (ITUser)XSecurityManager.Instance.GetCurrentUser();

            GetCurrentUserClientProfileResponse response = new GetCurrentUserClientProfileResponse();

            /*
             * Закоментировано, т.к. сейчас нет необходимости в получении xml-объекта текущего сотрудника, если понадобится, то раскоментировать
             * XmlElement xmlCurrentEmployee = context.Connection.Load( "Employee", user.EmployeeID );
             * context.Connection.LoadProperty( xmlCurrentEmployee, "SystemUser" );
             * response.XmlEmployee = xmlCurrentEmployee;
             */

            response.EmployeeID      = user.EmployeeID;
            response.SystemUserID    = user.SystemUserID;
            response.WorkdayDuration = user.WorkdayDuration;
            return(response);
        }
Ejemplo n.º 17
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (XRequest.IsPost())
            {
                if (this.Session["CCode"] == null)
                {
                    AlertAndRedirect("验证码已失效!");
                    return;
                }
                else if (XRequest.GetString("CCode").ToUpper() != this.Session["CCode"].ToString().ToUpper())
                {
                    AlertAndRedirect("验证码错误!");
                    return;
                }
                else
                {
                    string userName = XRequest.GetString("UserNameBox");
                    string passWord = Cryptography.MD5(XRequest.GetString("pas"));

                    Model.Manage manage = new viviapi.Model.Manage();
                    manage.username         = userName;
                    manage.password         = passWord;
                    manage.lastLoginTime    = DateTime.Now;
                    manage.lastLoginIp      = viviLib.Web.ServerVariables.TrueIP;
                    manage.LastLoginAddress = WebUtility.GetIPAddress(manage.lastLoginIp);
                    manage.LastLoginRemark  = WebUtility.GetIPAddressInfo(manage.lastLoginIp);

                    string message = BLL.ManageFactory.SignIn(manage);

                    if (manage.id > 0)
                    {
                        AlertAndRedirect(string.Empty, "Default.aspx");
                    }
                    else
                    {
                        AlertAndRedirect(message);
                    }
                }
            }
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Метод выполнения операции, типизированная реализация
        /// </summary>
        ///	<param name="oRequest">Объект-запрос на выполнение операции</param>
        /// <param name="oContext">Представление контекста выполнения операции</param>
        /// <returns>
        /// Экземпляр объекта-результата выполнения операции
        /// </returns>
        public XResponse Execute(XDeleteObjectRequest oRequest, IXExecutionContext oContext)
        {
            // Проверка параметров запроса
            XRequest.ValidateRequiredArgument(oRequest.TypeName, "XDeleteObjectRequest.TypeName");
            XRequest.ValidateRequiredArgument(oRequest.ObjectID, "XDeleteObjectRequest.ObjectID");

            DomainObjectData objData = DomainObjectData.CreateStubLoaded(oContext.Connection, oRequest.TypeName, oRequest.ObjectID);
            XObjectRights    rights  = XSecurityManager.Instance.GetObjectRights(objData);

            if (!rights.AllowDelete)
            {
                throw new XSecurityException(String.Format(
                                                 "Выполнение операции невозможно: нет прав на удаление объекта \"{0}\" ({1}[oid='{2}'])",
                                                 objData.TypeInfo.Description,
                                                 oRequest.TypeName,
                                                 oRequest.ObjectID
                                                 ));
            }

            // Вызываем метод подсистемы Storage (уровень Level-2); экземпляр
            // Storage представлен в рамках контекста выполнения опеарции
            return(new XDeleteObjectResponse(XStorageGateway.Delete(oContext, oRequest.TypeName, oRequest.ObjectID)));
        }
Ejemplo n.º 19
0
        public void InsertUser(User user)
        {
            var passwordSalt = Cipher.GenerateSalt();
            var passwordHash = Cipher.Hash(user.Password, passwordSalt);

            user.PasswordSalt = passwordSalt;
            user.Password     = passwordHash;
            user.BindAccount  = user.BindAccount ?? string.Empty;

            //setting default value:
            user.RoleID        = EnumUserRole.NormalUser.ToInt();
            user.Grade         = 1;
            user.EntryDate     = DateTime.Now;
            user.LastLoginDate = DateTime.Now;
            user.IsActivated   = true;
            user.IsLocked      = false;
            user.IsAutoAdded   = false;
            user.LoginTimes    = 1;
            user.LastActiveIP  = XRequest.GetIP();
            user.GUID          = Guid.NewGuid();
            UserService.Insert(user);
            UserService.SubmitChanges();
        }
Ejemplo n.º 20
0
        public static string GetMessage(IntPtr Display, IntPtr ResourceID, IntPtr Serial, byte ErrorCode, XRequest RequestCode, byte MinorCode)
        {
            StringBuilder sb;
            string        x_error_text;
            string        error;
            string        hwnd_text;
            string        control_text;
            Hwnd          hwnd;
            Control       c;

            sb = new StringBuilder(160);
            Xlib.XGetErrorText(Display, ErrorCode, sb, sb.Capacity);
            x_error_text = sb.ToString();
            hwnd         = Hwnd.ObjectFromHandle(ResourceID);
            if (hwnd != null)
            {
                hwnd_text = hwnd.ToString();
                c         = Control.FromHandle(hwnd.Handle);
                if (c != null)
                {
                    control_text = c.ToString();
                }
                else
                {
                    control_text = String.Format("<handle {0:X} non-existant>", hwnd.Handle);
                }
            }
            else
            {
                hwnd_text    = "<null>";
                control_text = "<null>";
            }

            error = String.Format("\n  Error: {0}\n  Request:     {1:D} ({2})\n  Resource ID: 0x{3:X}\n  Serial:      {4}\n  Hwnd:        {5}\n  Control:     {6}", x_error_text, RequestCode, RequestCode, ResourceID.ToInt32(), Serial, hwnd_text, control_text);
            return(error);
        }
Ejemplo n.º 21
0
 /// <summary>
 /// Метод запуска операции на выполнение, «входная» точка операции
 /// ПЕРЕГРУЖЕННЫЙ, СТРОГО ТИПИЗИРОВАННЫЙ МЕТОД
 /// ВЫЗЫВАЕТСЯ ЯДРОМ АВТОМАТИЧЕСКИ
 /// </summary>
 /// <param name="request">Запрос на выполнение операции</param>
 /// <param name="context">Контекст выполнения операции</param>
 /// <returns>Результат выполнения</returns>
 public override XResponse Execute(XRequest request, IXExecutionContext context)
 {
     return(Execute((UpdateActivityStateRequest)request, context));
 }
Ejemplo n.º 22
0
        /// <summary>
        /// ћетод запуска операции на выполнение, <входна¤> точка операции
        /// ѕ≈–≈√–”∆≈ЌЌџ…, —“–ќ√ќ “»ѕ»«»–ќ¬јЌЌџ… ћ≈“ќƒ
        /// ¬џ«џ¬ј≈“—я яƒ–ќћ ј¬“ќћј“»„≈— »
        /// </summary>
        /// <param name="request">«апрос на выполнение операции</param>
        /// <param name="context"> онтекст выполнени¤ операции</param>
        /// <returns>–езультат выполнени¤</returns>
        public new GetExpensesDataResponse Execute(XRequest request, IXExecutionContext context)
        {
            ITUser user = (ITUser)XSecurityManager.Instance.GetCurrentUser();

            Hashtable dictionaryParams = new Hashtable();

            dictionaryParams.Add("EmployeeID", user.EmployeeID);

            // ѕолучим источник данных, подставим переданные параметры и выполним его:
            XDataSource dataSource = context.Connection.GetDataSource("GetEmployeeCurrentSummaryExpenses");

            dataSource.SubstituteNamedParams(dictionaryParams, true);
            dataSource.SubstituteOrderBy();

            DataTable resultDataTable = dataSource.ExecuteDataTable();

            // в результирующей таблице должно быть шесть колонок, три строки:
            if (resultDataTable.Columns.Count != 6 && resultDataTable.Rows.Count != 3)
            {
                throw new ApplicationException("Ќекорректный результат получени¤ данных затрат сотрудника");                   // TODO: ѕоправить текст сообщени¤!
            }
            // ‘ормируем результат:
            GetExpensesDataResponse response = new GetExpensesDataResponse();

            response.EmployeeID = user.EmployeeID;
            for (int nRow = 0; nRow < resultDataTable.Rows.Count; nRow++)
            {
                PeriodExpensesInfo infoExpenses;
                switch ((int)resultDataTable.Rows[nRow]["RowCode"])
                {
                case 1: infoExpenses = response.PreviousMonth; break;

                case 2: infoExpenses = response.CurrentMonth; break;

                case 3: (infoExpenses = response.CurrentDay).IsOneDayPeriod = true; break;

                default:
                    throw new ApplicationException("Ќеожиданные данные!");
                }

                // «ачитываем данные:
                // ...границы периода:
                infoExpenses.PeriodStartDate = (DateTime)resultDataTable.Rows[nRow]["PeriodStartDate"];
                if (!infoExpenses.IsOneDayPeriod)
                {
                    infoExpenses.PerionEndDate = (DateTime)resultDataTable.Rows[nRow]["PeriodEndDate"];
                }
                // ...данные о продолжительности рабочего дн¤ (дл¤ корректного рассчета кол-ва дней в периоде)
                infoExpenses.ExpectedExpense.WorkDayDuration = (int)resultDataTable.Rows[nRow]["WorkDayDuration"];
                infoExpenses.RealExpense.WorkDayDuration     = infoExpenses.ExpectedExpense.WorkDayDuration;
                infoExpenses.RemainsExpense.WorkDayDuration  = infoExpenses.ExpectedExpense.WorkDayDuration;
                // ...собственно данные о затратах:
                infoExpenses.ExpectedExpense.Duration = (int)resultDataTable.Rows[nRow]["ExpectedExpense"];
                infoExpenses.RealExpense.Duration     = (int)resultDataTable.Rows[nRow]["RealExpense"];
                // ...остаток списаний имеет смысл только если реальные затраты меньше ожидаемых
                // (в остальных случа¤х остаток считаем равным нулю):
                if (infoExpenses.ExpectedExpense.Duration > infoExpenses.RealExpense.Duration)
                {
                    infoExpenses.RemainsExpense.Duration = infoExpenses.ExpectedExpense.Duration - infoExpenses.RealExpense.Duration;
                }

                // ¬ычисл¤емые значени¤:
                // ...наименование периода:
                if (infoExpenses.IsOneDayPeriod)
                {
                    infoExpenses.PeriodName = "—егодн¤";
                }
                else
                {
                    infoExpenses.PeriodName = getMonthName(infoExpenses.PeriodStartDate);
                }

                // ..."цвет" периода: дл¤ периода продолжительностью в мес¤ц
                // и однодневных периодов вычисл¤етс¤ по разному:
                if (infoExpenses.IsOneDayPeriod)
                {
                    // "«еленый", если реальные затраты больше или равны ожидаемым:
                    if (infoExpenses.RealExpense.Duration >= infoExpenses.ExpectedExpense.Duration)
                    {
                        infoExpenses.Completeness = ExpensesCompleteness.GreenZone;
                    }
                    // "—иний", если реальные затраты меньше ожидаемых менее чем на час (60 минут):
                    else if (infoExpenses.ExpectedExpense.Duration - infoExpenses.RealExpense.Duration <= 60)
                    {
                        infoExpenses.Completeness = ExpensesCompleteness.BlueZone;
                    }
                    // " расна¤" зона - во всех остальных случа¤х:
                    else
                    {
                        infoExpenses.Completeness = ExpensesCompleteness.RedZone;
                    }
                }
                else
                {
                    // "«еленый", если реальные затраты больше или равны ожидаемым:
                    if (infoExpenses.RealExpense.Duration >= infoExpenses.ExpectedExpense.Duration)
                    {
                        infoExpenses.Completeness = ExpensesCompleteness.GreenZone;
                    }
                    // "—иний", если реальные затраты меньше ожидаемых менее чем на –јЅќ„»… ƒ≈Ќ№ (60 минут):
                    else if (infoExpenses.ExpectedExpense.Duration - infoExpenses.RealExpense.Duration <= infoExpenses.RealExpense.WorkDayDuration)
                    {
                        infoExpenses.Completeness = ExpensesCompleteness.BlueZone;
                    }
                    // " расна¤" зона - во всех остальных случа¤х:
                    else
                    {
                        infoExpenses.Completeness = ExpensesCompleteness.RedZone;
                    }
                }
            }

            return(response);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Выполнение команды
        /// </summary>
        /// <param name="request">Запрос команды, должен иметь тип XGetPropertyRequest</param>
        /// <param name="context">Контекст выполнения команды</param>
        /// <returns>XGetPropertyResponse</returns>
        public override XResponse Execute(XRequest request, IXExecutionContext context)
        {
            request.ValidateRequestType(typeof(XGetPropertyRequest));

            return(this.Execute((XGetPropertyRequest)request, context));
        }
Ejemplo n.º 24
0
        private void SignIn()
        {
            string message = "";

            string userName   = XRequest.GetString("username");
            string passWord   = XRequest.GetString("password");
            string code       = XRequest.GetString("CCode");
            string RememberMe = WebBase.GetFormString("RememberMe", "");

            if (string.IsNullOrEmpty(code))
            {
                message = ("请输入验证码!");
            }
            else if (string.IsNullOrEmpty(userName))
            {
                message = ("请输入代理账号!");
            }
            else if (string.IsNullOrEmpty(passWord))
            {
                message = ("请输入代理密码!");
            }
            else
            {
                message = WebUtility.CheckValiDateCode(code);
            }

            if (string.IsNullOrEmpty(message))
            {
                string lastLoginIp      = ServerVariables.TrueIP;
                string lastLoginAddress = WebUtility.GetIPAddress(lastLoginIp);

                message = viviapi.BLL.User.Login.SignIn(0, 1, userName, Cryptography.MD5(passWord), lastLoginIp,
                                                        lastLoginAddress);

                if (message == "success")
                {
                    if (viviapi.BLL.User.Login.CurrentMember.UserType == UserTypeEnum.代理)
                    {
                        if (RememberMe != null)
                        {
                            HttpCookie hc = new HttpCookie("yklm_agent");
                            DateTime   dt = DateTime.Now;
                            TimeSpan   ts = new TimeSpan(90, 0, 0, 0, 0); //过期时间为1分钟
                            hc.Expires = dt.Add(ts);                      //设置过期时间

                            hc.Values.Add("username", userName);

                            Response.AppendCookie(hc);
                        }
                        else
                        {
                            HttpCookie hc = new HttpCookie("yklm_agent");
                            hc.Expires = DateTime.Now.AddMonths(-24);
                            Response.Cookies.Add(hc);
                        }
                    }
                    else
                    {
                        message = ("非代理权限,无法登录!");
                    }
                }
            }

            if (message == "success")
            {
                Response.Redirect("main.aspx");
            }
            else
            {
                ShowMessageBox(message);
            }
        }
        /// <summary>
        /// Выполнение команды
        /// </summary>
        public override XResponse Execute(XRequest request, IXExecutionContext context)
        {
            Trace.WriteLine("SendNotificationMailAsyncCommand::Enter");
            try
            {
                if (!context.AsyncExecutionMode)
                {
                    throw new ApplicationException("Эта команда должна выполняться строго в асинхронном режиме");
                }
                // Читаем файл конфигурации
                string sSMTPHost = context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:smtp-host");
                int    nSMTPPort = 25;
                if (!string.IsNullOrEmpty(context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:smtp-port")))
                {
                    nSMTPPort = int.Parse(context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:smtp-port"));
                }
                int nSMTPTimeout = 300;
                if (!string.IsNullOrEmpty(context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:smtp-timeout")))
                {
                    nSMTPTimeout = int.Parse(context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:smtp-timeout"));
                }
                string sMailFrom       = context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:mail-from");
                string sAppInternalUri = context.Config.SelectNodeTextValue("it:app-data/it:system-location/it:internal-base-uri");
                string sAppExternalUri = context.Config.SelectNodeTextValue("it:app-data/it:system-location/it:external-base-uri");
                string sXslFileName    = context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:stylesheet");
                sXslFileName = Path.Combine(context.Config.BaseConfigPath, sXslFileName);
                int    nDigestInterval       = XmlConvert.ToInt32(context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:digest-interval"));
                int    nMaxMessagesPerDigest = XmlConvert.ToInt32(context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:max-messages-per-digest"));
                int    nMaxMessagesPerOnce   = XmlConvert.ToInt32(context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:max-messages-per-once"));
                int    nIdleTime             = XmlConvert.ToInt32(context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:idle-time"));
                string sTestEmail            = context.Config.SelectNodeTextValue("it:app-data/it:messaging/it:test-email");


                Croc.IncidentTracker.Messaging.MessageGenerator gen = new MessageGenerator(
                    new ApplicationInstallation[]
                {
                    new ApplicationInstallation("Internal", sAppInternalUri),
                    new ApplicationInstallation("External", sAppExternalUri)
                },
                    sXslFileName,
                    nDigestInterval,
                    nMaxMessagesPerDigest,
                    nMaxMessagesPerOnce,
                    context.Connection.Connection as SqlConnection,
                    new MessageMailer(
                        sSMTPHost, nSMTPPort, nSMTPTimeout, sMailFrom, sTestEmail
                        )
                    );

                try
                {
                    // Такая команда может выполняться только одна!
                    if (Interlocked.Increment(ref runningInstanceCount) > 1)
                    {
                        throw new ApplicationException("Команда рассылки сообщений может быть запущена только в одном экземпляре");
                    }

                    Trace.WriteLine("SendNotificationMailAsyncCommand::Start");

                    // Синий цикл
                    for (;;)
                    {
                        int nSentMessages = 0;
                        try
                        {
                            nSentMessages = gen.Run();
                        }
                        catch (Exception e)
                        {
                            if (e is ThreadAbortException)
                            {
                                break;
                            }
                            else
                            {
                                if (mySwitch.Enabled)
                                {
                                    Trace.WriteLine(DateTime.Now + " - ошибка при рассылке сообщений " + Environment.NewLine + e);
                                }
                            }
                        }
                        try
                        {
                            //	context.Suspend(new XResponse(), new TimeSpan(0,0, nSentMessages>0?0:nIdleTime,1,0));
                        }
                        catch {};
                    }
                }
                finally
                {
                    Interlocked.Decrement(ref runningInstanceCount);
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.ToString());
                throw;
            }

            return(new XResponse());
        }
Ejemplo n.º 26
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Request.Cookies["yklm_admin"] != null)
                {
                    //UserNameBox.Value = Request.Cookies["yklm_admin"]["username"].ToString();
                    //password.Attributes["value"] = "**********";
                }
            }

            if (XRequest.IsPost())
            {
                string code   = XRequest.GetString("CCode").ToUpper();
                string secode = this.Session["CCode"].ToString().ToUpper();
                if (this.Session["CCode"] == null)
                {
                    AlertAndRedirect("验证码已失效!");
                    return;
                }
                else if (XRequest.GetString("CCode").ToUpper() != this.Session["CCode"].ToString().ToUpper())
                {
                    AlertAndRedirect("验证码错误!");
                    return;
                }
                else
                {
                    string userName   = XRequest.GetString("UserNameBox");
                    string passWord   = Cryptography.MD5(XRequest.GetString("pas"));
                    string RememberMe = WebBase.GetFormString("RememberMe", "");

                    Model.Manage manage = new viviapi.Model.Manage();
                    manage.username         = userName;
                    manage.password         = passWord;
                    manage.lastLoginTime    = DateTime.Now;
                    manage.lastLoginIp      = viviLib.Web.ServerVariables.TrueIP;
                    manage.LastLoginAddress = WebUtility.GetIPAddress(manage.lastLoginIp);
                    manage.LastLoginRemark  = WebUtility.GetIPAddressInfo(manage.lastLoginIp);

                    string message = BLL.ManageFactory.SignIn(manage);

                    if (manage.id > 0)
                    {
                        if (RememberMe != null)
                        {
                            HttpCookie hc = new HttpCookie("yklm_admin");
                            DateTime   dt = DateTime.Now;
                            TimeSpan   ts = new TimeSpan(90, 0, 0, 0, 0); //过期时间为1分钟
                            hc.Expires = dt.Add(ts);                      //设置过期时间

                            hc.Values.Add("username", userName);

                            Response.AppendCookie(hc);
                        }
                        else
                        {
                            HttpCookie hc = new HttpCookie("yklm_admin");
                            hc.Expires = DateTime.Now.AddMonths(-24);
                            Response.Cookies.Add(hc);
                        }

                        AlertAndRedirect(string.Empty, "main.aspx");
                    }
                    else
                    {
                        AlertAndRedirect(message);
                    }
                }
            }
        }
 /// <summary>
 /// Выполнение команды
 /// </summary>
 public override XResponse Execute(XRequest request, IXExecutionContext context)
 {
     return(new XResponse());
 }
Ejemplo n.º 28
0
        /// <summary>
        /// Метод запуска операции на выполнение, «входная» точка операции
        /// </summary>
        /// <param name="request">Запрос на выполнение операции</param>
        /// <param name="context">Контекст выполнения операции</param>
        /// <returns>Результат выполнения</returns>
        public override XResponse Execute(XRequest request, IXExecutionContext context)
        {
            new JobsLoop().Run();

            return(new XResponse());
        }
Ejemplo n.º 29
0
        /// <summary>
        /// Запускает планировщик
        /// </summary>
        public static void Run()
        {
            XRequest request = new XRequest("JobsScheduler");

            XFacade.Instance.ExecCommandAsync(request);
        }
Ejemplo n.º 30
0
        /// <summary>
        /// ћетод запуска операции на выполнение, <входна¤> точка операции
        /// ѕ≈–≈√–”∆≈ЌЌџ…, —“–ќ√ќ “»ѕ»«»–ќ¬јЌЌџ… ћ≈“ќƒ
        /// ¬џ«џ¬ј≈“—я яƒ–ќћ ј¬“ќћј“»„≈— »
        /// </summary>
        /// <param name="request">«апрос на выполнение операции</param>
        /// <param name="context"> онтекст выполнени¤ операции</param>
        /// <returns>–езультат выполнени¤</returns>
        public GetCurrentUserNavInfoResponse Execute(XRequest request, IXExecutionContext context)
        {
            // –езультат:
            GetCurrentUserNavInfoResponse response = new GetCurrentUserNavInfoResponse();

            // —разу зададим значени¤ по умолчанию:
            response.NavigationInfo.ShowExpensesPanel            = true;
            response.NavigationInfo.ExpensesPanelAutoUpdateDelay = 0;
            response.NavigationInfo.UseOwnStartPage = false;

            // ќписание пользловател¤:
            ITUser user = (ITUser)XSecurityManager.Instance.GetCurrentUser();

            // ... если пользователь Ќ≈ аутентифицирован или если это —»—“≈ћЌџ…
            // —≈–¬»—, то возвращаем "пустые" данные; Web-сторона анализирует
            // это отдельно:
            if (!user.IsAuthenticated || user.IsServiceAccount)
            {
                return(response);
            }

            // #1: Ќј—“–ќ… » ѕ–ќ‘»Ћя ѕќЋ№«ќ¬ј“≈Ћя
            //	-- если пользователь аутентифицирован
            //	-- если это не системный сервис
            DomainObjectData dodUserProfile = getUserProfile(user.SystemUserID, context.Connection);

            if (null != dodUserProfile)
            {
                // «ачитаем значени¤ свойств объекта профил¤ и перепишем значени¤
                // в объект-опсатель, но только если они отличны от NULL (иначе
                // будут действовать значени¤ по умолчанию, заданые выше):
                object oValue = dodUserProfile.GetLoadedPropValue("ShowExpensesPanel");
                if (DBNull.Value != oValue)
                {
                    response.NavigationInfo.ShowExpensesPanel = (bool)oValue;
                }

                oValue = dodUserProfile.GetLoadedPropValue("ExpensesPanelAutoUpdateDelay");
                if (DBNull.Value != oValue)
                {
                    response.NavigationInfo.ExpensesPanelAutoUpdateDelay = (int)oValue;
                }

                oValue = dodUserProfile.GetLoadedPropValue("StartPage");
                if (DBNull.Value != oValue)
                {
                    response.NavigationInfo.UseOwnStartPage = true;
                    response.NavigationInfo.OwnStartPage    = (StartPages)oValue;
                }
            }
            else
            {
                // ƒанные по "своей" странице не заданы - по умолчанию
                // идем на страницу "мои инциденты"
                response.NavigationInfo.UseOwnStartPage = true;
                response.NavigationInfo.OwnStartPage    = StartPages.CurrentTaskList;
            }


            // #2: јЌјЋ»« ѕ–»¬»Ћ≈√»… ѕќЋ№«ќ¬ј“≈Ћя - формирование доступных элементов навигационной панели:
            //	-- если пользователь аутентифицирован
            //	-- если это не системный сервис

            // ƒобавл¤ем идентификаторы доступных элементов навигационной панели:
            // ...домашн¤¤ станица - доступна всегда
            response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_HomePage, String.Empty);
            // ...иерархи¤ " лиенты-проекты" - доступна всегда
            response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_CustomerActivityTree, String.Empty);
            // ...список проектов - доступен всегда
            response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_ActivityList, String.Empty);
            // ...список "мои инциденты" - доступен всегда
            response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_CurrentTasks, String.Empty);
            // ...список "поиск инцидентов" - доступен всегда
            response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_IncidentList, String.Empty);
            // ...список "списани¤" - доступен всегда, но дл¤ разных привилегий открывает разные URL:
            if (user.HasPrivilege(SystemPrivilegesItem.ManageTimeLoss.Name) || user.IsUnrestricted)
            {
                response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_TimeLossSearchingList, "x-list.aspx?OT=TimeLoss&METANAME=TimeLossSearchingListAdm");
            }
            else
            {
                response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_TimeLossSearchingList, "x-list.aspx?OT=TimeLoss&METANAME=TimeLossSearchingList");
            }
            // ...отчеты - доступны всем:
            response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_Reports, String.Empty);
            // ...иерархи¤ "структура компаний" - доступна всем:
            response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_OrgStructure, String.Empty);
            // ...функци¤ "поиск инцидента" - доступна всем:
            response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_FindIncident, String.Empty);

            // навигационные элементы —”“а доступны только если есть привилеги¤ "доступ в —”“"
            if (user.HasPrivilege(SystemPrivilegesItem.AccessIntoTMS.Name) || user.IsUnrestricted)
            {
                // ...домашн¤¤ страница —”“
                response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.TMS_HomePage, String.Empty);
                // ...список тендеров
                response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.TMS_TenderList, String.Empty);
            }

            // ...административный интерфейс доступен только "неограниченному" пользователю
            if (user.HasPrivilege(SystemPrivilegesItem.ManageRefObjects.Name) || user.IsUnrestricted)
            {
                response.NavigationInfo.UsedNavigationItems.Add(NavigationItemIDs.IT_Administation, String.Empty);
            }


            // #3:  орреци¤ стартовой страницы: если заданна¤ страница недоступна,
            // то сбросим указание "собственной" старотовой страницы (пользователь
            // попадет на "домашнюю":
            if (response.NavigationInfo.UseOwnStartPage)
            {
                string sOwnStartPageID = UserNavigationInfo.StartPage2NavItemID(response.NavigationInfo.OwnStartPage);
                if (null != sOwnStartPageID)
                {
                    if (null == response.NavigationInfo.UsedNavigationItems.GetValues(sOwnStartPageID))
                    {
                        sOwnStartPageID = null;
                    }
                }
                if (null == sOwnStartPageID)
                {
                    response.NavigationInfo.UseOwnStartPage = false;
                }
            }

            return(response);
        }
Ejemplo n.º 31
0
        /// <summary>
        /// Метод запуска операции на выполнение, <входная> точка операции
        /// ПЕРЕГРУЖЕННЫЙ, СТРОГО ТИПИЗИРОВАННЫЙ МЕТОД
        /// ВЫЗЫВАЕТСЯ ЯДРОМ АВТОМАТИЧЕСКИ
        /// </summary>
        /// <param name="request">Запрос на выполнение операции</param>
        /// <param name="context">Контекст выполнения операции</param>
        /// <returns>Результат выполнения</returns>
        public XGetObjectResponse Execute(XRequest request, IXExecutionContext context)
        {
            // #1: Определяем идентификатор текущего пользователя
            // Используем внутренние механизмы аутентификации
            ITUser            user             = (ITUser)XSecurityManager.Instance.GetCurrentUser();
            XParamsCollection datasourceParams = new XParamsCollection();

            datasourceParams.Add("UserID", user.SystemUserID);


            // #2: Найдем идентификатор объекта - профиля, связанного с текущим
            // пользователем: испоьзуем для этого тривиальный запрос, заданный
            // в "источнике данных"
            XDataSource dataSource = context.Connection.GetDataSource(DEF_DATASOURCE_NAME);

            dataSource.SubstituteNamedParams(datasourceParams, true);
            dataSource.SubstituteOrderBy();
            object oResult = dataSource.ExecuteScalar();
            // Ожидается, что в результате мы получаем GUID:
            Guid uidResult = Guid.Empty;

            if (null != oResult && DBNull.Value != oResult)
            {
                uidResult = context.Connection.Behavior.CastGuidValueFromDB(oResult);
            }


            // #3: Загрузка данных профиля и всех сопутствующих объектов:
            DomainObjectDataSet dataSet = new DomainObjectDataSet(context.Connection.MetadataManager.XModel);
            DomainObjectData    xobj;

            if (Guid.Empty != uidResult)
            {
                // Объект профиля уже есть; загружаем существующий
                xobj = dataSet.Load(context.Connection, "UserProfile", uidResult);
            }
            else
            {
                xobj = dataSet.CreateNew("UserProfile", false);
                // В новом объекте описания профиля сразу проставляем заглушку на текущего пользователя
                xobj.SetUpdatedPropValue("SystemUser", user.SystemUserID);
                // Задаем "собственную" стартовую страницу по умолчанию - список текущих инцидентов
                xobj.SetUpdatedPropValue("StartPage", StartPages.CurrentTaskList);
            }
            // Догружаем данные пользователя (SystemUser) и сотрудника (Employee)
            dataSet.PreloadProperty(context.Connection, xobj, "SystemUser.Employee");

            // Сериализуем датасет с загруженными объектами в формат для Web-клиента
            DomainObjectDataXmlFormatter formatter = new DomainObjectDataXmlFormatter(context.Connection.MetadataManager);
            // ... при этом учитываем, что в сериализованные данные должны так же попасть
            // данные с описанием пользователя и сотрудника:
            XmlElement xmlObject = formatter.SerializeObject(xobj, new string[] { "SystemUser.Employee" });

            if (Guid.Empty != uidResult)
            {
                // ..обработаем объект и все вложенные объекты в прогруженных свойства, расставим атрибуты ограничения доступа
                XmlObjectRightsProcessor.ProcessObject(xobj, xmlObject);
            }

            return(new XGetObjectResponse(xmlObject));
        }
Ejemplo n.º 32
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            setPower();
            if (!this.IsPostBack)
            {
                try
                {
                    loginip   = currentManage.lastLoginIp;
                    logintime = viviLib.TimeControl.FormatConvertor.DateTimeToTimeString(currentManage.lastLoginTime.Value);
                    username  = currentManage.username;
                    //paysouid.InnerText = "欢迎使用第三方支付平台";
                    //未审核商户数量
                    List <int> list = viviapi.BLL.User.Factory.GetUsers(" status=1");
                    uncheckeduserCount = list.Count;

                    DataSet ds = viviapi.BLL.Order.OrderIncome.Instance.TodayIncomeStat(-1);
                    if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                    {
                        DataRow row       = ds.Tables[0].Rows[0];
                        int     bankcount = 0;
                        int     cardcount = 0;
                        if (row["bankcount"] != DBNull.Value)
                        {
                            bankcount = Convert.ToInt32(row["bankcount"].ToString());
                        }
                        if (row["cardcount"] != DBNull.Value)
                        {
                            cardcount = Convert.ToInt32(row["cardcount"].ToString());
                        }
                        orderCount = bankcount + cardcount;
                    }
                    WebInfo webInfo = WebInfoFactory.GetWebInfoByDomain(XRequest.GetHost());
                    if (webInfo != null)
                    {
                        webdomain = webInfo.Domain;
                        paydomain = webInfo.PayUrl;
                    }
                    //DataSet ds = viviapi.BLL.Order.OrderIncome.Instance.
                    //if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                    //{
                    //    DataRow row = ds.Tables[0].Rows[0];
                    //    int bankcount = 0;
                    //    int cardcount = 0;
                    //    if (row["bankcount"] != DBNull.Value)
                    //    {
                    //        //ordercount.InnerText = row["bankcount"].ToString();
                    //        bankcount = Convert.ToInt32(row["bankcount"]);
                    //    }
                    //    if (row["bankamt"] != DBNull.Value)
                    //        //totalmoney.InnerText = string.Format("{0:f2}", row["bankamt"]);

                    //        if (row["cardcount"] != DBNull.Value)
                    //        {
                    //            //succordercount.InnerText = row["cardcount"].ToString();
                    //            cardcount = Convert.ToInt32(row["cardcount"]);
                    //        }
                    //    if (row["cardamt"] != DBNull.Value)
                    //        //succtotalmoney.InnerText = string.Format("{0:f2}", row["cardamt"]);
                    //        Span1.InnerText = (bankcount + cardcount).ToString();
                    //}
                }
                catch { }
            }
        }
Ejemplo n.º 33
0
			public static string GetMessage (IntPtr Display, IntPtr ResourceID, IntPtr Serial, byte ErrorCode, XRequest RequestCode, byte MinorCode)
			{
				StringBuilder	sb;
				string		x_error_text;
				string		error;
				
				sb = new StringBuilder (160);
				XGetErrorText (Display, ErrorCode, sb, sb.Capacity);
				x_error_text = sb.ToString ();
				
				error = String.Format ("\n  Error: {0}\n  Request:     {1:D} ({2})\n  Resource ID: 0x{3:x}\n  Serial:      {4}", x_error_text, RequestCode, RequestCode, ResourceID.ToInt32 (), Serial);
				return error;
			}