예제 #1
0
        public List <UserLogRecord> GetUserLog(DateTime _startDate, DateTime _endDate, string _userName, string _context)
        {
            List <UserLogRecord> _ret = new List <UserLogRecord>();
            string _sql = SQL_GetUserLog;

            if (_userName.Trim().Length > 0)
            {
                _sql += string.Format(" and yhid in (select yhid from qx2_yhxx t where yhm = '{0}' or xm = '{1}') ", _userName, _userName);
            }

            if (_context.Trim().Length > 0)
            {
                _sql += " and (CZXXNR like '%" + _context + "%' ) ";
            }

            _sql += " order by CZSJ DESC ";
            OracleParameter[] _param =
            {
                new OracleParameter(":KSRQ", OracleDbType.Date),
                new OracleParameter(":JSRQ", OracleDbType.Date)
            };
            _param[0].Value = _startDate;
            _param[1].Value = _endDate;

            OracleDataReader dr = OracleHelper.ExecuteReader(OracleHelper.ConnectionStringProfile, CommandType.Text,
                                                             _sql, _param);

            while (dr.Read())
            {
                UserLogRecord _mitem = new UserLogRecord(
                    dr.IsDBNull(0) ? "" : dr.GetString(0),
                    dr.IsDBNull(1) ? "" : dr.GetDecimal(1).ToString(),
                    dr.IsDBNull(9) ? "" : dr.GetString(9),
                    dr.IsDBNull(3) ? "" : dr.GetString(3),
                    dr.IsDBNull(4) ? "" : dr.GetString(4),
                    dr.IsDBNull(5) ? "" : dr.GetString(5),
                    dr.IsDBNull(6) ? "" : dr.GetString(6),
                    dr.IsDBNull(2) ? DateTime.MinValue : dr.GetDateTime(2),
                    dr.IsDBNull(7) ? 0 : Convert.ToInt32(dr.GetDecimal(7)),
                    dr.IsDBNull(8) ? "" : dr.GetString(8)

                    );
                _ret.Add(_mitem);
            }
            dr.Close();
            return(_ret);
        }
        public MonorailMailer EnableChanged(IEnablable item, string comment = null)
        {
            Template = "EnableChanged";
            To       = Config != null ? Config.RegisterListEmail : "*****@*****.**";
            From     = "*****@*****.**";
            var lastDisable   = "неизвестно";
            var reasonDisable = "неизвестно";

            var type  = "";
            var clazz = NHibernateUtil.GetClass(item);

            if (clazz == typeof(User))
            {
                type = "пользователя";
                var user = (User)item;
                PropertyBag["service"] = user.RootService;
                var disable = UserLogRecord.LastOff(user.Id);
                if (disable != null)
                {
                    lastDisable = String.Format("{0} пользователем {1}", disable.LogTime, disable.OperatorName);
                    if (!item.Enabled)
                    {
                        disable.Comment = comment;
                        disable.Save();
                    }
                    reasonDisable = disable.Comment;
                }
            }
            if (clazz == typeof(Address))
            {
                type = "адреса";
                var address = (Address)item;
                PropertyBag["service"] = address.Client;
                var disable = ArHelper.WithSession(session => AddressLogRecord.LastOff(session, address.Id));
                if (disable != null)
                {
                    lastDisable = String.Format("{0} пользователем {1}", disable.LogTime, disable.OperatorName);
                    if (!item.Enabled)
                    {
                        disable.Comment = comment;
                        ActiveRecordMediator.Save(disable);
                    }
                    reasonDisable = disable.Comment;
                }
            }
            if (clazz == typeof(Client))
            {
                type = "клиента";
                var client = ActiveRecordMediator <Client> .FindByPrimaryKey(((Service)item).Id);

                PropertyBag["service"] = client;
                var disable = ClientLogRecord.LastOff(client);
                if (disable != null)
                {
                    lastDisable = String.Format("{0} пользователем {1}", disable.LogTime, disable.OperatorName);
                    if (!item.Enabled)
                    {
                        disable.Comment = comment;
                        disable.Save();
                    }
                    reasonDisable = disable.Comment;
                }
            }
            if (clazz == typeof(Supplier))
            {
                type = "поставщика";
                PropertyBag["service"] = item;
                var disable = DbSession.Query <SupplierLog>().Where(s => s.Supplier == (Supplier)item && s.Disabled != null && s.Disabled == true).OrderByDescending(s => s.LogTime).FirstOrDefault();
                if (disable != null)
                {
                    lastDisable = String.Format("{0} пользователем {1}", disable.LogTime, disable.OperatorName);
                    if (!item.Enabled)
                    {
                        disable.Comment = comment;
                        DbSession.Save(disable);
                    }
                    reasonDisable = disable.Comment;
                }
            }

            if (item.Enabled)
            {
                Subject = String.Format("Возобновлена работа {0}", type);
            }
            else
            {
                Subject = String.Format("Приостановлена работа {0}", type);
            }
            if (!string.IsNullOrEmpty(lastDisable))
            {
                PropertyBag["lastDisable"] = lastDisable;
            }
            PropertyBag["item"]  = item;
            PropertyBag["admin"] = SecurityContext.Administrator;
            if (!string.IsNullOrEmpty(reasonDisable))
            {
                PropertyBag["reasonDisable"] = reasonDisable;
            }
            return(this);
        }