コード例 #1
0
        public CorporateUpload UpdateCorporateUpload(CorporateUpload corporateUpload, int failedCount, int totalCustomers)
        {
            corporateUpload.FailedUploadCount      = failedCount;
            corporateUpload.SuccessfullUploadCount = (totalCustomers - failedCount);

            return(SaveCorporateUpload(corporateUpload));
        }
コード例 #2
0
        public CorporateUpload UploadAdjustOrderFile(string sourceFile, CorporateUpload corporateUpload)
        {
            var fileModel = UploadFile(sourceFile);

            corporateUpload.AdjustOrderLogFileId = fileModel.Id;

            return(SaveCorporateUpload(corporateUpload));
        }
コード例 #3
0
        public CorporateUpload Save(CorporateUpload domain)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var entity = Mapper.Map <CorporateUpload, CorporateUploadEntity>(domain);

                adapter.SaveEntity(entity, true);

                return(Mapper.Map <CorporateUploadEntity, CorporateUpload>(entity));
            }
        }
コード例 #4
0
        private MemberTermByAbsenceFilter CreateFilter(CorporateUpload corporateUpload)
        {
            if (corporateUpload.AccountId.HasValue)
            {
                var account = _corporateAccountRepository.GetById(corporateUpload.AccountId.Value);
                return(new MemberTermByAbsenceFilter
                {
                    CorporateUploadId = corporateUpload.Id,
                    Tag = account.Tag
                });
            }

            _logger.Info("corporate account Id can not be null ");
            return(null);
        }
コード例 #5
0
        public CorporateUpload Upload(string sourceFile, CorporateAccount account)
        {
            var fileModel = UploadFile(sourceFile);

            var corporateUpload = new CorporateUpload
            {
                AccountId  = account.Id,
                FileId     = fileModel.Id,
                UploadedBy = OrgRoleUserId,
                UploadTime = DateTime.Now,
                SourceId   = (long)MemberUploadSource.Aces
            };

            return(SaveCorporateUpload(corporateUpload));
        }
コード例 #6
0
        private void CreateAdjustOrderUploadFile(string file, MediaLocation mediaLocation, List <EventCusomerAdjustOrderViewModel> adjustOrderRecords, CorporateUpload corportateUpload)
        {
            if (adjustOrderRecords.Any())
            {
                try
                {
                    var nameWithoutExt = Path.GetFileNameWithoutExtension(file);

                    var fileName = nameWithoutExt + "_adjustOrder_" + DateTime.Now.ToString("MMddyyyyHHmmss") + ".txt";
                    var sourceAdjustOrderLocation = Path.Combine(mediaLocation.PhysicalPath, fileName);

                    DirectoryOperationsHelper.DeleteFileIfExist(sourceAdjustOrderLocation);

                    _logger.Info("Number of Adjust Order Records: " + adjustOrderRecords.Count);
                    _logger.Info("Creating file for Adjust Order records...");

                    _pipeDelimitedReportHelper.WriteWithTextQualifier(adjustOrderRecords.OrderBy(x => x.CustomerId), mediaLocation.PhysicalPath, fileName);
                    _logger.Info("Adjust Order records file created.");

                    _logger.Info("Adjust order file Coping in Client Location.");

                    var targetAdjustOrderFoler = Path.Combine(_memberUploadbyAcesSourceFolderPath, DateTime.Today.ToString("yyyyMMdd"), "AdjustOrderRecords");
                    DirectoryOperationsHelper.CreateDirectoryIfNotExist(targetAdjustOrderFoler);

                    var targetAdjustOrderLocation = Path.Combine(targetAdjustOrderFoler, fileName);
                    DirectoryOperationsHelper.CopyWithReplace(sourceAdjustOrderLocation, targetAdjustOrderLocation);

                    _memberUploadByAcesHelper.UploadAdjustOrderFile(sourceAdjustOrderLocation, corportateUpload);

                    _logger.Info("Adjust order file Copied in Client Location.");

                    _logger.Info("Failed Record Path:" + sourceAdjustOrderLocation);
                    _logger.Info("Client Failed Record Path:" + targetAdjustOrderLocation);
                }
                catch (Exception ex)
                {
                    _logger.Error(string.Format("Error occurred while creating failed records file. \nException Message: {0}\n\tStackTrace: {1}", ex.Message, ex.StackTrace));
                }
            }
        }
コード例 #7
0
 private void UpdateCorporateUploadStatus(CorporateUpload corporateUpload, MemberUploadParseStatus status)
 {
     corporateUpload.ParseStatus = (int)status;
     _corporateUploadRepository.Save(corporateUpload);
     _logger.Info("Updated CorporateUpload Status to " + status.ToString());
 }
コード例 #8
0
 public CorporateUpload SaveCorporateUpload(CorporateUpload corporateUpload)
 {
     return(_corporateUploadRepository.Save(corporateUpload));
 }
コード例 #9
0
        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));
        }