public void UploadSingleDocument_Image()
        {
            const int            caseId = 10000;
            ArchiveCase          archiveCaseController = new ArchiveCase();
            ArchiveCaseFileModel fileDataObj           = new ArchiveCaseFileModel
            {
                FileName = "Desert.jpg",
                FileData = "Excel text Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs"
            };

            archiveCaseController.UploadDocumentInCaseFolder(caseId, fileDataObj, _objArchiveModel);
        }
        public void UploadSingleDocument_PPT()
        {
            const int            caseId = 10000;
            ArchiveCase          archiveCaseController = new ArchiveCase();
            ArchiveCaseFileModel fileDataObj           = new ArchiveCaseFileModel
            {
                FileName = "Powerpoint.pptx",//6.xlsx
                FileData = "Powerpoint text Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs"
            };

            archiveCaseController.UploadDocumentInCaseFolder(caseId, fileDataObj, _objArchiveModel);
        }
        public void UploadSingleDocument_Notepad()
        {
            const int            caseId = 10000;
            ArchiveCase          archiveCaseController = new ArchiveCase();
            ArchiveCaseFileModel fileDataObj           = new ArchiveCaseFileModel
            {
                FileName = "Notepad.txt",
                FileData = "Notepad text Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs"
            };

            archiveCaseController.UploadDocumentInCaseFolder(caseId, fileDataObj, _objArchiveModel);
        }
        public void UploadSingleDocument_Exe()
        {
            const int            caseId = 10000;
            ArchiveCase          archiveCaseController = new ArchiveCase();
            ArchiveCaseFileModel fileDataObj           = new ArchiveCaseFileModel
            {
                FileName = "fiddler4setup.exe",
                FileData = "Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs Sample Docs"
            };
            string extension = Path.GetExtension(fileDataObj.FileName);
            var    result    = JObject.Parse(archiveCaseController.UploadDocumentInCaseFolder(caseId, fileDataObj, _objArchiveModel));

            Assert.AreEqual("Invalid file Extension " + extension, result["response"]);
        }
        public void UploadSingleDocument_JavaScript()
        {
            const int            caseId = 10000;
            ArchiveCase          archiveCaseController = new ArchiveCase();
            ArchiveCaseFileModel fileDataObj           = new ArchiveCaseFileModel
            {
                FileName = "script.js",
                FileData = "<script>" +
                           "alert('Javascript File');" +
                           "</script>"
            };
            string extension = Path.GetExtension(fileDataObj.FileName);
            var    result    = JObject.Parse(archiveCaseController.UploadDocumentInCaseFolder(caseId, fileDataObj, _objArchiveModel));

            Assert.AreEqual("Invalid file Extension " + extension, result["response"]);
        }
        public void UploadSingleDocument_Json()
        {
            const int            caseId = 10000;
            ArchiveCase          archiveCaseController = new ArchiveCase();
            ArchiveCaseFileModel fileDataObj           = new ArchiveCaseFileModel
            {
                FileName = "fiddler4setup.json",
                FileData = "{ 'employees':[" +
                           "{ 'firstName':'Peter', 'lastName':'Jones'}" +
                           "]}"
            };
            string extension = Path.GetExtension(fileDataObj.FileName);
            var    result    = JObject.Parse(archiveCaseController.UploadDocumentInCaseFolder(caseId, fileDataObj, _objArchiveModel));

            Assert.AreEqual("Invalid file Extension " + extension, result["response"]);
        }
        public HttpResponseMessage UploadMultipleDocumentInCaseFolder(int caseId, [FromBody] ArchiveCaseFileModel fileDataObj)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }

                JToken json = JObject.Parse(_objArchiveCase.UploadDocumentInCaseFolder(caseId, fileDataObj, _objArchiveModel));

                //if (json == null)
                if (ReferenceEquals(json, null))
                {
                    HttpResponseMessage resp = new HttpResponseMessage
                    {
                        StatusCode = HttpStatusCode.NotFound,
                        Content    =
                            new StringContent($"Documents cannot be uploaded in Case with = {caseId}, does not exist"),
                        ReasonPhrase = "Documents cannot be uploaded"
                    };
                    throw new HttpResponseException(resp);
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, json);
                return(response);
            }
            catch (HttpResponseException ex)
            {
                throw new HttpResponseException(new HttpResponseMessage
                {
                    StatusCode   = ex.Response.StatusCode,
                    Content      = ex.Response.Content,
                    ReasonPhrase = ex.Response.ReasonPhrase
                });
            }
            catch (Exception ex)
            {
                throw new HttpResponseException(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content    = new StringContent(ex.Message)
                });
            }
        }
        public HttpResponseMessage UploadSingleDocumentInCaseFolder(int caseId, [FromBody] ArchiveCaseFileModel fileDataObj)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }

                JToken json = JObject.Parse(_objArchiveCase.UploadDocumentInCaseFolder(caseId, fileDataObj, _objArchiveModel));

                if (ReferenceEquals(json, null))
                {
                    HttpResponseMessage resp = new HttpResponseMessage
                    {
                        StatusCode   = HttpStatusCode.NotFound,
                        Content      = new StringContent($"Document cannot be uploaded in CaseID = {caseId}"),
                        ReasonPhrase = "Document cannot be uploaded"
                    };
                    throw new HttpResponseException(resp);
                }
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, json);
                var routeLink = Url.Link("UpdateCaseMetadata", new { documentId = json["CaseDocumentName"] });
                response.Headers.Location = new Uri(routeLink);
                return(response);
            }
            catch (HttpResponseException ex)
            {
                throw new HttpResponseException(new HttpResponseMessage
                {
                    StatusCode   = ex.Response.StatusCode,
                    Content      = ex.Response.Content,
                    ReasonPhrase = ex.Response.ReasonPhrase
                });
            }
            catch (Exception ex)
            {
                throw new HttpResponseException(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content    = new StringContent(ex.Message)
                });
            }
        }