private bool IsFileValid(MedicationFileUploadEditModel model, out long count) { try { var archiveLocation = _mediaRepository.GetMedicationUploadMediaFileLocation(); _csvReader.Delimiter = _csvReader.GetFileDelimiter(archiveLocation.PhysicalPath + model.File.Path).ToString(); var medicationTable = _csvReader.ReadWithTextQualifier(archiveLocation.PhysicalPath + model.File.Path); count = medicationTable.Rows.Count; if (medicationTable.Rows.Count == 0) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Uploaded file has no data."); return(false); } var missingColumnNames = _medicationUploadHelper.CheckForColumns(medicationTable.Rows[0]); if (!string.IsNullOrEmpty(missingColumnNames)) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Missing Column Name(s) : " + missingColumnNames); return(false); } return(true); } catch (Exception ex) { count = 0; IoC.Resolve <ILogManager>().GetLogger <Global>().Error("Medication Upload Validation Failure: " + ex.Message + "\n\t" + ex.StackTrace); return(false); } }
// GET: Medical/Medication public ActionResult Upload() { var uploadMediaLocation = _mediaRepository.GetMedicationUploadMediaFileLocation(); var model = new MedicationFileUploadEditModel { UploadCsvMediaUrl = uploadMediaLocation.Url }; System.Web.HttpContext.Current.Response.Headers.Remove("Refresh"); return(View(model)); }
public void ProcessUpload(MedicationFileUploadEditModel medicationEditModel) { if (Request.Files.Count != 1) { throw new Exception("File count should not be empty!"); } try { HttpPostedFileBase postedFile = Request.Files[0]; decimal returnLength = 0; var statuses = new List <FileUploadStatusModel>(); if (string.IsNullOrEmpty(Request.Headers["X-File-Name"])) { UploadWholeFile(postedFile, medicationEditModel.File.Path, statuses); returnLength = medicationEditModel.File.FileSize; } else { returnLength = UploadPartialFile(postedFile, medicationEditModel.File.Path, statuses); } if (returnLength == medicationEditModel.File.FileSize || returnLength == 0) { var resultArchive = _medicationUploadRepository.GetById(medicationEditModel.Id); if (returnLength == medicationEditModel.File.FileSize) { long count = 0; if (IsFileValid(medicationEditModel, out count)) { resultArchive.TotalCount = count; resultArchive.StatusId = (long)MedicationUploadStatus.Uploaded; } else { var s = statuses.First(); s.Error = medicationEditModel.FeedbackMessage.Message; } } else { resultArchive.StatusId = (long)MedicationUploadStatus.UploadStarted; } _medicationUploadRepository.Save(resultArchive); } WriteJsonIframeSafe(statuses); } catch (Exception ex) { IoC.Resolve <ILogManager>().GetLogger <Global>().Error("Upload Failure! Message: " + ex.Message + "\n\t" + ex.StackTrace); } }
public JsonResult CreateResultArchive(string fileName, long fileSize) { var file = new File { Path = fileName, Type = FileType.Compressed, FileSize = fileSize, UploadedBy = new OrganizationRoleUser(_session.UserSession.CurrentOrganizationRole.OrganizationRoleUserId), UploadedOn = DateTime.Now }; file = _fileRepository.Save(file); var medicationUpload = new MedicationUpload { FileId = file.Id, UploadTime = DateTime.Now, StatusId = (long)MedicationUploadStatus.UploadStarted, UploadedBy = _session.UserSession.CurrentOrganizationRole.OrganizationRoleUserId }; medicationUpload = _medicationUploadRepository.Save(medicationUpload); //update the file name file.Path = _fileHelper.AddPostFixToFileName(file.Path, medicationUpload.Id.ToString()); _fileRepository.Save(file); var editModel = new MedicationFileUploadEditModel { File = file, Id = medicationUpload.Id }; return(Json(editModel, JsonRequestBehavior.AllowGet)); }