//[ProducesResponseType(typeof(Client), StatusCodes.Status200OK)]
        public IActionResult Index(Client client)
        {
            var iFile = new ImportUtility();

            var           clientFiles = iFile.ReadXMLFile(_host.ContentRootPath, client.ClientList.ToString());
            List <Client> outputFiles = new List <Client>();

            if (client.ClientList.ToString() == "ClientA")
            {
                var sortFiles = clientFiles.FindAll(c => c.FileDateFormat == (from item in clientFiles
                                                                              group item.FileDateFormat by item.FileDateFormat into g
                                                                              orderby g.Count() descending
                                                                              select g.Key).First().ToString()).OrderBy(n => Convert.ToDateTime(n.FileDate).ToString("yyyy")).ThenBy(c => Convert.ToDateTime(c.FileDate).ToString("MM"));
                outputFiles = sortFiles.ToList();
            }
            else
            {
                var sortFiles = clientFiles.FindAll(c => c.FileDateFormat == (from item in clientFiles
                                                                              group item.FileDateFormat by item.FileDateFormat into g
                                                                              orderby g.Count() descending
                                                                              select g.Key).First().ToString()).OrderByDescending(c => c.FileName);
                outputFiles = sortFiles.ToList();
            }

            return(View(outputFiles));
        }
Beispiel #2
0
        private void UpdatePermissions(DbAppContext context)
        {
            // adding system Account if not there in the database
            ImportUtility.InsertSystemUser(context, SystemId);

            IEnumerable <Permission> permissions = Permission.AllPermissions;

            Logger.LogDebug("Updating permissions ...");

            foreach (Permission permission in permissions)
            {
                Logger.LogDebug($"Looking up {permission.Code} ...");

                Permission p = context.Permissions.FirstOrDefault(x => x.Code == permission.Code);

                if (p == null)
                {
                    Logger.LogDebug($"{permission.Code} does not exist, adding it ...");

                    permission.AppCreateUserid        = SystemId;
                    permission.AppCreateTimestamp     = DateTime.UtcNow;
                    permission.AppLastUpdateUserid    = SystemId;
                    permission.AppLastUpdateTimestamp = DateTime.UtcNow;

                    context.Permissions.Add(permission);
                }
                else
                {
                    Logger.LogDebug($"Updating the fields for {permission.Code} ...");
                    p.Description = permission.Description;
                    p.Name        = permission.Name;
                }
            }
        }
Beispiel #3
0
 public ImportDialog()
 {
     InitializeComponent();
     comboBox1.DataSource = Enum.GetValues(typeof(ImportQuerySource));
     _importUt            = new ImportUtility();
     _cancelled           = false;
     CancelButton         = cancelButton;
 }
Beispiel #4
0
        public void ShowImportUtility()
        {
            if (ImportUtility == null || ImportUtility.IsDisposed)
            {
                ImportUtility = new frmImportUtility();
                ImportUtility.Show(dockPanel, DockState.DockRight);
            }

            ImportUtility.Activate();
        }
Beispiel #5
0
        /// <summary>
        /// Update user
        /// </summary>
        /// <param name="context"></param>
        /// <param name="userInfo"></param>
        public static void UpdateSeedUserInfo(this DbAppContext context, User userInfo)
        {
            // adding system Account if not there in the database
            ImportUtility.InsertSystemUser(context, SystemId);

            User user = context.GetUserByGuid(userInfo.Guid);

            if (user == null)
            {
                userInfo.AppCreateUserid        = SystemId;
                userInfo.AppCreateTimestamp     = DateTime.UtcNow;
                userInfo.AppLastUpdateUserid    = SystemId;
                userInfo.AppLastUpdateTimestamp = DateTime.UtcNow;

                context.Users.Add(userInfo);
            }
            else
            {
                user.Active    = userInfo.Active;
                user.Email     = userInfo.Email;
                user.GivenName = userInfo.GivenName;
                user.Initials  = userInfo.Initials;
                user.SmAuthorizationDirectory = userInfo.SmAuthorizationDirectory;
                user.SmUserId = userInfo.SmUserId;
                user.Surname  = userInfo.Surname;
                user.District = userInfo.District;

                // Sync Roles
                if (user.UserRoles != null)
                {
                    foreach (UserRole item in user.UserRoles)
                    {
                        context.Entry(item).State = EntityState.Deleted;
                    }

                    foreach (UserRole item in userInfo.UserRoles)
                    {
                        item.AppCreateUserid        = SystemId;
                        item.AppCreateTimestamp     = DateTime.UtcNow;
                        item.AppLastUpdateUserid    = SystemId;
                        item.AppLastUpdateTimestamp = DateTime.UtcNow;

                        user.UserRoles.Add(item);
                    }
                }
            }
        }
