예제 #1
0
        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));
            }
        }