public IHttpActionResult PostNode(string NodeAlias, [FromBody] ContractorApiModel contractorInfo) { try { contractorInfo.NodeAlias = NodeAlias; if (ModelState.IsValid) { if (!string.IsNullOrEmpty(contractorInfo.NativeId)) { unitOfWork.ContractorApiModel.AddOrUpdate(contractorInfo); try { unitOfWork.Save(); } catch (Exception ex) { ///TODO: parse exception details to determine duplication and other errors ModelState.AddModelError("Model", "Попытка записать дублирующиеся данные. Контрагент с такими кодами уже существует."); return(BadRequest(ModelState)); } } return(Ok()); } else { return(BadRequest(ModelState)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetByCodes([FromBody] ContractorApiModel inputContractorInfo) { ContractorApiModel outputContractorInfo = unitOfWork.ContractorApiModel.GetByCodes(inputContractorInfo); if (outputContractorInfo == null) { return(NotFound()); } return(Ok(outputContractorInfo)); }
public IHttpActionResult Get(string NodeAlias, string NativeId) { //if (!User.IsInRole("api")) // return Content(HttpStatusCode.Forbidden, "Unauthorized request"); ContractorApiModel contractorInfo = unitOfWork.ContractorApiModel.GetByNativeId(NativeId, NodeAlias); if (contractorInfo == null) { return(NotFound()); } return(Ok(contractorInfo)); }
public IHttpActionResult ValidateModel([FromBody] ContractorApiModel contractorInfo) { try { if (ModelState.IsValid) { return(Ok()); } else { return(BadRequest(ModelState)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public Contractor GetByCodes(ContractorApiModel contractorInfo) { var q = db.Contractors.Include("Address").Include("Links") .Where(c => c.TypeOfCounterparty == contractorInfo.TypeOfCounterparty && c.CountryOfRegistration == contractorInfo.CountryOfRegistration); switch (contractorInfo.CountryOfRegistration) { case Data.CountryEnum.UA: if (contractorInfo.TypeOfCounterparty == Data.TypeOfCounterpartyEnum.Entrepreneur) { q = q.Where(c => c.INN == contractorInfo.INN); } else if (contractorInfo.TypeOfCounterparty == Data.TypeOfCounterpartyEnum.LegalEntity) { q = q.Where(c => c.OKPO == contractorInfo.OKPO); } break; case Data.CountryEnum.RU: q = q.Where(c => c.INN == contractorInfo.INN); break; default: q = q.Where(c => c.INN == contractorInfo.INN); break; } if (contractorInfo.IsBranch) { q = q.Where(c => c.BranchCode == contractorInfo.BranchCode); } return(q.FirstOrDefault()); }