//#region SyncMethods

        //public void AddWarningLog(string data)
        //{
        //    AddLog(data, LogLevel.Warning.ToString());
        //}

        //public void AddInfoLog(string data)
        //{
        //    AddLog(data, LogLevel.Info.ToString());
        //}

        //public void AddFatelLog(string data)
        //{
        //    AddLog(data, LogLevel.Fatel.ToString());
        //}

        //private void AddLog(string data, string logType)
        //{
        //    if (data == null)
        //        throw new ArgumentNullException();

        //    IParser<T> parser = parserFactory.Build(data);

        //    var parsedData = parser.Parse(data);

        //    var props = new Helper().ConvertTModelPropertyAndValueToString<T>(parsedData);

        //    saveToDB(props, logType);
        //}

        //private void saveToDB(object data, string logType)
        //{
        //    repoLogger.Add(new DomainModels.Logger()
        //    {
        //        LogLevel = logType,
        //        LogTime = DateTime.Now,
        //        Message = data.ToString()
        //    });

        //    repoLogger.SaveChanges();
        //}

        //#endregion

        #region AsyncMethods

        private async Task AddLogAsync(string data, string logType)
        {
            if (data == null)
            {
                throw new ArgumentNullException();
            }

            IParser <T> parser = parserFactory.Build(data);

            var parsedData = parser.Parse(data);

            var props = new Helper().ConvertTModelPropertyAndValueToString <T>(parsedData);

            await saveToDBAsync(props, logType);
        }