Пример #1
0
        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));
        }
Пример #2
0
        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));
        }