using AsbCloudApp.Data; using System; using System.Collections.Generic; namespace AsbCloudApp.Services { // TODO: make this nullable /// <summary> /// Отслеживание и сбор статистики по запросам /// </summary> public interface IRequerstTrackerService { /// <summary> /// Регистрирует новый запрос /// </summary> /// <param name="requestLog"></param> void RegisterRequest(RequestLogDto requestLog); /// <summary> /// Регистрирует новый запрос, вызвавший ошибку на сервере /// </summary> /// <param name="requestLog"></param> /// <param name="ex"></param> void RegisterRequestError(RequestLogDto requestLog, Exception ex); /// <summary> /// все зарегистрированные запросы /// </summary> /// <param name="take"></param> /// <returns></returns> IEnumerable<RequestLogDto> GetAll(int take = -1); /// <summary> /// запросы которые выполнялись быстро /// </summary> /// <param name="take"></param> /// <returns></returns> IEnumerable<RequestLogDto> GetFast(int take = -1); /// <summary> /// запросы, которые выполнялись медленно /// </summary> /// <param name="take"></param> /// <returns></returns> IEnumerable<RequestLogDto> GetSlow(int take = -1); /// <summary> /// запросы, которые завершились ошибкой /// </summary> /// <param name="take"></param> /// <returns></returns> IEnumerable<RequestLogDto> GetError(int take = -1); /// <summary> /// Статистика посещений пользователей /// </summary> /// <param name="take"></param> /// <returns></returns> IEnumerable<RequestLogUserDto> GetUsersStat(int take = -1); } }