Beispiel #6
0
        public IActionResult AdminObfuscateGetAsync(string sourcePath, string destinationPath)
        {
            string result = "Created Obfuscation Job: ";

            lock (_thisLock)
            {
                string uploadPath       = _configuration["UploadPath"];
                string connectionString = _context.Database.GetDbConnection().ConnectionString;

                ImportUtility.CreateObfuscationDestination(uploadPath + destinationPath);

                // use Hangfire
                string jobId = BackgroundJob.Enqueue(() => BcBidImport.ObfuscationJob(null, connectionString, uploadPath + sourcePath, uploadPath + destinationPath));
                result += jobId;
            }

            return(new ObjectResult(result));
        }
Beispiel #7
0
        //public ImportResult ImportProcess<TWorksheetItem, TItem, TRoot>(
        //    IFileImportModel model,
        //    IEnumerable<ImportPropertyDescriptor<TWorksheetItem>> descriptors,
        //    Func<IEnumerable<TWorksheetItem>, IEnumerable<TItem>> itemsTransform,
        //    IImportDataSaver<TRoot, TItem> dataSaver) where TWorksheetItem : new()
        //{
        //    if (!File.Exists(model.SavedFileName))
        //    {
        //        return new ImportResult
        //        {
        //            OperationResult = ImportOperationResult.ErrorOnUploadStage,
        //            Message = "File was deleted. Please, reupload it.",
        //        };
        //    }

        //    //SetUserMappedColumns(descriptors, Request);

        //    // TRICK: force set mapping AUTO
        //    //model.FileColumns = ImportUtility.GetFileHeaders(model.SavedFileName);
        //    //FillModelMappedColumns(model, descriptors);

        //    //if (!ValidateMappedRequiredColumns(descriptors))
        //    if (model.NotAutoMappedColumns.Any(c => c.Requred))
        //    {
        //        IEnumerable<string> notMappedRequiredColumns = model.NotAutoMappedColumns
        //            .Where(c => c.Requred)
        //            .Select(c => "'" + c.DisplayName + "'");

        //        return new ImportResult
        //        {
        //            OperationResult = ImportOperationResult.ErrorOnImportStage,
        //            Message = string.Format("Required columns ({0}) not found. Please verify that the Microsoft Excel file to be imported meets the guidelines.",
        //                string.Join(", ", notMappedRequiredColumns)),
        //        };
        //    }

        //    int importedCount;
        //    int notImportedCount;

        //    // NOTE: parse only mapped columns
        //    IEnumerable<TItem> batchItems = ImportUtility.GetWorksheetData(
        //        model.SavedFileName,
        //        descriptors.Where(d => d.ExcelFileColumnIndex != NotMarkedExcelFileColumnIndex),
        //        itemsTransform,
        //        out importedCount, out notImportedCount);

        //    if (batchItems.Any())
        //    {
        //        //using (var tran = new TransactionScope())
        //        //{
        //        //notInsertedItems = (IEnumerable<int>)dataSaver.InsertItems(batch, batchItems);

        //        int reallyInserted = dataSaver.InsertItems(dataSaver.GetRoot(), batchItems);

        //        //tran.Complete();
        //        //}

        //        return new ImportResult
        //        {
        //            OperationResult = ImportOperationResult.CompletedSuccessfully,
        //            Message = string.Format("Successfuly imported: '{0}' records, not imported: '{1}' records.",
        //            reallyInserted,
        //            importedCount + notImportedCount - reallyInserted),
        //        };
        //    }
        //    else
        //    {
        //        return new ImportResult
        //        {
        //            OperationResult = ImportOperationResult.CompletedSuccessfully,
        //            Message = "There is no data to upload. Please verify that the Microsoft Excel file to be imported meets the guidelines.",
        //        };
        //        // TODO:UserMessages.AddWarningMessage(TempData,
        //        //"There is no data to upload. Please verify that the Microsoft Excel file to be imported meets the guidelines.");
        //    }
        //}

        public static void InitImportModel(
            IFileImportModel emptyImport,
            string filePath,
            int worksheetIndex,
            IEnumerable <IImportPropertyDescriptor> descriptors)
        {
            //Check.Argument.IsNotEmpty(savedFilePath, "savedFilePath");
            //Check.Argument.IsNotNull(descriptors, "descriptors");

            var importModel = emptyImport;

            importModel.FileColumns = ImportUtility.GetImportedFileHeaders(filePath, worksheetIndex);

            AutoMapColumns(descriptors, importModel.FileColumns);
            FillModelMappedColumns(importModel, descriptors);

            // TODO:
            //importModel.ValidationRules = GetValidationRules(descriptors);
        }
