Example #1
0
        public override async Task <bool> SaveItem(DBItem item, DBTransaction transaction)
        {
            if ((item.UpdateState & DBUpdateState.Delete) == DBUpdateState.Delete &&
                item is DBLogItem logItem && FileLOBKey is DBLogColumn logColumn)
            {
                var lob     = item.GetValue <uint?>(logColumn);
                var current = logItem.BaseItem?.GetValue <uint?>(logColumn.BaseColumn);
                if (lob != null && lob != current)
                {
                    var qquery = new QQuery(this);
                    qquery.BuildParam(FileLOBKey, lob);
                    if (!Load(qquery).Any(p => p != item))
                    {
                        try
                        {
                            using (var transactionDeleteLOB = new DBTransaction(transaction.DbConnection, transaction.Caller))
                            {
                                await System.DeleteLOB(lob.Value, transactionDeleteLOB);

                                transactionDeleteLOB.Commit();
                            }
                        }
                        catch (Exception ex)
                        {
                            Helper.OnException(ex);
                        }
                    }
                }
            }
            return(await base.SaveItem(item, transaction));
        }
        /// <summary>
        /// Возвращает подразделение пользователя.
        /// </summary>
        /// <param name="idUser"></param>
        /// <returns>id подразделения</returns>
        private string GetDepartment()
        {
            DBList listUsers   = this.Site.UsersList;
            DBItem user        = listUsers.GetItem(this.UserID);
            string _department = "";

            _department = user.GetValue(Consts.FieldDepartment).ToString();

            return(_department);
        }
        /// <summary>
        /// Возвращает должность пользователя.
        /// </summary>
        /// <param name="idUser"></param>
        /// <returns>id должности</returns>
        private string GetPosition()
        {
            DBList listUsers = this.Site.UsersList;
            DBItem user      = listUsers.GetItem(this.UserID);
            string _position = "";

            _position = user.GetValue(Consts.FieldPosition).ToString();

            return(_position);
        }
Example #4
0
 public static void Write(BinaryWriter writer, DBItem row, Dictionary <DBColumn, int> map, bool old = false)
 {
     WriteSeparator(writer, DBRowBinarySeparator.RowStart);
     foreach (KeyValuePair <DBColumn, int> item in map)
     {
         object field = row.GetValue(item.Key);
         object value = old && row.GetOld(item.Key, out object oldValue) ? oldValue : field;
         if (value == null)
         {
             continue;
         }
         writer.Write(item.Value);
         Helper.WriteBinary(writer, value, true);
     }
     WriteSeparator(writer, DBRowBinarySeparator.RowEnd);
 }
        /// <summary>
        /// Возвращает должность пользователя
        /// </summary>
        /// <param name="idUser"></param>
        /// <returns></returns>
        private string Position(string idUser)
        {
            string _position = "";

            try
            {
                int id = Convert.ToInt32(idUser);

                // Подключаемся к БД
                DBSite site      = this.AppContext.Site;
                DBList listUsers = site.UsersList;
                DBItem user      = listUsers.GetItem(id);

                _position = user.GetValue(Const.Position).ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(_position);
        }