public static async Task <Result> Save(string site, Models.ProfessionalTranslator.Net.Log.Exception inputItem)
        {
            var messages = new List <string>();

            if (inputItem == null)
            {
                return(new Result(ResultStatus.Failed, "Exception cannot be null."));
            }

            Tables.dbo.Site siteItem = await dbRead.Site.Item(site);

            if (siteItem == null)
            {
                return(new Result(ResultStatus.Failed, "No site was found with that name."));
            }

            if (string.IsNullOrEmpty(inputItem.Message))
            {
                messages.Add("Message cannot be empty.");
            }
            if (string.IsNullOrEmpty(inputItem.Type))
            {
                messages.Add("Type cannot be empty.");
            }
            if (string.IsNullOrEmpty(inputItem.Class))
            {
                messages.Add("Class cannot be empty.");
            }
            else if (inputItem.Class.Length > 2048)
            {
                messages.Add("Class must be 2048 characters or fewer.");
            }

            if (messages.Any())
            {
                return(new Result(ResultStatus.Failed, messages));
            }

            var convertItem = new Tables.Log.Exception
            {
                Id          = inputItem.Id,
                SiteId      = siteItem.Id,
                Message     = inputItem.Message,
                Stacktrace  = inputItem.Stacktrace,
                Type        = inputItem.Type,
                Class       = inputItem.Class,
                DateCreated = inputItem.DateCreated ?? DateTime.Now
            };

            Result saveResult = await dbWrite.Item(site, convertItem);

            return(saveResult);
        }
        public static async Task <Models.ProfessionalTranslator.Net.Log.Exception> Item(Guid id)
        {
            Tables.Log.Exception exception = await dbReadLog.Item(id);

            if (exception == null)
            {
                return(null);
            }
            var output = new Models.ProfessionalTranslator.Net.Log.Exception
            {
                Id          = exception.Id,
                Message     = exception.Message,
                Stacktrace  = exception.Stacktrace,
                Type        = exception.Type,
                Class       = exception.Class,
                DateCreated = exception.DateCreated
            };

            return(output);
        }
        internal static async Task Save(string site, System.Exception inputItem, string className)
        {
            var exception = new Models.ProfessionalTranslator.Net.Log.Exception(inputItem, $"Repository.{className}");

            await Save(site, exception);
        }