Beispiel #8
0
        public static void InitImportModel(
            IFileImportModel emptyImport,
            string savedFilePath,
            IEnumerable <IImportPropertyDescriptor> descriptors)
        {
            //Check.Argument.IsNotEmpty(savedFilePath, "savedFilePath");
            //Check.Argument.IsNotNull(descriptors, "descriptors");

            var importModel = emptyImport;

            importModel.SavedFileName = savedFilePath;
            //importModel.OriginFileName = Path.GetFileName(postedFile.FileName);
            importModel.FileColumns = ImportUtility.GetImportedFileHeaders(savedFilePath);

            AutoMapColumns(descriptors, importModel.FileColumns);
            FillModelMappedColumns(importModel, descriptors);

            // TODO:
            //importModel.ValidationRules = GetValidationRules(descriptors);
        }
Beispiel #9
0
        public virtual IActionResult AdminObfuscateGet([FromQuery] string sourcePath, [FromQuery] string destinationPath)
        {
            string result = "Created Obfuscation Job: ";

            lock (_thisLock)
            {
                // get upload path
                string uploadPath = _configuration["UploadPath"];

                // get connection string
                string connectionString = GetConnectionString();

                ImportUtility.CreateObfuscationDestination(uploadPath + destinationPath);

                // use Hangfire
                string jobId = BackgroundJob.Enqueue(() => BcBidImport.ObfuscationJob(null, connectionString, uploadPath + sourcePath, uploadPath + destinationPath));
                result += jobId;
            }

            return(new ObjectResult(result));
        }
Beispiel #10
0
        /// <summary>
        /// Update region
        /// </summary>
        /// <param name="context"></param>
        /// <param name="regionInfo"></param>
        public static void UpdateSeedRegionInfo(this DbAppContext context, Region regionInfo)
        {
            // adding system Account if not there in the database
            ImportUtility.InsertSystemUser(context, SystemId);

            Region region = context.GetRegionByMinistryRegionId(regionInfo.MinistryRegionID);

            if (region == null)
            {
                regionInfo.AppCreateUserid        = SystemId;
                regionInfo.AppCreateTimestamp     = DateTime.UtcNow;
                regionInfo.AppLastUpdateUserid    = SystemId;
                regionInfo.AppLastUpdateTimestamp = DateTime.UtcNow;

                context.Regions.Add(regionInfo);
            }
            else
            {
                region.Name      = regionInfo.Name;
                region.StartDate = regionInfo.StartDate;
            }
        }
