コード例 #1
0
        public void GetTechnologyResponse_InstantiateCorrectly(Tuple <Technology, TechnologyResponse> data)
        {
            TechnologyResponse result = TechnologyFactory.GetTechnologyResponse(data.Item1);

            Assert.AreEqual(data.Item2.Id, result.Id);
            Assert.AreEqual(data.Item2.Name, result.Name);
        }
コード例 #2
0
        public ActionResult <TechnologyResponse> Get()
        {
            TechnologyResponse response = new TechnologyResponse();

            try
            {
                var itemsFound = _repository.GetTechnologies();
                response.TechnologyList   = itemsFound;
                response.SuccessIndicator = true;
                logger.LogInformation(200, "SuccessIndicator = true");
                return(Ok(response));
            }
            catch (Exception ex)
            {
                var faultObj = new Fault()
                {
                    FaultMessage = ex.Message,
                    FaultSource  = ex.Source
                };

                if (ex.InnerException != null &&
                    !string.IsNullOrWhiteSpace(ex.InnerException.Message))
                {
                    faultObj.InnerMessage = ex.InnerException.Message;
                }

                response.Fault            = faultObj;
                response.SuccessIndicator = false;
                logger.LogError(500, faultObj.FaultMessage);
                logger.LogInformation(500, "sucessIndicator = false");
                return(new InternalServerErrorObjectResult(response));
            }
        }
コード例 #3
0
        public IActionResult Put([FromBody] Technology technology)
        {
            if (technology == null)
            {
                logger.LogInformation(400, "Bad Request");
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                logger.LogInformation(422, "Validation error");
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            TechnologyResponse response = new TechnologyResponse()
            {
                TechnologyList = new List <Technology>()
                {
                    technology
                }
            };

            try
            {
                if (_repository.UpdateTechnology(technology) > 0)
                {
                    logger.LogInformation(200, "SuccessIndicator = true");
                    response.SuccessIndicator = true;
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                var faultObj = new Fault()
                {
                    FaultMessage = ex.Message,
                    FaultSource  = ex.Source
                };

                if (ex.InnerException != null &&
                    !string.IsNullOrWhiteSpace(ex.InnerException.Message))
                {
                    faultObj.InnerMessage = ex.InnerException.Message;
                }

                response.Fault            = faultObj;
                response.SuccessIndicator = false;
                logger.LogError(500, faultObj.FaultMessage);
                logger.LogInformation(500, "sucessIndicator = false");
            }

            return(new InternalServerErrorObjectResult(response));
        }
コード例 #4
0
        public ActionResult <IEnumerable <Technology> > Get(string name)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                return(BadRequest());
            }

            TechnologyResponse response = new TechnologyResponse();

            try
            {
                var technologyResponse = _repository.GetTechnologiesByName(name);
                if (technologyResponse == null)
                {
                    logger.LogInformation(200, "No Records Found");
                    return(NotFound());
                }
                else
                {
                    response.TechnologyList   = technologyResponse.ToList();
                    response.SuccessIndicator = true;
                    logger.LogInformation(200, "SuccessIndicator = true");
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                var faultObj = new Fault()
                {
                    FaultMessage = ex.Message,
                    FaultSource  = ex.Source
                };

                if (ex.InnerException != null &&
                    !string.IsNullOrWhiteSpace(ex.InnerException.Message))
                {
                    faultObj.InnerMessage = ex.InnerException.Message;
                }

                response.Fault            = faultObj;
                response.SuccessIndicator = false;
                logger.LogError(500, faultObj.FaultMessage);
                logger.LogInformation(500, "sucessIndicator = false");
            }

            return(new InternalServerErrorObjectResult(response));
        }
コード例 #5
0
        public IActionResult Delete(string name)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                logger.LogInformation(400, "Bad Request");
                return(BadRequest());
            }

            TechnologyResponse response = new TechnologyResponse();

            try
            {
                if (_repository.DeleteTechnology(name) > 0)
                {
                    response.SuccessIndicator = true;
                    logger.LogInformation(200, "SuccessIndicator = true");
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                var faultObj = new Fault()
                {
                    FaultMessage = ex.Message,
                    FaultSource  = ex.Source
                };

                if (ex.InnerException != null &&
                    !string.IsNullOrWhiteSpace(ex.InnerException.Message))
                {
                    faultObj.InnerMessage = ex.InnerException.Message;
                }

                response.Fault            = faultObj;
                response.SuccessIndicator = false;
                logger.LogError(500, faultObj.FaultMessage);
                logger.LogInformation(500, "sucessIndicator = false");
            }

            return(new InternalServerErrorObjectResult(response));
        }
コード例 #6
0
 public InternalServerErrorObjectResult(TechnologyResponse faultResponse)
     : base(faultResponse)
 {
     StatusCode = 500;
 }