Exemplo n.º 1
0
        public static BaseResultInfo FileToNewDB(string fileName, LOGTYPE logType, bool isUnified)
        {
            SiteLogger.ILogger logger = SiteLogger.LoggingFactory.GetLogger;
            List <string>      file   = LogReader.LogFileReader.ReadFile(fileName);

            if (isUnified)
            {
                file = LogReader.LogFileReader.UnifiedLogLines(file);
            }
            List <LogItem>    items      = LogReader.LogFileReader.LinesToLogs(file.ToArray(), logType);
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.GetLastLogItem(logType.ToString(), null);
            LogItem           last       = res.GetResult <LogItem>();
            int     itemsSentToDB        = items.Count;
            LogItem lastFound            = last == null? null: items.FirstOrDefault(l => l.InsertDate == last.InsertDate);

            if (lastFound == null)
            {
                res = repository.InsertLogItem(items);
            }
            else
            {
                List <LogItem> itemsToSend = items.FindAll(l => l.Index > lastFound.Index);
                itemsSentToDB = itemsToSend.Count;
                res           = repository.InsertLogItem(itemsToSend);
            }
            logger.Debug(string.Format("FILE NAME = {0} , TOTAL ITEMS  = {1} , ITEM TRY INSERT = {2}, TOTAL SUCCESS = {3}, TOTAL FAILD = {4}", fileName, items.Count, itemsSentToDB, res.ReturnValue, itemsSentToDB - res.ReturnValue));
            return(res);
        }
Exemplo n.º 2
0
        public BaseResultInfo InsertLogItem(List <LogItem> items)
        {
            SiteLogger.ILogger logger = SiteLogger.LoggingFactory.GetLogger;
            BaseResultInfo     result = new BaseResultInfo();

            List <ResultLogItem> errorData = new List <ResultLogItem>();

            try
            {
                using (SqlConnection conn = new SqlConnection(base.ConnectionString))
                {
                    conn.Open();
                    SqlParameterList commandParams = new SqlParameterList();
                    int successCount = 0;
                    foreach (var item in items)
                    {
                        try
                        {
                            commandParams = SqlSerializer.Serialize(item);
                            int res = SqlHelper.ExecuteNonQuery(conn, CommandType.StoredProcedure, SQL_ADD_LOG_ITEM, commandParams.ToArray());
                            successCount++;
                        }
                        catch (Exception ex)
                        {
                            logger.Error(string.Format("INDEX = {0}, DATETIME = {1}, LOG_TYPE = {2}, MESSAGE = {3}", item.Index, item.InsertDate, item.LogType, ex.Message));
                            errorData.Add(new ResultLogItem()
                            {
                                Log = item, ErrorMessage = ex.Message
                            });
                        }
                    }
                    result.ReturnValue  = successCount; commandParams.GetReturnValue();
                    result.ResultObject = errorData;
                    conn.Close();
                    if (result.ReturnValue < 0)
                    {
                        throw new Exception("SQL_ADD_LOG_ITEM");
                    }
                }
            }
            catch (Exception ex)
            {
                if (result.Error == null)
                {
                    result.Error = new BaseErrorInfo();
                }

                result.Error.BuildException(ex);
            }
            return(result);
        }