Ejemplo n.º 1
0
        public async Task <ILive <TModel>?> Import(ImportTask task, bool lowPriority = false, CancellationToken cancellationToken = default)
        {
            cancellationToken.ThrowIfCancellationRequested();

            ILive <TModel>?import;

            using (ArchiveReader reader = task.GetReader())
                import = await Import(reader, lowPriority, cancellationToken).ConfigureAwait(false);

            // We may or may not want to delete the file depending on where it is stored.
            //  e.g. reconstructing/repairing database with items from default storage.
            // Also, not always a single file, i.e. for LegacyFilesystemReader
            // TODO: Add a check to prevent files from storage to be deleted.
            try
            {
                if (import != null && File.Exists(task.Path) && ShouldDeleteArchive(task.Path))
                {
                    File.Delete(task.Path);
                }
            }
            catch (Exception e)
            {
                Logger.Error(e, $@"Could not delete original file after import ({task})");
            }

            return(import);
        }
    public void addTask(string nameAsset)
    {
        var nameExt    = Path.GetExtension(nameAsset).ToLower();
        var idsProduct = this.detectedInstall.getIdsProductByExtPartAsm(nameExt);
        var task       = new ImportTask(nameAsset);

        task.idsProductToSelect = idsProduct.ToArray();
        var namesProduct = new List <string>();

        foreach (var idProduct in task.idsProductToSelect)
        {
            var nameProduct = this.detectedInstall.tableInfosInstall[idProduct].nameProduct;
            namesProduct.Add(nameProduct);
        }
        task.namesProductToSelect = namesProduct.ToArray();

        if (idsProduct.Count == 0)
        {
            task.status = ImportTask.Status.NO_PRUDUCTS;
        }
        else
        {
            task.status = ImportTask.Status.READY;
        }
        this.tasks.Add(task);
    }
Ejemplo n.º 3
0
        /// <summary> Keeps track of which threads to start when </summary>
        private static IEnumerator TaskSupervisor(ImportTask importTask, Action <float> onProgress = null)
        {
            // Wait for required results to complete before starting
            while (!importTask.IsReady)
            {
                yield return(null);
            }
            // Prevent asynchronous data disorder
            yield return(null);

            if (importTask.task != null)
            {
                // Start threaded task
                importTask.task.Start();
                // Wait for task to complete
                while (!importTask.task.IsCompleted)
                {
                    yield return(null);
                }
                // Prevent asynchronous data disorder
                yield return(new WaitForSeconds(0.1f));
            }
            // Run additional unity code on main thread
            importTask.OnCoroutine(onProgress).RunCoroutine();
            //Wait for additional coroutines to complete
            while (!importTask.IsCompleted)
            {
                yield return(null);
            }
            // Prevent asynchronous data disorder
            yield return(new WaitForSeconds(0.1f));
        }
 static public GUIContent[] getTableGUIColorL1()
 {
     if (ImportTask.tableGUIColorL1 == null)
     {
         ImportTask.initTableGUIColorL1();
     }
     return(ImportTask.tableGUIColorL1.Values.ToArray());
 }
 static public GUIContent getGUIColorL1(ColorL1 color)
 {
     if (ImportTask.tableGUIColorL1 == null)
     {
         ImportTask.initTableGUIColorL1();
     }
     if (!ImportTask.tableGUIColorL1.ContainsKey(color))
     {
         return(null);
     }
     return(ImportTask.tableGUIColorL1[color]);
 }
    static public string getMessageStatusImport(ImportStatus status)
    {
        if (ImportTask.tableMessageStatusImport == null)
        {
            ImportTask.initTalbeMessageStatusImport();
        }

        if (!ImportTask.tableMessageStatusImport.ContainsKey(status))
        {
            return("Unknown status: " + status.ToString());
        }
        return(ImportTask.tableMessageStatusImport[status]);
    }
Ejemplo n.º 7
0
        public TaskModel(ImportTask task)
        {
            Id    = task.ExternalId;
            AbsId = task.AbsId;
            switch (task.State)
            {
            case ImportTaskStates.Waiting:
                State = "waiting";
                break;

            case ImportTaskStates.Done:
                State = "done";
                break;
            }
        }
Ejemplo n.º 8
0
        public virtual ActionResult BlogMlImport(FileUpload upload)
        {
            if (upload == null || string.IsNullOrWhiteSpace(upload.FileName))
            {
                ModelState.AddModelError("File", "Please select a file to upload.");
                return(View());
            }

            var fullPath = Server.MapPath(SettingsProvider.GetSettings <FunnelWebSettings>().UploadPath);

            fullPath = Path.Combine(fullPath, upload.FileName);
            upload.SaveTo(fullPath);

            var id = ImportTask.Execute(new { inputFile = fullPath });

            return(RedirectToAction("Task", new { id }));
        }
