public async Task <IActionResult> UpdateDocument(int documentId, [FromBody] DocumentUpdateRequest file) { if (file == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest()); } var document = _documentRepository.GetById <Document>(documentId); if (document == null) { return(NotFound(documentId)); } try { // remove var types = _documentRepository.GetAll <PartnerTypeDocument>(p => p.DocumentId == documentId); foreach (var type in types) { _documentRepository.Remove <PartnerTypeDocument>(type); } foreach (var partnerType in file.PartnerTypes.Split(',')) { var pd = new PartnerTypeDocument(); pd.PartnerTypeId = int.Parse(partnerType); pd.DocumentId = document.DocumentId; document.PartnerTypeDocuments.Add(pd); } document.DocumentCategoryId = file.DocumentCategoryId; document.DocumentName = file.DocumentName; document.Details = file.Details; document.LastModified = DateTime.UtcNow; document.LastModifiedBy = "Share Point"; _documentRepository.Attach <Document>(document); _documentRepository.Complete(); return(NoContent()); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError)); } }