예제 #1
0
        public IHttpActionResult Post([FromUri] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!Request.Content.IsMimeMultipartContent())
            {
                return(StatusCode(HttpStatusCode.UnsupportedMediaType));
            }

            var multipartStreamProvider = Request.Content.ReadAsMultipartAsync().Result;
            var sContent = multipartStreamProvider.Contents.SingleOrDefault();

            if (sContent == null)
            {
                return(StatusCode(HttpStatusCode.NotAcceptable));
            }

            var user = _tenantsRepository.GetById(id);

            if (user == null)
            {
                return(NotFound());
            }

            var headers     = sContent.Headers;
            var previewFile = PreviewFile.Create(
                filename: headers.ContentDisposition?.FileName,
                contentType: headers.ContentType.MediaType,
                contentLength: headers.ContentLength,
                location: "tenants");

            using (var contentStream = sContent.ReadAsStreamAsync().Result)
            {
                _tenantsRepository.SetPreviewFile(entityId: id, previewFile, contentStream);
            }
            _tenantsRepository.SaveChanges();
            return(Ok());
        }