Esempio n. 1
0
        /// <summary>
        /// Сохранение измененных данных в редактируемом элементе
        /// </summary>
        public void SaveData()
        {
            generalDataAndPerformanceControl.SaveData();
            attributesAndParametersControl.SaveData();

            try
            {
                currentDirective.Save(true);
                if (currentDirective.DirectiveType == DirectiveTypeCollection.Instance.SBDirectiveType || currentDirective.DirectiveType == DirectiveTypeCollection.Instance.ADDirectiveType)
                {
                    if (generalDataAndPerformanceControl.Supersedes != "")
                    {
                        BaseDetailDirective directive = GetDirectiveByTitle(generalDataAndPerformanceControl.Supersedes);
                        if (directive != null)
                        {
                            if (currentDirective.Paragraph == "" && directive.Paragraph == "")
                            {
                                directive.SupersededBy = currentDirective.Title;
                                directive.Save();
                            }
                            DirectiveRecord record = new DirectiveRecord();
                            record.RecordType = RecordTypesCollection.Instance.DirectiveSupersedingRecordType;
                            directive.AddRecord(record);
                        }
                    }
                    if (generalDataAndPerformanceControl.SupersededBy != "")
                    {
                        BaseDetailDirective directive = GetDirectiveByTitle(generalDataAndPerformanceControl.SupersededBy);
                        if (directive != null)
                        {
                            if (currentDirective.Paragraph == "" && directive.Paragraph == "")
                            {
                                directive.Supersedes = currentDirective.Title;
                                directive.Save();
                            }
                            DirectiveRecord record = new DirectiveRecord();
                            record.RecordType = RecordTypesCollection.Instance.DirectiveSupersedingRecordType;
                            currentDirective.AddRecord(record);
                        }
                    }
                }
                ReloadDirective();
            }
            catch (Exception ex)
            {
                Program.Provider.Logger.Log("Error while saving data", ex);
            }
        }