Beispiel #11
0
        /// <summary>
        /// Update district
        /// </summary>
        /// <param name="context"></param>
        /// <param name="districtInfo"></param>
        public static void UpdateSeedDistrictInfo(this DbAppContext context, District districtInfo)
        {
            // adding system Account if not there in the database
            ImportUtility.InsertSystemUser(context, SystemId);

            // Adjust the region.
            int ministryRegionId = districtInfo.Region.MinistryRegionID;

            var exists = context.Regions.Any(a => a.MinistryRegionID == ministryRegionId);

            if (exists)
            {
                Region region = context.Regions.First(a => a.MinistryRegionID == ministryRegionId);
                districtInfo.Region = region;
            }
            else
            {
                districtInfo.Region = null;
            }

            District district = context.GetDistrictByMinistryDistrictId(districtInfo.MinistryDistrictID);

            if (district == null)
            {
                districtInfo.AppCreateUserid        = SystemId;
                districtInfo.AppCreateTimestamp     = DateTime.UtcNow;
                districtInfo.AppLastUpdateUserid    = SystemId;
                districtInfo.AppLastUpdateTimestamp = DateTime.UtcNow;

                context.Districts.Add(districtInfo);
            }
            else
            {
                district.Name      = districtInfo.Name;
                district.Region    = districtInfo.Region;
                district.StartDate = districtInfo.StartDate;
            }
        }
Beispiel #12
0
        /// <summary>
        /// Update service area
        /// </summary>
        /// <param name="context"></param>
        /// <param name="serviceAreaInfo"></param>
        public static void UpdateSeedServiceAreaInfo(this DbAppContext context, ServiceArea serviceAreaInfo)
        {
            // adding system Account if not there in the database
            ImportUtility.InsertSystemUser(context, SystemId);

            // Adjust the district.
            int ministryDistrictId = serviceAreaInfo.District.MinistryDistrictID;
            var exists             = context.Districts.Any(a => a.MinistryDistrictID == ministryDistrictId);

            if (exists)
            {
                District district = context.Districts.First(a => a.MinistryDistrictID == ministryDistrictId);
                serviceAreaInfo.District = district;
            }
            else
            {
                serviceAreaInfo.District = null;
            }

            ServiceArea serviceArea = context.GetServiceAreaByMinistryServiceAreaId(serviceAreaInfo.MinistryServiceAreaID);

            if (serviceArea == null)
            {
                serviceAreaInfo.AppCreateUserid        = SystemId;
                serviceAreaInfo.AppCreateTimestamp     = DateTime.UtcNow;
                serviceAreaInfo.AppLastUpdateUserid    = SystemId;
                serviceAreaInfo.AppLastUpdateTimestamp = DateTime.UtcNow;

                context.ServiceAreas.Add(serviceAreaInfo);
            }
            else
            {
                serviceArea.Name      = serviceAreaInfo.Name;
                serviceArea.StartDate = serviceAreaInfo.StartDate;
                serviceArea.District  = serviceAreaInfo.District;
            }
        }
Beispiel #13
0
 public void CloseMainWindows()
 {
     ModExplorer?.Close();
     ModExplorer = null;
     Output?.Close();
     Output = null;
     Console?.Close();
     Console = null;
     if (Welcome != null)
     {
         Welcome?.Close();
         Welcome = new frmWelcome(Window);
     }
     ImportUtility?.Close();
     ImportUtility = null;
     RadishUtility?.Close();
     RadishUtility = null;
     ScriptPreview?.Close();
     ScriptPreview = null;
     ImagePreview?.Close();
     ImagePreview = null;
     FormModKit?.Close();
     FormModKit = null;
 }
