Beispiel #1
0
        /// <summary>МЕТОД Изменяем логи xLog</summary>
        /// <param name="pUser">Кто создал/изменил протокол</param>
        /// <param name="pTipLog">Тип лога Создан, Изменён, Удалён</param>
        public void MET_ChangeLogs(int pUser, string pTipLog)
        {
            string _jLog = PROP_xLog;

            // Если нет логов и это НЕ создание протокола
            if (string.IsNullOrEmpty(PROP_xLog) && pTipLog != "Создан")
            {
                // СОЗДАЕМ первый лог (если изменили протокол вытаскиваем информацию из xDateUp, pDate)
                PROP_xLog = UserLog.MET_LogAdd("", PROP_pDate < PROP_xDateUp ? PROP_pDate : PROP_xDateUp, "Создан", PROP_xUserUp, "-");
                // Если возможно ИЗМЕНЯЛСЯ протокол, добавляем изменение
                if (PROP_xDateUp > PROP_pDate)
                {
                    PROP_xLog = UserLog.MET_LogAdd("", PROP_xDateUp, "Изменён", PROP_xUserUp, "-");
                }
            }
            else
            {
                PROP_xLog = UserLog.MET_LogAdd(PROP_xLog, DateTime.Now, pTipLog);
            }
        }
Beispiel #2
0
        /// <summary>МЕТОД Изменяем логи xLog (Изменён, Удалён)</summary>
        /// <param name="pLog">Строка текущего лога</param>
        /// <param name="pDate">Дата лога</param>
        /// <param name="pTip">Тип лога Создан, Изменён, Удалён</param>
        /// <param name="pUser">Кто изменил/удалил документ</param>
        /// <param name="pVer">Версия программы (по умолчанию текущее версия)</param>
        /// <remarks>Работа с json https://www.newtonsoft.com/json/help/html/QueryingLINQtoJSON.htm </remarks>
        public static string MET_LogAdd(string pLog, DateTime pDate, string pTip = "Изменён", int pUser = 0, string pVer = "")
        {
            if (pUser == 0)
            {
                pUser = MyGlo.User;
            }
            if (pVer == "")
            {
                pVer = MyMet.MET_Ver();
            }

            // Если Создан лог
            if (string.IsNullOrEmpty(pLog))
            {
                return(MET_CreateLogs(pUser, DateTime.Now.ToString("dd.MM.yyyy H:mm"), pVer));
            }
            var     _ListLogs = new List <UserLog>();
            UserLog _Log;
            JObject _Json = JObject.Parse(pLog);

            foreach (var i in _Json["Log"].Children())
            {
                _Log = new UserLog
                {
                    Cod  = (int)i["Cod"],
                    Date = (string)i["Date"],
                    Tip  = (string)i["Tip"],
                    User = (int)i["User"],
                    Ver  = (string)i["Ver"]
                };
                _ListLogs.Add(_Log);
            }
            // Берем последний лог и смотрим тип, кто и когда его менял
            _Log = _ListLogs.LastOrDefault();
            if (_Log != null && _Log.Tip == pTip && _Log.User == pUser && _Log.Ver == MyMet.MET_Ver() &&
                (pDate - DateTime.ParseExact(_Log.Date, "dd.MM.yyyy H:mm", CultureInfo.InvariantCulture)).Hours < 6)
            {
                // Если прошло менее 6 часов просто меняем время редактирования у последнего лога
                _Log.Date = DateTime.Now.ToString("dd.MM.yyyy H:mm");
            }
            else
            {
                // Иначе добавляем новый логи
                _Log = new UserLog
                {
                    Cod  = _ListLogs.Count + 1,
                    Date = pDate.ToString("dd.MM.yyyy H:mm"),
                    Tip  = pTip,
                    User = pUser,
                    Ver  = MyMet.MET_Ver()
                };
                _ListLogs.Add(_Log);
            }
            string _xLog = JsonConvert.SerializeObject(_ListLogs,
                                                       Formatting.None,
                                                       new JsonSerializerSettings {
                DefaultValueHandling = DefaultValueHandling.Ignore
            });

            _xLog = "{ \"Log\":" + _xLog + "}";
            return(_xLog);
        }
Beispiel #3
0
        /// <summary>МЕТОД Изменяем логи xLog</summary>
        /// <param name="pUser">Кто создал/изменил протокол</param>
        /// <param name="pTipLog">Тип лога Создан, Изменён, Удалён</param>
        public void MET_ChangeLogs1(int pUser, string pTipLog)
        {
            string  _jLog     = PROP_xLog;
            var     _ListLogs = new List <UserLog>();
            UserLog _Log;

            // Если нет логов и это НЕ создание протокола
            if (string.IsNullOrEmpty(_jLog) && pTipLog != "Создан")
            {
                // Если изменили протокол (вытаскиваем информацию из xDateUp, pDate)
                _Log = new UserLog
                {
                    Cod                        = 1,
                    Date                       = PROP_pDate < PROP_xDateUp?PROP_pDate.ToString("dd.MM.yyyy H:mm") : PROP_xDateUp.ToString("dd.MM.yyyy H:mm"),
                                          Tip  = "Создан",
                                          User = PROP_xUserUp,
                                          Ver  = ""
                };
                _ListLogs.Add(_Log);
                // Если ВОЗМОЖНО менялся протокол
                if (PROP_xDateUp > PROP_pDate)
                {
                    _Log = new UserLog
                    {
                        Cod  = 2,
                        Date = PROP_xDateUp.ToString("dd.MM.yyyy H:mm"),
                        Tip  = "Изменён",
                        User = PROP_xUserUp,
                        Ver  = ""
                    };
                    _ListLogs.Add(_Log);
                }
            }
            else
            {
                // Заполняем старые логи
                JObject _Json = JObject.Parse(_jLog);
                foreach (var i in _Json["Log"].Children())
                {
                    _Log = new UserLog
                    {
                        Cod  = (int)i["Cod"],
                        Date = (string)i["Date"],
                        Tip  = (string)i["Tip"],
                        User = (int)i["User"],
                        Ver  = (string)i["Ver"]
                    };
                    _ListLogs.Add(_Log);
                }
            }
            // Берем последний лог и смотрим тип, кто и когда его менял
            _Log = _ListLogs.LastOrDefault();
            if (_Log != null && _Log.Tip == pTipLog && _Log.User == pUser && _Log.Ver == MyMet.MET_Ver() &&
                (DateTime.Now - DateTime.ParseExact(_Log.Date, "dd.MM.yyyy H:mm", CultureInfo.InvariantCulture)).Hours < 6)
            {
                // Если прошло менее 6 часов просто меняем время редактирования у последнего лога
                _Log.Date = DateTime.Now.ToString("dd.MM.yyyy H:mm");
            }
            else
            {
                // Иначе добавляем новый логи
                _Log = new UserLog
                {
                    Cod  = _ListLogs.Count + 1,
                    Date = DateTime.Now.ToString("dd.MM.yyyy H:mm"),
                    Tip  = pTipLog,
                    User = pUser,
                    Ver  = MyMet.MET_Ver()
                };
                _ListLogs.Add(_Log);
            }
            PROP_xLog = JsonConvert.SerializeObject(_ListLogs,
                                                    Formatting.None,
                                                    new JsonSerializerSettings {
                DefaultValueHandling = DefaultValueHandling.Ignore
            });
            PROP_xLog = "{ \"Log\":" + PROP_xLog + "}";
        }