/// <summary>
        /// Adds transformer to db
        /// </summary>
        /// <param name="transformer">Transformer model entity to be added</param>
        /// <returns>string</returns>
        public async Task <IActionResult> ExecuteAdd(Transformer transformer)
        {
            IActionResult response;

            try
            {
                var validationResults = new List <ValidationResult>();
                var isValid           = Validator.TryValidateObject(transformer, new ValidationContext(transformer, serviceProvider: null, items: null), validationResults);

                if (!isValid)
                {
                    response = new ObjectResult(string.Join(", ", validationResults.Select(s => s.ErrorMessage)))
                    {
                        StatusCode = StatusCodes.Status412PreconditionFailed
                    };
                }
                else
                {
                    if (transformer.Name.ToLower().Trim().Contains("optimus") &&
                        transformer.Name.ToLower().Trim().Contains("prime") &&
                        transformer.AllegianceId == (_transformerRepository
                                                     .getTransformerAllegiance(s => s.AllegianceName.ToLower().Trim().Contains("decepticon")))
                        .GetAwaiter().GetResult().TransformerAllegianceId)                                         // Is decepticon ?
                    {
                        response = new ObjectResult("Optimus prime cannot be decepticon");
                    }
                    else
                    {
                        Transformer transformerExistCheck = await _transformerRepository
                                                            .getTransformer(s => (s.Name.ToLower().Trim() == transformer.Name.ToLower().Trim() &&
                                                                                  s.AllegianceId == transformer.AllegianceId
                                                                                  )
                                                                            );

                        if (transformerExistCheck != null)
                        {
                            TransformerAllegiance transformerAllegianceType = await _transformerRepository.getTransformerAllegiance(s => s.TransformerAllegianceId == transformer.AllegianceId);

                            response = new ObjectResult($"{transformer.Name} with {transformerAllegianceType.AllegianceName} already exists !!");
                        }
                        else
                        {
                            int returnVal = await _transformerRepository.TransformerAdd(transformer);

                            response = (returnVal > 0 ? new OkObjectResult("Transformer added succesfully") : new ObjectResult("Transformer was not added"));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                response = new ObjectResult(ex);
            }
            return(response);
        }
Exemple #2
0
        public async Task <object> TransformerScore(int transformerId)
        {
            Transformer transformer;

            transformer = await _transformerRepository.getTransformer(s => s.TransformerId == transformerId);

            int sampleScore = (transformer != null ? await _transformerRepository.TransformerScore(transformer) : 0);
            var result      = await _transformersController.Score(transformer.TransformerId);

            var okObjectResult = result as OkObjectResult;
            var objectResult   = result as ObjectResult;

            if (okObjectResult != null)
            {
                dynamic resultValue = okObjectResult.Value as JObject;
                Assert.NotNull(resultValue, "Result output is null or not a json");
                Assert.IsTrue(resultValue.Score == sampleScore, "Scores doesn't match");
                return(resultValue);
            }
            else
            {
                string resultText = objectResult.Value as string;
                Assert.NotNull(resultText, "message is empty");
                return(resultText);
            }
        }