Beispiel #14
0
            public GeminiMap()
            {
                Map(m => m.Title).Name("Resource Title");
                Map(m => m.Abstract).Name("Resource Abstract");
                Map(m => m.TopicCategory)
                .ConvertUsing(row => row.GetField("Topic Category")
                              .FirstCharToLower() // correct capitalisation
                              .Replace("structures", "structure"));

                Map(m => m.Keywords).ConvertUsing(row =>
                {
                    string keywordList = row.GetField("Keyword");
                    var keywords       = ParseKeywords(keywordList);

                    string activity = row.GetField("Activity");
                    if (!String.IsNullOrWhiteSpace(activity))
                    {
                        keywords.Add(new MetadataKeyword
                        {
                            Vocab = "http://vocab.jncc.gov.uk/human-activity",
                            Value = activity
                        });
                    }

                    return(keywords);
                });

                Map(m => m.TemporalExtent).ConvertUsing(row =>
                {
                    var raw = row.GetField("Temporal Extent");

                    if (raw.Contains("/"))
                    {
                        var parsed = Regex.Match(raw, @"(.*)/(.*)")     // 'from-date/to-date' or just 'single-date'
                                     .Groups.Cast <Group>()
                                     .Select(g => g.Value)
                                     .ToList(); // should be either a single value, or a the value followed by two (possibly empty) from/to values

                        if (parsed.Count == 3)
                        {
                            return new TemporalExtent {
                                Begin = parsed.ElementAt(1), End = parsed.ElementAt(2)
                            }
                        }
                        ;
                    }

                    // let's put the single date in the being
                    return(new TemporalExtent {
                        Begin = raw, End = ""
                    });
                });

                Map(m => m.DatasetReferenceDate).ConvertUsing(row => row.GetField("Dataset reference date"));
                Map(m => m.Lineage);
                Map(m => m.ResourceLocator).Name("Web Address");
                Map(m => m.AdditionalInformationSource).ConvertUsing(row =>
                {
                    var s = new StringBuilder();
                    s.AppendLine(row.GetField("Contact Position (job title/ generic role)"));
                    s.AppendLine();
                    s.AppendLine(row.GetField("Telephone number"));
                    s.AppendLine();
                    s.AppendLine(row.GetField("Address"));
                    return(s.ToString());
                });
                Map(m => m.DataFormat).ConvertUsing(row => FixUpDataFormats(row.GetField("Data format")));

                Map(m => m.ResponsibleOrganisation).ConvertUsing(row => new ResponsibleParty
                {
                    Name  = row.GetField("Organisation Name"),
                    Email = row.GetField("Email Address"),
                    Role  = row.GetField("Responsible Party Role").FirstCharToLower(),
                });

                Map(m => m.LimitationsOnPublicAccess).Name("Limitations on public access");
                Map(m => m.UseConstraints).Name("Use constraints");
                Map(m => m.SpatialReferenceSystem).Name("Spatial reference system");
                Map(m => m.MetadataDate).ConvertUsing(row =>
                {
                    string d = ImportUtility.ParseDate(row.GetField("Metadata date"));

                    if (d.IsBlank())
                    {
                        return(DateTime.Now);
                    }
                    else
                    {
                        DateTime dt;
                        bool b = DateTime.TryParse(d, out dt);
                        return(dt);
                    }
                });
                Map(m => m.ResourceType).ConvertUsing(row => "dataset"); // only use dataset atm
                Map(m => m.MetadataPointOfContact).ConvertUsing(row =>
                {
                    string name  = row.GetField("Metadata point of contact");
                    string email = "*****@*****.**";
                    string role  = "pointOfContact";
                    return(new ResponsibleParty {
                        Name = name, Email = email, Role = role
                    });
                });

                Map(m => m.BoundingBox).ConvertUsing(row =>
                {
                    String strNorth = row.GetField("North");
                    String strEast  = row.GetField("East");
                    String strWest  = row.GetField("West");
                    String strSouth = row.GetField("South");

                    /*if a bounding box co ordinate is missing don't attempt to convert*/
                    if (String.IsNullOrEmpty(strNorth) || String.IsNullOrEmpty(strEast) ||
                        String.IsNullOrEmpty(strSouth) || String.IsNullOrEmpty(strWest))
                    {
                        return(null);
                    }

                    decimal north = Convert.ToDecimal(strNorth);
                    decimal south = Convert.ToDecimal(strSouth);
                    decimal east  = Convert.ToDecimal(strEast);
                    decimal west  = Convert.ToDecimal(strWest);

                    return(new BoundingBox {
                        North = north, South = south, East = east, West = west
                    });
                });
            }
