/// <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); }
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); } }