private Core.Application.Domain.File UploadFile(HttpPostedFileBase file, string physicianName) { if (string.IsNullOrEmpty(file.FileName)) { return(null); } string physicalPath = _mediaRepository.GetPhysicianSignatureMediaFileLocation().PhysicalPath; string filename = physicianName + file.FileName.Substring(file.FileName.LastIndexOf(".")); file.SaveAs(physicalPath + filename); var signatureFile = new Core.Application.Domain.File { FileSize = file.ContentLength, Path = filename, Type = FileType.Image, UploadedOn = DateTime.Now, UploadedBy = new OrganizationRoleUser(_sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId) }; return(signatureFile); }
public JsonResult UploadCustomers(UploadCorporateCustomers model) { var fileName = model.FileName; var pageSize = model.PageSize; var tag = model.Tag; var failedRecordsFile = model.FailedRecordsFile; var adjustOrderFile = model.AdjustOrderRecordsFile; var pageNumber = model.PageNumber; var customTags = model.CustomTags; if (customTags != null) { customTags = customTags.Where(s => !string.IsNullOrEmpty(s)).Select(s => s).ToList(); } var corporateModel = new CorporateUploadEditModel { Tag = tag, FileName = fileName, UploadCorporateId = model.UploadCorporateId }; var mediaLocation = _mediaRepository.GetUploadCsvMediaFileLocation(); var file = mediaLocation.PhysicalPath + corporateModel.FileName; var csvReader = IoC.Resolve <ICsvReader>(); var languages = _languageRepository.GetAll(); var labs = _labRepository.GetAll(); var failureRecords = mediaLocation.PhysicalPath + failedRecordsFile; var adjustOrderRecordsFile = mediaLocation.PhysicalPath + model.AdjustOrderRecordsFile; var customerTable = csvReader.ReadWithTextQualifier(file); var createdByOrgRoleUser = Mapper.Map <OrganizationRoleUserModel, OrganizationRoleUser>(_sessionContext.UserSession.CurrentOrganizationRole); var customerIdWithSameAcesId = new List <CustomerWithDuplicateAcesModel>(); try { //var failedCustomers = new List<CorporateCustomerEditModel>(); var adjustOrderForCustomerEditModel = new List <EventCusomerAdjustOrderViewModel>(); var query = customerTable.AsEnumerable(); var rows = query.Skip(pageSize * (pageNumber - 1)).Take(pageSize); var customerToRender = rows.Count(); var corporateAccount = _corporateAccountRepository.GetByTag(tag); var accountAdditionalFields = _accountAdditionalFieldRepository.GetAccountAdditionalFieldsEditModelByAccountId(corporateAccount.Id); var customerEditModel = new CorporateCustomerEditModel(); foreach (DataRow row in rows) { var sb = new StringBuilder(); try { customerEditModel = _corporateUploadHelper.GetCorporateCustomerEditModel(row); var customerWithDuplicateAcesModel = new CustomerWithDuplicateAcesModel(); _corporateUploadService.CorporateUploadDataRow(customerEditModel, languages, labs, customTags, corporateModel, accountAdditionalFields, adjustOrderForCustomerEditModel, createdByOrgRoleUser, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId, null, (long)MemberUploadSource.CorporateUplaod, sb, model.UploadCorporateId.Value, out customerWithDuplicateAcesModel); if (customerWithDuplicateAcesModel != null && customerWithDuplicateAcesModel.CustomerId > 0) { customerIdWithSameAcesId.Add(customerWithDuplicateAcesModel); } } catch (Exception ex) { customerEditModel.ErrorMessage = sb.ToString(); if (!string.IsNullOrEmpty(ex.Message)) { customerEditModel.ErrorMessage += " Error Message: " + ex.Message; } //failedCustomers.Add(customerEditModel); } var memberUploadParseDetail = _memberUploadParseDetailFactory.GetDomain(customerEditModel, model.UploadCorporateId.Value); _memberUploadParseDetailRepository.Save(memberUploadParseDetail); } if (!customerIdWithSameAcesId.IsNullOrEmpty()) { _customerWithDuplicateAcesIdFileGenerator.GenerateCsvFile(model.UploadCorporateId.Value, customerIdWithSameAcesId); } corporateModel.TotalCustomers = customerTable.Rows.Count; var totalPages = corporateModel.TotalCustomers / pageSize + (corporateModel.TotalCustomers % pageSize != 0 ? 1 : 0); var failedCustomers = _memberUploadParseDetailRepository.GetByCorporateUploadId(model.UploadCorporateId.Value, false); corporateModel.FailedCustomers = failedCustomers != null?failedCustomers.Count() : 0; corporateModel.UploadedCustomers = customerToRender - corporateModel.FailedCustomers; corporateModel.IsParseSucceded = totalPages == pageNumber; if (corporateModel.IsParseSucceded) { var corporateUploadedBy = _sessionContext.UserSession.FullName; string corporateName = string.Empty; if (corporateAccount != null) { var organization = _organizationRepository.GetOrganizationbyId(corporateAccount.Id); if (organization != null) { corporateName = organization.Name; } } var corporateUploadNotificationModel = _emailNotificationModelsFactory.GetCorporateUploadNotificationViewModel(corporateName, corporateUploadedBy, corporateModel.TotalCustomers, (corporateModel.TotalCustomers - corporateModel.FailedCustomers), corporateModel.FailedCustomers); _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.CorporateUploadNotification, EmailTemplateAlias.CorporateUploadNotification, corporateUploadNotificationModel, 0, 1, "System: Corporate Upload Notification"); _logger.Info("Corporate Upload Notification:Mail Send for upload corporate :" + tag + " UploadedBy: " + corporateUploadedBy + " on : " + DateTime.Now); } corporateModel.FailedRecordsFile = failedRecordsFile; if (failedCustomers != null && failedCustomers.Any()) { var failedMember = _memberUploadParseDetailFactory.GetCorporateCustomerListModel(failedCustomers, model.UploadCorporateId.Value); _corporateUploadHelper.UpdateFailedRecords(failureRecords, failedMember); if (model.LogFileId < 1) { var fileInfo = new FileInfo(failureRecords); var files = new Core.Application.Domain.File { Path = fileInfo.Name, FileSize = fileInfo.Length, Type = FileType.Csv, UploadedBy = new OrganizationRoleUser(_sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId), UploadedOn = DateTime.Now }; files = _fileRepository.Save(files); model.LogFileId = files.Id; } } if (adjustOrderForCustomerEditModel.Any()) { _corporateUploadHelper.UpdateAdjustOrderRecords(adjustOrderRecordsFile, adjustOrderForCustomerEditModel); if (model.AdjustOrderLogFileId < 1) { var fileInfo = new FileInfo(adjustOrderRecordsFile); var files = new Core.Application.Domain.File { Path = fileInfo.Name, FileSize = fileInfo.Length, Type = FileType.Csv, UploadedBy = new OrganizationRoleUser(_sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId), UploadedOn = DateTime.Now }; files = _fileRepository.Save(files); model.AdjustOrderLogFileId = files.Id; } } if (model.UploadCorporateId.HasValue && corporateModel.IsParseSucceded) { var count = _corporateUploadHelper.FailedCustomerCount(failedRecordsFile, mediaLocation); var uploadCorporate = _corporateUploadRepository.GetById(model.UploadCorporateId.Value); uploadCorporate.SuccessfullUploadCount = (corporateModel.TotalCustomers - count); uploadCorporate.FailedUploadCount = count; if (model.LogFileId > 0) { uploadCorporate.LogFileId = model.LogFileId; } if (model.AdjustOrderLogFileId > 0) { uploadCorporate.AdjustOrderLogFileId = model.AdjustOrderLogFileId; } uploadCorporate.ParseStatus = (int)MemberUploadParseStatus.Start; _corporateUploadRepository.Save(uploadCorporate); } corporateModel.FailedCustomersListPath = _corporateUploadHelper.CheckIsFileContainsRecord(corporateModel.IsParseSucceded, mediaLocation, failedRecordsFile); corporateModel.AdjustOrderRecordsFile = _corporateUploadHelper.CheckIsFileContainsRecord(corporateModel.IsParseSucceded, mediaLocation, adjustOrderFile); } catch (Exception ex) { corporateModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage(ex.Message); } return(Json(new { corporateModel.FileName, corporateModel.UploadedCustomers, corporateModel.Tag, corporateModel.FailedCustomers, corporateModel.IsParseSucceded, PageNumber = pageNumber + 1, corporateModel.FailedCustomersListPath, LogFileId = model.LogFileId, corporateModel.AdjustOrderRecordsFile, model.AdjustOrderLogFileId }, JsonRequestBehavior.AllowGet)); }
public ActionResult CustomerActivityTypeUpload(HttpPostedFileBase customerActivityTypeUploadFileUpload, CustomerActivityTypeUploadViewModel model) { try { if (Request.Files.Count < 1 || customerActivityTypeUploadFileUpload == null) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("No file has been uploaded. Please upload a csv file."); return(View(model)); } HttpPostedFileBase file = Request.Files[0]; var fileExtension = file.FileName.Split('.'); if ((fileExtension.Length >= 2 && fileExtension[fileExtension.Length - 1].ToLower() != "csv") || fileExtension.Length < 2) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("File uploaded is not a CSV, please uplaod CSV file only"); return(View(model)); } var uploadMediaLocation = _mediaRepository.GetCustomerActivityTypeUploadMediaFileLocation(); var physicalPath = uploadMediaLocation.PhysicalPath; var fileUploadedName = (Path.GetFileNameWithoutExtension(file.FileName) + Path.GetExtension(file.FileName)).Replace("'", "").Replace("&", ""); var fileName = (Path.GetFileNameWithoutExtension(fileUploadedName) + "_" + DateTime.Now.ToString("MMddyyyyhhmmss") + Path.GetExtension(fileUploadedName)).Replace("'", "").Replace("&", ""); var fullPath = physicalPath + fileName; try { file.SaveAs(fullPath); } catch (Exception ex) { _logger.Error(string.Format("CustomerActivityTypeUpload \nException occurred while saving file on server. FileName:{0} Path: {1}", fileUploadedName, fullPath)); _logger.Error(string.Format("Exception message: {0}\n\tStackTrace:{1}", ex.Message, ex.StackTrace)); model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Some internal error occurred"); return(View(model)); } var csvReader = IoC.Resolve <ICsvReader>(); var customerTable = csvReader.ReadWithTextQualifier(fullPath); if (customerTable.Rows.Count == 0) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Uploaded file has no data."); return(View(model)); } var columns = customerTable.Columns.Cast <DataColumn>().Select(x => x.ColumnName.ToLower()).ToArray(); var missingColumnNames = _corporateUploadHelper.CheckForMissingColumnInCustomerActivityTypeUpload(columns); if (!string.IsNullOrEmpty(missingColumnNames)) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Missing Column Name(s) : " + missingColumnNames); return(View(model)); } var files = new Core.Application.Domain.File { Path = fileName, FileSize = file.ContentLength, Type = FileType.Csv, UploadedBy = new OrganizationRoleUser(_sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId), UploadedOn = DateTime.Now }; try { files = _fileRepository.Save(files); } catch (Exception ex) { _logger.Error(string.Format("CustomerActivityTypeUpload \nException occurred while saving info in TblFile.")); _logger.Error(string.Format("Exception message: {0}\n\tStackTrace:{1}", ex.Message, ex.StackTrace)); model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Some internal error occurred"); return(View(model)); } var customerActivityTypeUpload = new CustomerActivityTypeUpload { FileId = files.Id, UploadTime = DateTime.Now, UploadedBy = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId, StatusId = (long)EligibilityUploadStatus.Uploaded }; try { customerActivityTypeUpload = _customerActivityTypeUploadRepository.Save(customerActivityTypeUpload); } catch (Exception ex) { _logger.Error(string.Format("CustomerActivityTypeUpload\nException occurred while saving info in CustomerActivityTypeUpload.")); _logger.Error(string.Format("Exception message: {0}\n\tStackTrace:{1}", ex.Message, ex.StackTrace)); model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Some internal error occurred"); return(View(model)); } if (customerActivityTypeUpload != null && customerActivityTypeUpload.Id > 0) { ModelState.Clear(); return(RedirectToAction("CustomerActivityTypeUpload", "MassRegistration", new { message = "File uploaded successfully" })); } model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("File upload failed"); return(View(model)); } catch (Exception ex) { _logger.Error(string.Format("CustomerActivityTypeUpload \nException occurred")); _logger.Error(string.Format("Exception message: {0}\n\tStackTrace:{1}", ex.Message, ex.StackTrace)); model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Some internal error occurred"); return(View(model)); } }
public ActionResult CorporateUpload(CorporateUploadEditModel model, HttpPostedFileBase corporateUploadFile) { if (Request.Files.Count < 1 || corporateUploadFile == null) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("No file has been uploaded. Please upload a csv file."); return(View(model)); } var uploadMediaLocation = _mediaRepository.GetUploadCsvMediaFileLocation(); var account = ((IUniqueItemRepository <CorporateAccount>)_corporateAccountRepository).GetById(model.CorporateAccountId); var organization = _organizationRepository.GetOrganizationbyId(model.CorporateAccountId); model.Tag = account.Tag; model.Name = organization.Name; model.UploadCsvMediaUrl = _mediaRepository.GetSamplesLocation().Url; HttpPostedFileBase file = Request.Files[0]; var physicalPath = uploadMediaLocation.PhysicalPath; var fileUploadedName = (Path.GetFileNameWithoutExtension(file.FileName) + Path.GetExtension(file.FileName)).Replace("'", "").Replace("&", ""); var fileName = (Path.GetFileNameWithoutExtension(fileUploadedName) + "_" + DateTime.Now.ToString("MMddyyyyhhmmss") + Path.GetExtension(fileUploadedName)).Replace("'", "").Replace("&", ""); var fullPath = physicalPath + fileName; file.SaveAs(fullPath); var csvReader = IoC.Resolve <ICsvReader>(); var customerTable = csvReader.ReadWithTextQualifier(fullPath); if (customerTable.Rows.Count == 0) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Uploaded file has no data."); return(View(model)); } var columns = customerTable.Columns.Cast <DataColumn>().Select(x => x.ColumnName.ToLower()).ToArray(); var missingColumnNames = _corporateUploadHelper.CheckAllColumnExist(columns); if (!string.IsNullOrEmpty(missingColumnNames)) { model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Missing Column Name(s) : " + missingColumnNames); return(View(model)); } var disabledTags = _corporateTagService.DisabledTagsInUsed(model.CustomTags, model.CorporateAccountId); if (disabledTags != null && disabledTags.Any()) { model.CustomTags = model.CustomTags.Where(x => disabledTags.Contains(x)).ToList(); model.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("Following tag(s) has been deactivated: " + string.Join(",", disabledTags)); return(View(model)); } var files = new Core.Application.Domain.File { Path = fileName, FileSize = file.ContentLength, Type = FileType.Csv, UploadedBy = new OrganizationRoleUser(_sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId), UploadedOn = DateTime.Now }; files = _fileRepository.Save(files); var corporateUpload = new CorporateUpload { FileId = files.Id, UploadTime = DateTime.Now, UploadedBy = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId, AccountId = model.CorporateAccountId, SourceId = (long)MemberUploadSource.CorporateUplaod }; corporateUpload = _corporateUploadRepository.Save(corporateUpload); model.TotalCustomers = customerTable.Rows.Count; model.IsUploadSucceded = true; model.IsParseSucceded = false; model.FileName = fileName; var failedFileName = Path.GetFileNameWithoutExtension(fileUploadedName).Replace("+", "_"); model.FailedRecordsFile = failedFileName + "_Failure_" + DateTime.Now.ToString("MMddyyyyhhmmss") + ".csv"; if (corporateUpload != null && corporateUpload.Id > 0) { model.UploadCorporateId = corporateUpload.Id; } var failureRecords = uploadMediaLocation.PhysicalPath + model.FailedRecordsFile; _corporateUploadHelper.CreateHeaderFileRecord(failureRecords, customerTable); model.AdjustOrderRecordsFile = failedFileName + "_AdjustOrder_" + DateTime.Now.ToString("MMddyyyyhhmmss") + ".csv"; var adjustOrderRecordsFile = uploadMediaLocation.PhysicalPath + model.AdjustOrderRecordsFile; _corporateUploadHelper.CreateHeaderAdjustOrderForEventCustoerRecord(adjustOrderRecordsFile); return(View(model)); }