Exemplo n.º 1
0
        /// <summary>
        /// Saves the specified action dictionary.
        /// </summary>
        /// <param name="actionDictionary">The action dictionary.</param>
        public override void Save(object actionDictionary)
        {
            this.DisableAllActionItems(true);
            Dictionary <string, UPEditFieldContext> changedFields = this.ChangedFields();

            if (changedFields == null || changedFields.Count == 0)
            {
                this.ModelControllerDelegate.PopToPreviousContentViewController();
                return;
            }

            ServiceInfo serviceInfo = ServerSession.CurrentSession.ServiceInfoForServiceName("ChangeConfiguration");
            ChangeConfigurationServerOperation request = new ChangeConfigurationServerOperation(changedFields, this);

            if (string.CompareOrdinal(serviceInfo.Version, "1.1") <= 0)
            {
                UPMProgressStatus stillLoadingError = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("savingIdentifier"));
                UPMStringField    statusField       = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"));
                statusField.FieldValue = LocalizedString.Localize(LocalizationKeys.TextGroupProcesses, LocalizationKeys.KeyProcessesEditSavingChangesProgressMessage);
                stillLoadingError.StatusMessageField = statusField;
                this.Organizer.Status = stillLoadingError;
                this.InformAboutDidChangeTopLevelElement(this.TopLevelElement, this.TopLevelElement, null, null);
                ServerSession.CurrentSession.ExecuteRequest(request);
            }
            else
            {
                request.StoreWebConfigParametersLocally();
                UPChangeManager.CurrentChangeManager.RegisterChanges(new List <IIdentifier> {
                    StringIdentifier.IdentifierWithStringId("Configuration")
                });
                this.ModelControllerDelegate.PopToPreviousContentViewController();
            }
        }
        private void Save(object actionDictionary)
        {
            List <UPCRMRecord> changedRecords = null;
            UPObjectives       objectives     = null;

            foreach (UPPageModelController modelController in this.PageModelControllers)
            {
                var objectivesEditPageModelController = modelController as ObjectivesEditPageModelController;
                if (objectivesEditPageModelController != null)
                {
                    changedRecords = objectivesEditPageModelController.ChangedRecords();
                    objectives     = objectivesEditPageModelController.ObjectivesCore;
                }
            }

            if (changedRecords == null)
            {
                this.NoChangesWhileSaving();
                return;
            }

            UPMProgressStatus stillLoadingError = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("savingIdentifier"));
            UPMStringField    statusField       = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"));

            statusField.FieldValue = LocalizedString.TextWaitForChanges;
            stillLoadingError.StatusMessageField = statusField;
            this.Organizer.Status = stillLoadingError;
            this.InformAboutDidChangeTopLevelElement(this.TopLevelElement, this.TopLevelElement, null, null);
            objectives.OfflineRequest.StartRequest(UPOfflineRequestMode.OnlineConfirm, changedRecords, this);
        }
Exemplo n.º 3
0
        private void ApplyLoadingStatusOnPage(Page page)
        {
            UPMProgressStatus stillLoadingError = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("loadingIdentifier"));
            UPMStringField    statusField       = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"));

            statusField.StringValue = LocalizedString.TextLoadingData;
            stillLoadingError.StatusMessageField = statusField;
            page.Status = stillLoadingError;
        }
Exemplo n.º 4
0
        private void ApplyLoadingStatusOnOrganizer(UPMOrganizer organizer)
        {
            UPMProgressStatus progressStatus = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("loadingIdentifier"));
            UPMStringField    statusField    = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"));

            statusField.FieldValue            = LocalizedString.TextLoadingData;
            progressStatus.StatusMessageField = statusField;
            organizer.Status = progressStatus;
        }
Exemplo n.º 5
0
        /// <inheritdoc/>
        public override void ApplyLoadingStatusOnPage(Page page)
        {
            UPMProgressStatus loadinfStatus = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("loadingIdentifier"));
            UPMStringField    statusField   = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"))
            {
                FieldValue = LocalizedString.TextLoadingData
            };

            loadinfStatus.StatusMessageField = statusField;
            page.Status = loadinfStatus;
        }
        /// <summary>
        /// Applies the loading status on page.
        /// </summary>
        /// <param name="page">The page.</param>
        public virtual void ApplyLoadingStatusOnPage(Page page)
        {
            var stillLoadingError = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("loadingIdentifier"));

            var statusField = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"))
            {
                FieldValue = LocalizedString.TextLoadingData
            };

            stillLoadingError.StatusMessageField = statusField;
            page.Status = stillLoadingError;
        }
Exemplo n.º 7
0
        /// <summary>
        /// Builds the page.
        /// </summary>
        public void BuildPage()
        {
            UPMSyncConflictsPage page           = new UPMSyncConflictsPage(StringIdentifier.IdentifierWithStringId("SyncConflictsPage"));
            UPMProgressStatus    progressStatus = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("savingIdentifier"));
            UPMStringField       statusField    = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"));

            statusField.FieldValue            = LocalizedString.TextLoadingData;
            progressStatus.StatusMessageField = statusField;
            page.Status          = progressStatus;
            page.Invalid         = true;
            this.TopLevelElement = page;
        }