Ejemplo n.º 9
0
 /// <summary> Keeps track of which threads to start when </summary>
 private static IEnumerator TaskSupervisor(ImportTask importTask)
 {
     // Wait for required results to complete before starting
     while (!importTask.IsReady)
     {
         yield return(null);
     }
     // Start threaded task
     importTask.task.Start();
     // Wait for task to complete
     while (!importTask.task.IsCompleted)
     {
         yield return(null);
     }
     // Run additional unity code on main thread
     importTask.MainThreadFinalize();
 }
        public static List<CampaignEmployeeUpdateRequestItem> GenerateFromCampaignForEmployee(Employee employee, ImportTask importTask)
        {
            List<CampaignEmployeeUpdateRequestItem> rc = new List<CampaignEmployeeUpdateRequestItem>();

            foreach (UpdateRequest updateRequest in importTask.UpdateRequestsForEmployee(employee))
            {
                CampaignEmployeeUpdateRequestItem item = new CampaignEmployeeUpdateRequestItem
                {
                    StepUrl = Utilities.Domain() + UrlManager.EmployeeEditWithRequestUpdateOid(updateRequest.Oid),
                    Step = updateRequest.Step,
                    LastSentDate = updateRequest.LastSentDate,
                };
                AddGeneratedValues(item, updateRequest);
                rc.Add(item);
            }

            return rc;
        }
        protected override void Save()
        {
            if (Session[CurrentPageSessionDataKeyWithIdentifier("ImportTask")] != null)
            {
                importTask = Session[CurrentPageSessionDataKeyWithIdentifier("ImportTask")] as ImportTask;
            }
            else
            {
                SetUpdateRequestAsPreview();
            }
            updateRequest = importTask.UpdateRequests.ToList<UpdateRequest>().Where(x => x.Step == StepFromQueryString).FirstOrDefault();
            Employee employee = updateRequest.Employee;
            employee.BindValuesFromNameValueCollection<Employee>(Request.Form, true);
            SaveSession();

            var maxSteps = importTask.UpdateRequests.Count;

            if (StepFromQueryString < maxSteps)
            {
                completionState = CompletionState.SavedButNotFinished;
                StatusLabel.ShowMessageWithHeader("Thank you!", "You are done for now. Feel free to continue if you have time!", Views.Controls.MessageControlType.Positive);
                Session[CurrentPageSessionDataKeyWithIdentifier(ViewState_StatusMessageIdentifier)] = new List<object>() { { "Thank you!" }, { "You are done for now. Feel free to continue if you have time!" }, { Views.Controls.MessageControlType.Positive } };

            }
            else if (StepFromQueryString == maxSteps)
            {
                completionState = CompletionState.SavedAndFinished;
                StatusLabel.ShowMessageWithHeader("Thank you!", "You have completed all update steps required.", Views.Controls.MessageControlType.Positive);
                Session[CurrentPageSessionDataKeyWithIdentifier(ViewState_StatusMessageIdentifier)] = new List<object>() { { "Thank you!" }, { "You have completed all update steps required." }, { Views.Controls.MessageControlType.Positive } };
            }

            if (StepFromQueryString + 1 <= maxSteps)
            {
                Response.Redirect(Utilities.UpdateUrlByChangingQueryStringValues(new Dictionary<string, string>{
                    {"Step", Convert.ToString(StepFromQueryString + 1)}
                }));
            }
            else
            {
                EmployeeEditMultiView.Visible = false;
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Заполняет модель даными из моделей слоя DAL
        /// </summary>
        /// <param name="task">Задача на импорт</param>
        /// <param name="taskRecord">Запись из базы о задаче на импорт</param>
        /// <param name="changeLogRecord">Запись из базы о последнем изменении состояния задачи на импорт</param>
        /// <returns></returns>
        public static ImportTask FillFromDalEntities(this ImportTask task, ImportTaskRecord taskRecord, ImportTaskChangeLogRecord changeLogRecord)
        {
            task.AbsId      = taskRecord.AbsId;
            task.ExternalId = taskRecord.ExternalId;
            task.ChangedAt  = changeLogRecord.CreatedAt;

            switch (changeLogRecord.State)
            {
            case 0:
                task.State = ImportTaskStates.Waiting;
                break;

            case 1:
                task.State = ImportTaskStates.Done;
                break;

            default:
                throw new ArgumentOutOfRangeException($"Неизвестный код состояния {changeLogRecord.State}", nameof(changeLogRecord));
            }
            return(task);
        }
Ejemplo n.º 13
0
        /// <summary> Keeps track of which threads to start when </summary>
        private static IEnumerator TaskSupervisor(ImportTask importTask, Action <float> onProgress = null)
        {
            // Wait for required results to complete before starting
            while (!importTask.IsReady)
            {
                yield return(null);
            }
            // Start threaded task
            importTask.task.Start();
            // Wait for task to complete
            while (!importTask.task.IsCompleted)
            {
                yield return(null);
            }
            // Run additional unity code on main thread
            yield return(StaticCoroutine.Start(importTask.OnCoroutine(onProgress)));

            //Wait for additional coroutines to complete
            while (!importTask.IsCompleted)
            {
                yield return(null);
            }
        }
        protected override void Page_Load(object sender, EventArgs e)
        {
            base.Page_Load(sender, e);

            if (StepFromQueryString == 1)
            {
                StatusLabel.Visible = false;
                SetUpdateRequestAsPreview();
            }

            if (Session[CurrentPageSessionDataKeyWithIdentifier("ImportTask")] != null)
            {
                importTask = Session[CurrentPageSessionDataKeyWithIdentifier("ImportTask")] as ImportTask;
            }
            else
            {
                SetUpdateRequestAsPreview();
            }

            updateRequest = importTask.UpdateRequests.ToList<UpdateRequest>().Where(x => x.Step == StepFromQueryString).FirstOrDefault();

            SetupPageForUpdateRequest();
        }
        protected override void Page_Load(object sender, EventArgs e)
        {
            RequireClientAuthentication();

            SetupImportTaskConfigurationComboBox();
            SetupPhonebookComboBox();

            var i = ObjectFromQueryString<ImportTask>();
            if (i != null)
            {
                Session[Session_ImportTaskKey] = null;
            }

            importTask = i != null ? i : importTask;

            if (importTask.Oid != Guid.Empty && i != null)
            {
                importTask.Reload();

                SetHeadingControlText("Edit email campaign");

                if (IsPostBack == false)
                {
                    importTask.Filters.Reload();
                    ImportTaskFormLayout.DataBind(importTask);

                    if (importTask.Phonebook != null)
                    {
                        PhonebookComboBox.SelectedItem = PhonebookComboBox.SelectListItemMatchingOid(importTask.Phonebook.Oid);
                    }

                    if (PhonebookFromComboBox() != null)
                    {
                        SetupFieldLegalValuesConfigurationComboBox();
                    }

                    if (importTask.ImportTaskConfiguration != null)
                    {
                        ImportTaskConfigurationComboBox.SelectedItem = ImportTaskConfigurationComboBox.SelectListItemMatchingOid(importTask.ImportTaskConfiguration.Oid);
                    }

                    if (importTask.FieldLegalValueConfiguration != null)
                    {
                        FieldLegalValueConfigurationComboBox.SelectedItem = FieldLegalValueConfigurationComboBox.SelectListItemMatchingOid(importTask.FieldLegalValueConfiguration.Oid);
                    }
                }
            }
            else
            {
                SetHeadingControlText("Start new email campaign");

                if (PhonebookFromComboBox() != null)
                {
                    SetupFieldLegalValuesConfigurationComboBox();
                }

                if (IsPostBack == false)
                {
                    Session[Session_ImportTaskKey] = null;
                }
            }

            SetupFiltersGridView();

            if (PhonebookFromComboBox() != null)
            {
                SetupRibbon();
            }

            ImportTaskFormLayout.FindItemOrGroupByName("Options").ClientVisible = PhonebookFromComboBox() != null;
            //FiltersGridView.ClientVisible = PhonebookFromComboBox() != null;
            //FiltersLabel.ClientVisible = PhonebookFromComboBox() != null;

            var p = PhonebookFromComboBox();

            if (p != null)
            {
                p.Employees.Reload();
                var employeesWithoutEmailAddresses = p.Employees.ToList<Employee>().Where(x => x.IsDeleted == false && String.IsNullOrEmpty(x.EmailAddress)).Count();
                if (employeesWithoutEmailAddresses > 0)
                {
                    EmailStatusMessage.ShowMessageWithHeader("Warning!", String.Format("{0} employees in this phonebook don't have an email address. Make sure that your employees have email addresses, or the emails cannot not be sent!", employeesWithoutEmailAddresses), Views.Controls.MessageControlType.Warning);
                }
            }

            base.Page_Load(sender, e);
        }
    public void OnGUI()
    {
        if (this.detectedInstall == null)
        {
            return;
        }

        float spaceHorizontal = 5.0f;

        var namesProduct = new List <string>();

        foreach (var idProduct in this.detectedInstall.tableInfosInstall.Keys)
        {
            namesProduct.Add(this.detectedInstall.tableInfosInstall[idProduct].nameProduct);
        }

        this.showProductsInstalled = EditorGUILayout.Foldout(this.showProductsInstalled, "Installed DoGA products");
        if (this.showProductsInstalled)
        {
            EditorGUILayout.LabelField(string.Join(",", namesProduct.ToArray()));
            EditorGUILayout.Space();
        }

        this.showOptionImport = EditorGUILayout.Foldout(this.showOptionImport, "Import options");
        if (this.showOptionImport)
        {
            EditorGUILayout.BeginHorizontal();
            this.scaleImport = EditorGUILayout.Vector3Field("Scale", this.scaleImport, GUILayout.Width(Screen.width * 0.8f - spaceHorizontal));
            EditorGUILayout.BeginVertical();
            GUILayout.Space(16.0f);
            if (GUILayout.Button("Reset", GUILayout.Width(Screen.width * 0.2f - spaceHorizontal)))
            {
                this.scaleImport.Set(this.scaleImportInit.x, this.scaleImportInit.y, this.scaleImportInit.z);
            }
            EditorGUILayout.EndVertical();
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();
        }


        if (this.workerEnumerable != null)
        {
            this.workerEnumerable.MoveNext();
            this.Repaint();
            if (this.workerEnumerable.Current == true)
            {
                this.workerEnumerable.Dispose();
                this.workerEnumerable = null;
                GUI.enabled           = true;
            }
        }

        this.showTasksImport = EditorGUILayout.Foldout(this.showTasksImport, "Import tasks");
        if (this.showTasksImport)
        {
            this.paramScroll = EditorGUILayout.BeginScrollView(this.paramScroll);
            foreach (var task in this.tasks)
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.SelectableLabel(task.nameAsset, EditorStyles.textField, GUILayout.Width(Screen.width * 0.25f - spaceHorizontal), GUILayout.Height(EditorGUIUtility.singleLineHeight));

                var isL1 = false;
                if (task.indexIdProductSelected < task.namesProductToSelect.Length - 1)
                {
                    isL1 = (task.namesProductToSelect[task.indexIdProductSelected] == "DOGA-L1") ? true : false;
                }
                var ratioWidthProduct = isL1 ? 0.15f : 0.25f;
                var indexIdProduct    = EditorGUILayout.Popup(task.indexIdProductSelected, task.namesProductToSelect, GUILayout.Width(Screen.width * ratioWidthProduct - spaceHorizontal));
                if (indexIdProduct != task.indexIdProductSelected)
                {
                    task.indexIdProductSelected = indexIdProduct;
                    task.status = ImportTask.Status.READY;
                }
                if (isL1)
                {
                    task.indexColorL1 = EditorGUILayout.Popup(task.indexColorL1, ImportTask.getTableGUIColorL1(), GUILayout.Width(Screen.width * 0.10f - spaceHorizontal));
                }
                var rectH          = EditorGUILayout.BeginHorizontal(GUILayout.Width(Screen.width * 0.5f - spaceHorizontal));
                var rect           = new Rect(rectH.xMin, rectH.yMin + 1.0f, rectH.width, EditorGUIUtility.singleLineHeight);
                var ratioProgress  = (float)task.statusImport / (float)ImportTask.ImportStatus.COMPLETED;
                var builderMessage = new StringBuilder();
                builderMessage.Append(ImportTask.getMessage(task.status));
                if (task.status == ImportTask.Status.IMPORTING)
                {
                    builderMessage.Append("(");
                    builderMessage.Append(ImportTask.getMessageStatusImport(task.statusImport));
                    builderMessage.Append(")");
                }
                EditorGUI.ProgressBar(rect, ratioProgress, builderMessage.ToString());
                EditorGUILayout.Space();
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.EndHorizontal();
            }

            var evt      = Event.current;
            var dropArea = GUILayoutUtility.GetRect(0.0f, 50.0f, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
            var style    = new GUIStyle();
            style.alignment = TextAnchor.MiddleCenter;
            GUI.Box(dropArea, "(Drag & drop here)", style);
            switch (evt.type)
            {
            case EventType.DragUpdated:
            case EventType.DragPerform:
                if (!dropArea.Contains(evt.mousePosition))
                {
                    break;
                }
                bool doesContainPathAccepted = false;
                foreach (var path in DragAndDrop.paths)
                {
                    if (getIsAcceptedExtention(Path.GetExtension(path).ToLower()))
                    {
                        doesContainPathAccepted = true;
                    }
                }
                DragAndDrop.visualMode = doesContainPathAccepted ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected;

                if (evt.type == EventType.DragPerform)
                {
                    DragAndDrop.AcceptDrag();
                    foreach (var path in DragAndDrop.paths)
                    {
                        if (getIsAcceptedExtention(Path.GetExtension(path).ToLower()))
                        {
                            this.addTask(path);
                        }
                    }
                    DragAndDrop.activeControlID = 0;
                }
                Event.current.Use();
                break;
            }


            EditorGUILayout.EndScrollView();
        }


        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Import All", GUILayout.Width(Screen.width * 0.5f - spaceHorizontal)))
        {
            this.workerEnumerable = this.worker.importPartsAsm(this.tasks, this.scaleImport);
            GUI.enabled           = false;
        }
        if (GUILayout.Button("Clear", GUILayout.Width(Screen.width * 0.25f - spaceHorizontal)))
        {
            this.tasks.Clear();
        }
        if (GUILayout.Button("Close", GUILayout.Width(Screen.width * 0.25f - spaceHorizontal)))
        {
            var window = EditorWindow.GetWindow(typeof(PlayAnimationImportWindow));
            window.Close();
        }
        EditorGUILayout.EndHorizontal();
    }
		private static OperationResult ImportIntoDb(ModuleInstallation module)
		{
			if (!module.Import.Any())
			{
				Logger.Instance.WriteLog.Info(CommonResources.MsgPropertyNotExistInConfigFile.GetStringByFormat("Import"));
				return null;
			}
			Logger.Instance.WriteLog.Info("ImportIntoDb started");
			OperationResult result = new OperationResult();
			foreach (Import item in module.Import)
			{
				OperationResult newResult = new ImportTask(item).Execute();
				result = result.СombineResult(newResult);
			}
			Logger.Instance.WriteLog.Info("ImportIntoDb finished");
			return result;
		}
Ejemplo n.º 18
0
        protected override void Page_Load(object sender, EventArgs e)
        {
            RequireClientAuthentication();

            SetupImportTaskConfigurationComboBox();
            SetupPhonebookComboBox();

            var i = ObjectFromQueryString<ImportTask>();
            if (i != null)
            {
                Session[Session_ImportTaskKey] = null;
            }

            importTask = i != null ? i : importTask;

            if (importTask.Oid != Guid.Empty && i != null)
            {
                importTask.Reload();

                SetHeadingControlText("Edit email campaign");

                if (IsPostBack == false)
                {
                    importTask.Filters.Reload();
                    ImportTaskFormLayout.DataBind(importTask);

                    if (importTask.Phonebook != null)
                    {
                        PhonebookComboBox.SelectedItem = PhonebookComboBox.SelectListItemMatchingOid(importTask.Phonebook.Oid);
                    }

                    if (PhonebookFromComboBox() != null)
                    {
                        SetupFieldLegalValuesConfigurationComboBox();
                    }

                    if (importTask.ImportTaskConfiguration != null)
                    {
                        ImportTaskConfigurationComboBox.SelectedItem = ImportTaskConfigurationComboBox.SelectListItemMatchingOid(importTask.ImportTaskConfiguration.Oid);
                    }

                    if (importTask.FieldLegalValueConfiguration != null)
                    {
                        FieldLegalValueConfigurationComboBox.SelectedItem = FieldLegalValueConfigurationComboBox.SelectListItemMatchingOid(importTask.FieldLegalValueConfiguration.Oid);
                    }
                }
            }
            else
            {
                SetHeadingControlText("Start new email campaign");

                if (PhonebookFromComboBox() != null)
                {
                    SetupFieldLegalValuesConfigurationComboBox();
                }

                if (IsPostBack == false)
                {
                    Session[Session_ImportTaskKey] = null;
                }
            }

            SetupFiltersGridView();

            if (PhonebookFromComboBox() != null)
            {
                SetupRibbon();
            }

            ImportTaskFormLayout.FindItemOrGroupByName("Options").ClientVisible = PhonebookFromComboBox() != null;
            FiltersGridView.ClientVisible = PhonebookFromComboBox() != null;
            FiltersLabel.ClientVisible = PhonebookFromComboBox() != null;

            base.Page_Load(sender, e);
        }
Ejemplo n.º 19
0
        public static void ProcessMenuAction(ProgramMenuOption userMenuAction, ILogger logger)
        {
            Console.WriteLine($"Calling '{userMenuAction}'...");
            switch (userMenuAction)
            {
            case ProgramMenuOption.InitialPtvCreate:
                Stopwatch sw      = new Stopwatch();
                Stopwatch swTotal = new Stopwatch();
                swTotal.Start();

                // create and apply migrations
                System.Console.WriteLine("Creating new database...");
                sw.Start();
                FrameworksInitializer.DoMigration(Program.ServiceProvider);
                sw.Stop();
                string msg = $"Database created in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // seed system data
                System.Console.WriteLine("Seeding system data to database..");
                sw.Restart();
                FrameworksInitializer.SeedDatabase(Program.ServiceProvider);
                sw.Stop();
                msg = $"System data seeded to database in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // Seed finto data
                System.Console.WriteLine("Seeding finto data..");
                sw.Restart();
                ImportFintoDataTask fintoTask = new ImportFintoDataTask(Program.ServiceProvider);
                fintoTask.ImportData();
                sw.Stop();
                System.Console.WriteLine();
                msg = $"Finto items imported in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // Seed digital authorizations
                System.Console.WriteLine("Seeding digital authorizations..");
                sw.Restart();
                var importDigitalAuthorizations = new DownloadAndImportDigitalAuthorizationsTask(ServiceProvider);
                importDigitalAuthorizations.ImportDigitalAuthorizations();
                sw.Stop();
                System.Console.WriteLine();
                msg = $"Digital authorization items imported in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // Create organizations for municipalities
                System.Console.WriteLine("Creating organizations for municipalities..");
                sw.Restart();
                CreateMunicipalityOrganizationsTask munOrgTask = new CreateMunicipalityOrganizationsTask(Program.ServiceProvider);
                munOrgTask.Create();
                sw.Stop();
                System.Console.WriteLine();
                msg = $"Organizations for municipalities created in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // import general descriptions
                System.Console.WriteLine("Importing general descriptions from JSON file..");
                sw.Restart();
                UpdateCreateGeneralDescriptionsTask generalDescriptionsTask = new UpdateCreateGeneralDescriptionsTask(ServiceProvider);
                generalDescriptionsTask.ImportDataFromJSON();
                CreateServiceDataForGeneralDescriptionsJsonTask createServicesDescTask = new CreateServiceDataForGeneralDescriptionsJsonTask(Program.ServiceProvider);
                createServicesDescTask.ImportDataFromJSON();
                sw.Stop();
                System.Console.WriteLine();
                msg = $"General descriptions imported in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                // import fake ptv data from json
                System.Console.WriteLine("Starting fake PTV import..");
                sw.Restart();
                ImportTask fakeit = new ImportTask(Program.ServiceProvider);
                fakeit.ImportFakePtv();
                sw.Stop();
                msg = $"Fake PTV import complete in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();
                var languagesAndVersionsTask = new UpdateLangaugeAvailabilitiesAndVersions(Program.ServiceProvider);
                languagesAndVersionsTask.CheckAndUpdateLangaugeAvailabilitiesAndVersions();
                //Update text description to Json
                var updateTextDescriptionTask = new UpdateTextDescriptionToJsonTask(Program.ServiceProvider);
                updateTextDescriptionTask.CheckAndUpdateTextDescriptionToJson();

                swTotal.Stop();
                msg = $"Create, seed and import data, total time: {swTotal.Elapsed}";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();

                System.Console.WriteLine("See log files in /logs subfolder for details.");
                break;

            case ProgramMenuOption.CreateOrMigrateDatabase:
                // create and apply migrations
                System.Console.WriteLine("Applying migrations...");
                FrameworksInitializer.DoMigration(Program.ServiceProvider);
                System.Console.WriteLine("Database created.");
                break;

            case ProgramMenuOption.SeedSystemData:
                // seed system data
                System.Console.WriteLine("Seeding system data to database..");
                FrameworksInitializer.SeedDatabase(Program.ServiceProvider);
                System.Console.WriteLine("System data seeded to database.");
                break;

            case ProgramMenuOption.DownloadGeneralDescription:
                // import general descriptions
                System.Console.WriteLine("Downloading general descriptions from DB to file..");
                sw = new Stopwatch();
                sw.Restart();
                UpdateCreateGeneralDescriptionsTask downloadDescTask = new UpdateCreateGeneralDescriptionsTask(Program.ServiceProvider);
                downloadDescTask.DownloadFromDatabase();
                sw.Stop();

                System.Console.WriteLine();
                msg = $"General descriptions downloaded in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();
                break;

            case ProgramMenuOption.UpdateGeneralDescription:
                // import general descriptions
                System.Console.WriteLine("Importing general descriptions from JSON file..");
                sw = new Stopwatch();
                sw.Restart();
                UpdateCreateGeneralDescriptionsTask updateDescTask = new UpdateCreateGeneralDescriptionsTask(Program.ServiceProvider);
                updateDescTask.ImportDataFromJSON();
                sw.Stop();

                System.Console.WriteLine();
                msg = $"General descriptions imported in {sw.Elapsed}.";
                System.Console.WriteLine(msg);
                logger.LogInformation(msg);
                System.Console.WriteLine();
                break;

            case ProgramMenuOption.CreateMunicipalityOrganizations:
                System.Console.WriteLine("Creating Organizations for Municipalities.");
                CreateMunicipalityOrganizationsTask municipalityOrganizationsTask = new CreateMunicipalityOrganizationsTask(Program.ServiceProvider);
                municipalityOrganizationsTask.Create();
                break;

            //case ProgramMenuOption.ImportGeneralDescriptions:
            //    System.Console.WriteLine("Generating general descriptions JSON...");
            //    CreateGeneralDescriptionsJsonTask generalDescriptionTask = new CreateGeneralDescriptionsJsonTask(Program.ServiceProvider);
            //    generalDescriptionTask.Generate();
            //    System.Console.WriteLine("General descriptions JSON generation complete.");
            //    break;
            //case ProgramMenuOption.ImportFakePtv:
            //    System.Console.WriteLine("Starting fake PTV import..");
            //    ImportTask it = new ImportTask(Program.ServiceProvider);
            //    it.ImportFakePtv();
            //    System.Console.WriteLine("Fake PTV import complete.");
            //    break;
            case ProgramMenuOption.DumpFakePtv:
                System.Console.WriteLine("Starting to dump fake PTV to JSON files..");
                DumpFakePtvToFilesTask task = new DumpFakePtvToFilesTask(Program.ServiceProvider);
                task.WriteToFiles();
                System.Console.WriteLine("Fake PTV dumped to JSON files.");
                break;

            case ProgramMenuOption.ValidateFakePtvJson:
                System.Console.WriteLine("Starting to validate fake PTV generated JSON files to model..");

                try
                {
                    DumpFakePtvToFilesTask validationTask = new DumpFakePtvToFilesTask(Program.ServiceProvider);
                    validationTask.ValidateJson();
                    System.Console.WriteLine("Validation success.");
                }
                catch (Exception ex)
                {
                    System.Console.WriteLine(ex.ToString());

                    System.Console.BackgroundColor = ConsoleColor.Red;
                    System.Console.Write("Error:");
                    System.Console.ResetColor();
                    System.Console.WriteLine($" check the SourceXXX model, {ex.Message}");
                }
                break;

            case ProgramMenuOption.CreatePostalCodesJson:
                System.Console.WriteLine("Generating postal codes JSON..");
                CreatePostalCodesJsonTask pct = new CreatePostalCodesJsonTask(Program.ServiceProvider);
                pct.Generate();
                System.Console.WriteLine("Postal codes JSON generation complete.");
                break;

            case ProgramMenuOption.ImportOrganizations:
                System.Console.WriteLine("Importing organizations JSON..");
                CreateOrganizationsJsonTask organizationTask = new CreateOrganizationsJsonTask(Program.ServiceProvider);
                organizationTask.ImportDataFromJSON();
                System.Console.WriteLine("Importing organizations complete.");
                break;

            case ProgramMenuOption.UpdateCoordinatesForAddress:
                System.Console.WriteLine("Updating addresses..");
                var addressTask = new UpdateCoordinatesForAddressesTask(Program.ServiceProvider);
                addressTask.UpdateAddresses();
                System.Console.WriteLine("Updating addresses complete.");
                break;

            case ProgramMenuOption.ImportOrUpdateFinto:
                System.Console.WriteLine("Importing finto data..");
                var fintoUpdateTask = new ImportFintoDataTask(Program.ServiceProvider);
                fintoUpdateTask.ImportData();
                System.Console.WriteLine("Importing finto data complete.");
                break;

            case ProgramMenuOption.DownloadFinto:
                System.Console.WriteLine("Importing finto data..");
                var downloadFintoTask = new DownloadFintoDataTask();
                downloadFintoTask.GetAllFintoData();
                System.Console.WriteLine("Importing finto data complete.");
                break;

            //                        case ProgramMenuOption.SwitchCoordinates:
            //                            System.Console.WriteLine("Switching coordinates..");
            //                            var addressSwitchTask = new UpdateCoordinatesForAddressesTask(Program.ServiceProvider);
            //                            addressSwitchTask.SwitchCoordinates();
            //                            System.Console.WriteLine("Switching coordinates complete.");
            //                            break;
            case ProgramMenuOption.UpdateLanguageAvailabilitiesAndVersions:
                var languagesAndVersions = new UpdateLangaugeAvailabilitiesAndVersions(Program.ServiceProvider);
                languagesAndVersions.CheckAndUpdateLangaugeAvailabilitiesAndVersions();
                break;

            case ProgramMenuOption.UpdateTextDescription:
                var updateTextDescription = new UpdateTextDescriptionToJsonTask(Program.ServiceProvider);
                updateTextDescription.CheckAndUpdateTextDescriptionToJson();
                break;

            case ProgramMenuOption.UpdateServiceDescriptionByGeneralDescription:
                Console.WriteLine($"Update operation can take few minutes...");
                var updateBackgroundGeneralDescription = new UpdateServiceDescriptionByGeneralDescriptionTask(Program.ServiceProvider);
                updateBackgroundGeneralDescription.CheckAndUpdateServiceDescriptionByGeneralDescription();
                Console.WriteLine("Update operation is complete.");
                break;

            case ProgramMenuOption.FindCyclicOrganizations:
                var findCylicOrganizationsTask = new FindCyclicOrganizationsTask(Program.ServiceProvider);
                findCylicOrganizationsTask.FindCyclicOrganizations();
                break;

            case ProgramMenuOption.DeleteOldData:
                var deleteOldDataTask = new DeleteOldDataTask(Program.ServiceProvider);
                deleteOldDataTask.DeleteOldData();
                break;

            case ProgramMenuOption.DownloadAndImportDigitalAuthorizations:
                var digitalAuthorizationsTask = new DownloadAndImportDigitalAuthorizationsTask(ServiceProvider);
                digitalAuthorizationsTask.DownloadAndImportDigitalAuthorizations();
                break;

            case ProgramMenuOption.FixFintoMerge:
                var fixFintoTask = new FixFintoTask(ServiceProvider);
                fixFintoTask.Apply();
                break;

            case ProgramMenuOption.DownloadPostalCodesFromCodeServiceTask:
                DownloadPostalCodesFromCodeServiceTask dpcTask = new DownloadPostalCodesFromCodeServiceTask(ServiceProvider);
                dpcTask.Download();
                break;

            case ProgramMenuOption.FixMultiPublishedEntities:
                FixMultiplePublishedEntitiesTask fixMultipleTask = new FixMultiplePublishedEntitiesTask(ServiceProvider);
                fixMultipleTask.Apply();
                break;

//                case ProgramMenuOption.PrintGDwithoutLaw:
//                    PrintGdWithoutLaw printGd = new PrintGdWithoutLaw(ServiceProvider);
//                    printGd.Apply();
//                    break;
            case ProgramMenuOption.CopyLawsFromArchivedToPublishedGeneralDescs:
                CopyLawsOfGeneralDescs copyLaws = new CopyLawsOfGeneralDescs(ServiceProvider);
                copyLaws.Apply();
                break;

//                case ProgramMenuOption.PrintMissingGDSWELaws:
//                    CopyLawsOfGeneralDescs copyLaws2 = new CopyLawsOfGeneralDescs(ServiceProvider);
//                    copyLaws2.PrintMissingSweLaws();
//                    break;
            default:
                break;
            }
        }
        protected void SetUpdateRequestAsPreview()
        {
            Employee employee = new Employee() { FirstName = "Fred", LastName = "Jones" };

            importTask = new ImportTask()
            {
                ImportTaskConfiguration = ObjectFromQueryString<ImportTaskConfiguration>(session),
                FieldLegalValueConfiguration = ObjectFromQueryString<FieldLegalValueConfiguration>(session)
            };

            foreach (ImportTaskEmail item in importTask.ImportTaskConfiguration.ImportTaskEmails)
            {
                importTask.UpdateRequests.Add(new UpdateRequest
                {
                    Employee = employee,
                    Step = item.Step,
                    ImportTask = importTask
                });
            }

            SaveSession();
        }
Ejemplo n.º 21
0
        private async Task <Live <SkinInfo> > loadSkinIntoOsu(OsuGameBase osu, ImportTask import)
        {
            var skinManager = osu.Dependencies.Get <SkinManager>();

            return(await skinManager.Import(import));
        }
Ejemplo n.º 22
0
        public int Run(BaseOptions options)
        {
            var opts = (ImportOptions)options;

            Settings.Load(opts.Config);
            PluginProvider.Instance.Initialize();

            string pluginName = opts.Plugin;
            bool   showHelp   = false;

            if (opts.Plugin.ToLower() == "help")
            {
                if (string.IsNullOrWhiteSpace(opts.Library))
                {
                    Console.WriteLine("Available importers:");
                    PluginProvider.Instance.Importers.ForEach(i =>
                    {
                        Console.WriteLine("  {0}\t\t\t{1}", i.Command, i.Name);
                    });
                    Console.WriteLine();

                    return(0);
                }

                pluginName = opts.Library;
                showHelp   = true;
            }

            var plugin = PluginProvider.Instance.GetBookProvider(pluginName);

            if (plugin == null)
            {
                Console.Error.WriteLine("Import plugin '{0}' not found.", opts.Plugin);
                return(1);
            }

            if (showHelp)
            {
                Console.WriteLine(plugin.Help);
                return(0);
            }

            var library = Util.Normalize(opts.Library);

            if (!Directory.Exists(library))
            {
                Console.Error.WriteLine("Library directory {0} not found.", library);
                return(1);
            }

            var watch  = Stopwatch.StartNew();
            var status = new ConsoleStatus();

            using (var task = new ImportTask())
            {
                task.Start(new ImportTaskArgs
                {
                    Plugin  = plugin,
                    Library = library,
                    Args    = opts.Arguments.ToArray()
                }, (e) =>
                {
                    Console.WriteLine();
                    Console.Error.WriteLine("Error executing import plugin '{0}': {1}", opts.Plugin, e.Message);
                    _logger.Fatal(e);
                    Environment.Exit(1);
                });

                while (task.EntriesProcessed == 0)
                {
                    if (Program.Exit.WaitOne(1))
                    {
                        Environment.Exit(1);
                        return(1);
                    }
                    status.Update("Preparing to import, elapsed {0:hh\\:mm\\:ss}", watch.Elapsed);
                }

                status.Clear();
                Console.WriteLine("Using {0} workers", Environment.ProcessorCount);

                var importStart = watch.Elapsed;
                while (!task.Finished)
                {
                    if (Program.Exit.WaitOne(1))
                    {
                        Environment.Exit(1);
                        return(1);
                    }
                    status.Update("Processed {0} of {1}, {2} book/sec, elapsed {3:hh\\:mm\\:ss}", task.EntriesProcessed, task.EntriesTotal,
                                  Math.Truncate(task.EntriesProcessed / (watch.Elapsed.TotalSeconds - importStart.TotalSeconds)), watch.Elapsed);
                }

                watch.Stop();
                status.Update("Done in {0:hh\\:mm\\:ss} ({1} added/updated, {2} deleted)", watch.Elapsed, task.EntriesProcessed, task.EntriesDeleted);
            }

            return(0);
        }
Ejemplo n.º 23
0
 public Task <ILive <ScoreInfo> > Import(ImportTask task, bool lowPriority = false, CancellationToken cancellationToken = default)
 {
     return(scoreModelManager.Import(task, lowPriority, cancellationToken));
 }