Beispiel #15
0
        public ImportResult ImportProcess <TWorksheetItem, TItem, TRoot>(
            IFileImportModel model,
            IEnumerable <ImportPropertyDescriptor <TWorksheetItem> > descriptors,
            Func <IEnumerable <TWorksheetItem>, IEnumerable <TItem> > itemsTransform,
            IImportDataSaver <TRoot, TItem> dataSaver) where TWorksheetItem : new()
        {
            if (!File.Exists(model.SavedFileName))
            {
                return(new ImportResult
                {
                    OperationResult = ImportOperationResult.ErrorOnUploadStage,
                    Message = "File was deleted. Please, reupload it.",
                });
            }

            //SetUserMappedColumns(descriptors, Request);

            // TRICK: force set mapping AUTO
            //model.FileColumns = ImportUtility.GetFileHeaders(model.SavedFileName);
            //FillModelMappedColumns(model, descriptors);

            //if (!ValidateMappedRequiredColumns(descriptors))
            if (model.NotAutoMappedColumns.Any(c => c.Requred))
            {
                IEnumerable <string> notMappedRequiredColumns = model.NotAutoMappedColumns
                                                                .Where(c => c.Requred)
                                                                .Select(c => "'" + c.DisplayName + "'");

                return(new ImportResult
                {
                    OperationResult = ImportOperationResult.ErrorOnImportStage,
                    Message = string.Format("Required columns ({0}) not found. Please verify that the Microsoft Excel file to be imported meets the guidelines.",
                                            string.Join(", ", notMappedRequiredColumns)),
                });
            }

            int importedCount;
            int notImportedCount;

            // NOTE: parse only mapped columns
            IEnumerable <TItem> batchItems = ImportUtility.GetWorksheetData(
                model.SavedFileName,
                descriptors.Where(d => d.ExcelFileColumnIndex != NotMarkedExcelFileColumnIndex),
                itemsTransform,
                out importedCount, out notImportedCount);

            if (batchItems.Any())
            {
                //using (var tran = new TransactionScope())
                //{
                //notInsertedItems = (IEnumerable<int>)dataSaver.InsertItems(batch, batchItems);

                int reallyInserted = dataSaver.InsertItems(dataSaver.GetRoot(), batchItems);

                //tran.Complete();
                //}

                return(new ImportResult
                {
                    OperationResult = ImportOperationResult.CompletedSuccessfully,
                    Message = string.Format("Successfuly imported: '{0}' records, not imported: '{1}' records.",
                                            reallyInserted,
                                            importedCount + notImportedCount - reallyInserted),
                });
            }
            else
            {
                return(new ImportResult
                {
                    OperationResult = ImportOperationResult.CompletedSuccessfully,
                    Message = "There is no data to upload. Please verify that the Microsoft Excel file to be imported meets the guidelines.",
                });
                // TODO:UserMessages.AddWarningMessage(TempData,
                //"There is no data to upload. Please verify that the Microsoft Excel file to be imported meets the guidelines.");
            }
        }
 public ImportDialog()
 {
     InitializeComponent();
     comboBox1.DataSource = Enum.GetValues(typeof(ImportQuerySource));
     _importUt            = new ImportUtility();
 }