示例#1
0
        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);
            }
        }
示例#2
0
        // 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));
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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));
        }