Exemplo n.º 8
0
        /// <summary>
        /// Saves the specified action dictionary.
        /// </summary>
        /// <param name="actionDictionary">The action dictionary.</param>
        public void Save(object actionDictionary)
        {
            List <UPCRMRecord> changedRecords  = null;
            UPCharacteristics  characteristics = null;

            foreach (UPPageModelController modelController in this.PageModelControllers)
            {
                var characteristicsEditPageModelController = modelController as UPCharacteristicsEditPageModelController;
                if (characteristicsEditPageModelController != null)
                {
                    changedRecords  = characteristicsEditPageModelController.ChangedRecords();
                    characteristics = characteristicsEditPageModelController.Characteristics;
                    break;
                }
            }

            if (this.conflictEditOfflineRequest != null)
            {
                bool onlineRequestNecessary = changedRecords?.Any(record => !(record.Deleted && record.IsNew)) ?? false;

                if (onlineRequestNecessary)
                {
                    this.conflictEditOfflineRequest.StartRequest(UPOfflineRequestMode.OnlineOnly, changedRecords, this);
                }
                else
                {
                    this.conflictEditOfflineRequest.DeleteRequest(true);
                    this.ModelControllerDelegate.PopToRootContentViewController();
                }

                return;
            }

            if (changedRecords == null || changedRecords.Count == 0)
            {
                this.NoChangesWhileSaving();
                return;
            }

            UPMProgressStatus stillLoadingError = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("savingIdentifier"));
            UPMStringField    statusField       = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"));

            statusField.FieldValue = LocalizedString.TextWaitForChanges;
            stillLoadingError.StatusMessageField = statusField;
            this.Organizer.Status = stillLoadingError;
            this.InformAboutDidChangeTopLevelElement(this.TopLevelElement, this.TopLevelElement, null, null);
            characteristics.OfflineRequest.StartRequest(UPOfflineRequestMode.OnlineConfirm, changedRecords, this);
        }
Exemplo n.º 9
0
        private void SaveRootTemplateFilterBaseTemplateFilter(object actionDictionary, UPConfigFilter rootTemplateFilter, UPConfigFilter baseTemplateFilter)
        {
            UPMOrganizerAction action = this.ActionItem(StringIdentifier.IdentifierWithStringId("action.save"));

            if (action.LabelText == LocalizedString.TextClose)
            {
                this.Cancel(actionDictionary);
                return;
            }

            List <UPCRMRecord> changedRecordArray = this.ChangedRecordsWithRootTemplateFilter(rootTemplateFilter, baseTemplateFilter, false);
            UPSurvey           survey             = null;

            foreach (UPPageModelController pageModelController in this.PageModelControllers)
            {
                if (survey == null && pageModelController is QuestionnaireEditPageModelController)
                {
                    survey = ((QuestionnaireEditPageModelController)pageModelController).Survey;
                }
            }

            if (changedRecordArray == null)
            {
                this.NoChangesWhileSaving();
                return;
            }

            if (survey != null)
            {
                UPMProgressStatus stillLoadingError = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("savingIdentifier"));
                UPMStringField    statusField       = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"));
                statusField.FieldValue = LocalizedString.TextWaitForChanges;
                stillLoadingError.StatusMessageField = statusField;
                this.Organizer.Status = stillLoadingError;
                this.InformAboutDidChangeTopLevelElement(this.TopLevelElement, this.TopLevelElement, null, null);

                survey.OfflineRequest.StartRequest(UPOfflineRequestMode.OnlineConfirm, changedRecordArray, this);
            }
        }
Exemplo n.º 10
0
        private UPSerialEntryFinalSaveResult ExecuteFinalSave()
        {
            this.ModelControllerDelegate?.StopAllEditing();
            if (this.finalSaveCalled)
            {
                return(UPSerialEntryFinalSaveResult.Finished);
            }

            bool hasViolations = false;

            foreach (UPPageModelController modelController in this.PageModelControllers)
            {
                EditPageModelController editModelController = modelController as EditPageModelController;
                if (editModelController == null)
                {
                    continue;
                }

                if (editModelController.UpdatePageWithViolations())
                {
                    hasViolations = true;
                }
            }

            if (hasViolations)
            {
                return(UPSerialEntryFinalSaveResult.Abort);
            }

            this.finalSaveCalled = true;
            this.DisableAllActionItems(true);
            if (this.currentModelController is SerialEntryPageModelController)
            {
                UPMProgressStatus stillLoadingError = new UPMProgressStatus(StringIdentifier.IdentifierWithStringId("savingIdentifier"));
                UPMStringField    statusField       = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier"));
                statusField.FieldValue = LocalizedString.TextWaitForChanges;
                stillLoadingError.StatusMessageField = statusField;
                this.Organizer.Status = stillLoadingError;
                this.InformAboutDidChangeTopLevelElement(this.TopLevelElement, this.TopLevelElement, null, null);
            }

            bool noChanges = true;

            if (!this.IsNew || !this.created)
            {
                List <UPCRMRecord> changedRecords = this.ChangedRecords(false);
                if (changedRecords?.Count > 0)
                {
                    this.EditRecordRequest.TitleLine   = this.Organizer.TitleText;
                    this.EditRecordRequest.DetailsLine = this.Organizer.SubtitleText;
                    this.waitForSave = true;
                    noChanges        = false;
                    this.EditRecordRequest.StartRequest(UPOfflineRequestMode.OnlineConfirm, changedRecords, this);
                }
            }

            foreach (UPPageModelController modelController in this.PageModelControllers)
            {
                if (modelController is SerialEntryPageModelController)
                {
                    SerialEntryPageModelController serialEntryModelController = (SerialEntryPageModelController)modelController;
                    this.waitForSerialEntrySave = true;
                    this.isSaving = true;
                    if (!serialEntryModelController.SaveAll())
                    {
                        this.waitForSerialEntrySave = false;
                        this.isSaving = false;
                    }
                    else
                    {
                        noChanges = false;
                    }
                }
            }

            if (noChanges)
            {
                this.HandleChangeManager();
                this.HandleSaved();
                return(UPSerialEntryFinalSaveResult.Finished);
            }

            return(UPSerialEntryFinalSaveResult.Pending);
        }