private static async void ReservationGlobalExceptionHandler(IExceptionHandlerFeature ex, HttpContext context)
        {
            ReservationGlobalException exception = (ReservationGlobalException)ex.Error;
            var logger = _loggerFactory.CreateLogger($"{exception.ErrorCode} - GlobalExceptionHandler");

            logger.LogError(context.User.Identity.Name, GetLogMessage(new List <Exception> {
                exception
            }));
            List <ReservationErrorMessage> detailErrorList = GetExceptionErrors(exception.ExceptionList);

            RequestResultViewModel result = new RequestResultViewModel
            {
                Data            = null,
                ErrorCode       = exception.ErrorCode,
                ErrorMessage    = exception.UserMessage,
                DetailErrorList = detailErrorList
            };
            var serializerSetting = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            var jsonResult = JsonConvert.SerializeObject(result, serializerSetting);

            context.Response.StatusCode = 501;
            await context.Response.WriteAsync(jsonResult);
        }
Example #2
0
        protected RequestResultViewModel GetRequestResult(object data)
        {
            RequestResultViewModel res = new RequestResultViewModel
            {
                Data = data
            };

            return(res);
        }
Example #3
0
        private RequestResultViewModel GetRequestResult(string message, string errorCode)
        {
            RequestResultViewModel res = new RequestResultViewModel
            {
                ErrorCode    = errorCode,
                ErrorMessage = message,
            };

            return(res);
        }
Example #4
0
        public async Task <List <RequestResultViewModel> > ShowDetailsAsync(int id)
        {
            var results = await _childRequestResultRepository.GetAllByParentIdAsync(id);

            var sortedResults = new List <RequestResultViewModel>();

            foreach (var res in results)
            {
                var viewModel = new RequestResultViewModel()
                {
                    Url        = res.Url,
                    Min        = await _childRequestResultRepository.GetMinValueByUrlAsync(res.Url),
                    Max        = await _childRequestResultRepository.GetMaxValueByUrlAsync(res.Url),
                    StatusCode = res.StatusCode
                };
                sortedResults.Add(viewModel);
            }
            return(sortedResults.OrderBy(_ => _.Min).ToList());
        }
Example #5
0
        private RequestResultViewModel GetRequestResult(ModelStateDictionary modelState, string errorCode)
        {
            RequestResultViewModel res = new RequestResultViewModel
            {
                ErrorMessage = "اطلاعات ورودی نامعتبر است",

                ErrorCode          = errorCode,
                DetailErrorList    = GetModelStateDetailErrors(modelState, errorCode),
                ValidationMessages = GetModelStateErrors(modelState)
            };

            if (modelState.Values.Any())
            {
                var error = modelState.Values.SelectMany(c => c.Errors).Select(c => c.ErrorMessage).ToList();
                if (error.Count > 0)
                {
                    res.ErrorMessage = string.Join(", ", error);
                }
            }
            return(res);
        }
Example #6
0
        public async Task <List <RequestResultViewModel> > SortedMainTableAsync()
        {
            var results = await _domainRequestResultRepository.GetAllAsync();


            var groups = results.GroupBy(x => x.Url).Select(x => x.First());

            var viewResults = new List <RequestResultViewModel>();

            foreach (var res in groups)
            {
                var viewModel = new RequestResultViewModel()
                {
                    Id  = res.Id,
                    Url = res.Url
                };
                viewResults.Add(viewModel);
            }

            return(viewResults);
        }