public async Task <IActionResult> GetByOrderIdsAsync(int[] orderId)
        {
            if (!ModelState.IsValid || orderId == null || orderId.Length == 0)
            {
                return(Json(new FailApiResponse("Wrong query parameters format")));
            }

            var successApiResponse = new SuccessApiResponse();

            using (UnitOfWork unitOfWork = new UnitOfWork(this._databaseContext))
            {
                var responses = unitOfWork.ResponseRepository.GetMany(orderId);

                List <ResponseDTO> responseDTOs = new List <ResponseDTO>();
                foreach (var response in responses)
                {
                    var dto = new ResponseDTO(response.Id, response.OrderId, response.Date.ToShortDateString(), response.Content, response.Type);
                    responseDTOs.Add(dto);
                }
                successApiResponse.Responses.AddRange(responseDTOs);

                await unitOfWork.Save();
            }

            return(Json(successApiResponse));
        }
        public async Task <IActionResult> FindByDateAndContentAsync([FromBody] IdDateAndContentDTO searchParameters)
        {
            if (!ModelState.IsValid || searchParameters.OrderIds == null || searchParameters.OrderIds.Length == 0 || searchParameters.Type == null)
            {
                return(Json(new FailApiResponse("Wrong parameters format")));
            }

            var successApiResponse = new SuccessApiResponse();

            using (UnitOfWork unitOfWork = new UnitOfWork(this._databaseContext))
            {
                var responses = unitOfWork.ResponseRepository.GetResponseByIdDateAndContent(
                    searchParameters.OrderIds, searchParameters.Type, searchParameters.DateAfter,
                    searchParameters.DateBefore, searchParameters.Content);

                List <ResponseDTO> responseDTOs = new List <ResponseDTO>();
                foreach (var response in responses)
                {
                    var dto = new ResponseDTO(response.Id, response.OrderId, response.Date.ToShortDateString(), response.Content, response.Type);
                    responseDTOs.Add(dto);
                }
                successApiResponse.Responses.AddRange(responseDTOs);

                await unitOfWork.Save();
            }

            return(Json(successApiResponse));
        }
Exemplo n.º 3
0
        public void JsonIsReadProperly()
        {
            string             json = ReadDataFile("SuccessApiResponse1.json");
            SuccessApiResponse sar  = new SuccessApiResponse(json, false);

            Assert.True(sar.Success);
            Assert.Null(sar.Error);

            json = ReadDataFile("SuccessApiResponse2.json");
            sar  = new SuccessApiResponse(json, false);
            Assert.False(sar.Success);
            Assert.NotNull(sar.Error);
            Assert.Equal(404, sar.Error.Code);
        }