protected UploadJob GetJob(UploadJobType jobType, Guid jobGuid)
 {
     var job = new UploadJob
     {
         Guid = jobGuid,
         Status = UploadJobStatus.NotStart,
         DateCreated = DateTime.Now,
         JobType = jobType,
         Filename = @"fake.xls",
         UserId = 11,
         Username = @"phe\doris.hain"
     };
     return job;
 }
        public List<DuplicateRowInDatabaseError> GetDuplicates(List<UploadDataModel> data, CoreDataRepository repository, UploadJobType jobType)
        {
            var lastIndicatorId = -1;
            var rowIndex = 1;
            var duplicateRowInDatabaseErrors = new List<DuplicateRowInDatabaseError>();

            foreach (UploadDataModel row in data)
            {
                rowIndex++;

                if (row.IndicatorId != lastIndicatorId)
                {
                    lastIndicatorId = row.IndicatorId;
                }

                if (jobType == UploadJobType.Simple)
                {
                    row.CategoryId = -1;
                    row.CategoryTypeId = -1;
                }

                var duplicates = repository.GetDuplicateCoreDataSetForAnIndicator(row);

                if (duplicates.Count > 0)
                {
                    var duplicateDataError = new DuplicateRowInDatabaseError
                    {
                        ErrorMessage = "Data already exists for Indicator Id: " + row.IndicatorId,
                        RowNumber = rowIndex,
                        DbValue = duplicates.First().Value,
                        ExcelValue = row.Value,
                        IndicatorId = row.IndicatorId,
                        AgeId = row.AgeId,
                        SexId = row.SexId,
                        AreaCode = row.AreaCode,
                        Uid = duplicates.First().Uid
                    };

                    duplicateRowInDatabaseErrors.Add(duplicateDataError);
                    row.DuplicateExists = true;
                }
            }
            return duplicateRowInDatabaseErrors;
        }
        // Helper to save files and create job in database
        public bool SaveFile(HttpPostedFileBase indicatorDataFile, UploadJobType jobType)
        {
            bool response;

            if (Request.Files == null)
            {
                return(false);
            }

            var guid           = Guid.NewGuid();
            var file           = Request.Files[0];
            var actualFileName = file.FileName;
            var fileName       = guid + Path.GetExtension(file.FileName);

            try
            {
                if (!Directory.Exists(AppConfig.UploadFolder))
                {
                    Directory.CreateDirectory(AppConfig.UploadFolder);
                }

                file.SaveAs(Path.Combine(AppConfig.UploadFolder, fileName));
                var uploadJob = new UploadJob
                {
                    DateCreated = DateTime.Now,
                    Guid        = guid,
                    Filename    = actualFileName,
                    JobType     = jobType,
                    Status      = UploadJobStatus.NotStart,
                    UserId      = UserDetails.CurrentUser().Id
                };

                _fpmUploadRepository.CreateJob(uploadJob);
                response = true;
            }
            catch (Exception ex)
            {
                response = false;
            }

            return(response);
        }
        // Helper to save files and create job in database
        public bool SaveFile(HttpPostedFileBase indicatorDataFile, UploadJobType jobType)
        {
            bool response;

            if (Request.Files == null)
            {
                return false;
            }

            var guid = Guid.NewGuid();
            var file = Request.Files[0];
            var actualFileName = file.FileName;
            var fileName = guid + Path.GetExtension(file.FileName);

            try
            {
                if (!Directory.Exists(AppConfig.UploadFolder))
                {
                    Directory.CreateDirectory(AppConfig.UploadFolder);
                }

                file.SaveAs(Path.Combine(AppConfig.UploadFolder, fileName));
                var uploadJob = new UploadJob
                {
                    DateCreated = DateTime.Now,
                    Guid = guid,
                    Filename = actualFileName,
                    JobType = jobType,
                    Status = UploadJobStatus.NotStart,
                    UserId = UserDetails.CurrentUser().Id
                };

                _fpmUploadRepository.CreateJob(uploadJob);
                response = true;
            }
            catch (Exception ex)
            {
                response = false;
            }

            return response;
        }