Esempio n. 2
0
        protected bool AddNewDirective(bool changePageName)
        {
            double d;

            if (generalDataAndPerformanceControl.ATAChapter == null)
            {
                MessageBox.Show("Please select ATA chapter", (string)new TermsProvider()["SystemName"],
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(false);
            }
            if (!generalDataAndPerformanceControl.CheckManHours(out d) ||
                !generalDataAndPerformanceControl.CheckCost(out d) ||
                !generalDataAndPerformanceControl.CheckLifelengthes())
            {
                return(false);
            }
            try
            {
                if (currentDirectiveContainer is Aircraft && directiveApplicabilityControl != null)
                {
                    List <ApplicabilityItem> items = directiveApplicabilityControl.ApplicabilityItems;
                    for (int i = 0; i < items.Count; i++)
                    {
                        BaseDetailDirective directive;
                        if (items[i].Aircraft.ID == ((Aircraft)currentDirectiveContainer).ID)
                        {
                            directive = addedDirective;
                        }
                        else
                        {
                            directive = new BaseDetailDirectiveProxy();
                            directive.SetDirectiveType(CurrentDirectiveType);
                        }
                        generalDataAndPerformanceControl.SaveData(directive, changePageName);
                        attributesAndParametersControl.SaveData(directive);
                        items[i].Aircraft.Add(directive);
                        // generalDataAndPerformanceControl.SaveData(directive, changePageName);
                        if (items[i].RecordType == RecordTypesCollection.Instance.DirectiveNotApplicableRecordType)
                        {
                            directive.AddRecord(RecordTypesCollection.Instance.DirectiveNotApplicableRecordType, "");
                        }
                        else if (items[i].RecordType == RecordTypesCollection.Instance.DirectiveTerminatingType)
                        {
                            directive.AddRecord(RecordTypesCollection.Instance.DirectiveTerminatingType, "");
                        }
                        else if (items[i].RecordType == RecordTypesCollection.Instance.DirectiveClosingRecordType)
                        {
                            directive.AddRecord(RecordTypesCollection.Instance.DirectiveClosingRecordType, "");
                        }
                        if (addedDirective.DirectiveType == DirectiveTypeCollection.Instance.SBDirectiveType || addedDirective.DirectiveType == DirectiveTypeCollection.Instance.ADDirectiveType)
                        {
                            if (generalDataAndPerformanceControl.Supersedes != "" && directive == addedDirective)//todo убрать
                            {
                                BaseDetailDirective supersedesDirective = GetDirectiveByTitle(generalDataAndPerformanceControl.Supersedes, directive);
                                if (supersedesDirective != null)
                                {
                                    if (directive.Paragraph == "" && supersedesDirective.Paragraph == "")
                                    {
                                        supersedesDirective.SupersededBy = directive.Title;
                                        supersedesDirective.Save();
                                    }
                                    DirectiveRecord record = new DirectiveRecord();
                                    record.RecordType = RecordTypesCollection.Instance.DirectiveSupersedingRecordType;
                                    supersedesDirective.AddRecord(record);
                                }
                            }
                            if (generalDataAndPerformanceControl.SupersededBy != "")
                            {
                                BaseDetailDirective supersededByDirective = null;
                                if (directive == addedDirective)//todo убрать
                                {
                                    supersededByDirective = GetDirectiveByTitle(generalDataAndPerformanceControl.SupersededBy, directive);
                                    if (supersededByDirective != null)
                                    {
                                        if (directive.Paragraph == "" && supersededByDirective.Paragraph == "")
                                        {
                                            supersededByDirective.Supersedes = directive.Title;
                                            supersededByDirective.Save();
                                        }
                                    }
                                }
                                DirectiveRecord record = new DirectiveRecord();
                                record.RecordType = RecordTypesCollection.Instance.DirectiveSupersedingRecordType;
                                directive.AddRecord(record);
                            }
                        }
                    }
                }
                else
                {
                    generalDataAndPerformanceControl.SaveData(addedDirective, changePageName);
                    attributesAndParametersControl.SaveData(addedDirective);
                    currentDirectiveContainer.Add(addedDirective);
                    if (addedDirective.DirectiveType == DirectiveTypeCollection.Instance.SBDirectiveType || addedDirective.DirectiveType == DirectiveTypeCollection.Instance.ADDirectiveType)
                    {
                        if (generalDataAndPerformanceControl.Supersedes != "")
                        {
                            BaseDetailDirective directive = GetDirectiveByTitle(generalDataAndPerformanceControl.Supersedes, addedDirective);
                            if (directive != null)
                            {
                                directive.SupersededBy = addedDirective.Title;
                                directive.Save();
                                DirectiveRecord record = new DirectiveRecord();
                                record.RecordType = RecordTypesCollection.Instance.DirectiveSupersedingRecordType;
                                directive.AddRecord(record);
                            }
                        }
                        if (generalDataAndPerformanceControl.SupersededBy != "")
                        {
                            BaseDetailDirective directive = GetDirectiveByTitle(generalDataAndPerformanceControl.SupersededBy, addedDirective);
                            if (directive != null)
                            {
                                if (addedDirective.Paragraph == "" && directive.Paragraph == "")
                                {
                                    directive.Supersedes = addedDirective.Title;
                                }
                                directive.Save();
                                DirectiveRecord record = new DirectiveRecord();
                                record.RecordType = RecordTypesCollection.Instance.DirectiveSupersedingRecordType;
                                addedDirective.AddRecord(record);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Program.Provider.Logger.Log("Error while saving data", ex);
                return(false);
            }
            return(true);
        }
Esempio n. 3
0
        /// <summary>
        /// Данные работы обновляются по введенным значениям
        /// </summary>
        private bool SaveData()
        {
            TimeSpan hours;
            int      cycles;

            if (!UsefulMethods.ParseTime(textBoxHours.Text, out hours))
            {
                SimpleBalloon.Show(textBoxHours, ToolTipIcon.Warning, "Incorrect time format", "Please enter the time period in the following format:\nHH:MM");
                return(false);
            }
            if (!int.TryParse(textBoxCycles.Text, out cycles))
            {
                SimpleBalloon.Show(textBoxCycles, ToolTipIcon.Warning, "Incorrect value", "Please enter integer value");
                return(false);
            }
            if (currentRecord.RecordDate != Date)
            {
                currentRecord.RecordDate = Date;
            }
            if (currentRecord.Description != Remarks)
            {
                currentRecord.Description = Remarks;
            }
            if (currentRecord.AttachedFile != AttachedFile)
            {
                currentRecord.AttachedFile.FileName = AttachedFile.FileName;
                currentRecord.AttachedFile.FileData = AttachedFile.FileData;
            }
            if (currentRecord.MaintenanceOrganization != MaintenanceOrganization)
            {
                currentRecord.MaintenanceOrganization = MaintenanceOrganization;
            }
            if (currentRecord.Reference != Reference)
            {
                currentRecord.Reference = Reference;
            }
            if (currentRecord.OfficialDocumentsReceived != OfficialRecordsReceived)
            {
                currentRecord.OfficialDocumentsReceived = OfficialRecordsReceived;
            }

            try
            {
                if (mode == ScreenMode.Add)
                {
                    currentRecord.Completed = true;
                    if (currentDetail != null)
                    {
                        currentRecord = new DetailDirectiveRecord(currentRecord);
                        ((DetailDirective)comboBoxWorkType.SelectedItem).AddPerformance((DetailDirectiveRecord)currentRecord);
                    }
                    else
                    {
                        if (currentRecord.RecordType != RecordType)
                        {
                            currentRecord.RecordType = RecordType;
                        }
                        if (currentRecord.RecordType == RecordTypesCollection.Instance.DirectivePerformanceRecordType &&
                            !currentDirective.RepeatedlyPerform)
                        {
                            currentRecord.RecordType = RecordTypesCollection.Instance.DirectiveClosingRecordType;
                        }
                        currentDirective.AddRecord(currentRecord);
                    }
                    if (AttachedFile != null)
                    {
                        currentRecord.AttachedFile.FileName = AttachedFile.FileName;
                        currentRecord.AttachedFile.FileData = AttachedFile.FileData;
                    }
                    mode = ScreenMode.Edit;
                }
                currentRecord.Save(true);
                if (actualStateChanged)
                {
                    bool exist = false;
                    int  index = -1;
                    for (int i = actualStateRecords.Length - 1; i >= 0; i--)
                    {
                        if (UsefulMethods.CompareDates(actualStateRecords[i].RecordDate, dateTimePickerDate.Value))
                        {
                            exist = true;
                            index = i;
                            break;
                        }
                    }
                    if (exist)
                    {
                        if (MessageBox.Show("There is another actual state record for this date.\nExisting data will be updated.\nContinue?", new GlobalTermsProvider()["SystemName"].ToString(), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                        {
                            actualStateRecords[index].Lifelength = new Lifelength(new TimeSpan(0), cycles, hours);
                            actualStateRecords[index].Save();
                        }
                    }
                    else
                    {
                        ActualStateRecord record = new ActualStateRecord(new Lifelength(new TimeSpan(0), cycles, hours));
                        record.RecordDate = dateTimePickerDate.Value;
                        if (currentRecord.Parent.Parent is BaseDetail)
                        {
                            ((BaseDetail)currentRecord.Parent.Parent).AddRecord(record);
                        }
                        else
                        {
                            ((BaseDetail)currentRecord.Parent.Parent.Parent).AddRecord(record);
                        }
                    }
                }
                if (RecordChanged != null)
                {
                    RecordChanged(this, EventArgs.Empty);
                }
            }
            catch (Exception ex)
            {
                Program.Provider.Logger.Log("Error while saving data", ex);
                return(false);
            }
            return(true);
        }