public ActionResult Details(string id) { var contract = ctx.Contracts.FirstOrDefault(c => c.Id == id); var contractVM = new BeContractViewModel() { Id = contract.Id, Description = contract.Description, Version = contract.Version, Inputs = contract.Inputs, Queries = contract.Queries.Select(q => new QueryViewModel() { Contract = q.Contract.Id, Mappings = q.Mappings }).ToList(), Outputs = contract.Outputs }; return(View("Details", contractVM)); }
public async System.Threading.Tasks.Task <ActionResult> CreateAsync(BeContractViewModel contractVM) { var contract = new BeContract() { Id = contractVM.Id, Description = contractVM.Description, Version = contractVM.Version, Inputs = contractVM.Inputs, Queries = new List <Query>(), Outputs = contractVM.Outputs }; if (contractVM.Queries != null) { contractVM.Queries.ForEach(q => { contract.Queries.Add(new Query() { Contract = ctx.Contracts.FirstOrDefault(c => c.Id.Equals(q.Contract)), Mappings = q.Mappings }); }); } try { await validators.ValidateBeContract(contract); } catch (BeContractException ex) { var validError = new { Status = "2", Error = ex.Message }; return(Json(validError)); } try { ctx.Contracts.Add(contract); ctx.SaveChanges(); await CallToMLAsync(new { ContractId = contract.Id, UserName = "******" }, "api/Contract/Add"); } catch (Exception ex) { var dbError = new { Status = "3", Error = ex.Message }; return(Json(dbError)); } var ret = new { Status = "1", Error = "None" }; return(Json(ret)); }