public double GetPrice()
        {
            if (IsFixedPrice)
            {
                return(fixedPrice);
            }
            double result = DelegateAssemblyService.getPriceforWorkType(this, ParametersValue);

            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// считываем входные данные
        /// </summary>
        /// <param name="path">имя файла с входными данными</param>
        public static void ReadInput(string path)
        {
            InputFilePath = OutputFilePath = path;
            if (File.Exists(InputFilePath))//если данные есть
            {
                //try
                //{
                InputJsonString = File.ReadAllText(InputFilePath);                                                      //чтение файла
                isHaveInput     = true;
                InputItems      = OutputItems = JsonConvert.DeserializeObject <List <WorkTypeClass> >(InputJsonString); //чтение входных данных
                if (InputItems == null && OutputItems == null)                                                          //если файл с входными данными пуст или не читается
                {
                    InputItems  = new List <WorkTypeClass>();                                                           //инициализация обЪектов
                    OutputItems = new List <WorkTypeClass>();
                }
                DelegateAssemblyService.WriteCompileStringToFile();

                DelegateAssemblyService.AssemblyDelegate();    //сборка делегатов(проверка корректности входных данных)
                if (isLoadingCorrect)
                {
                    if (File.Exists("works.json"))
                    {
                        File.Copy("works.json", "lastCompleteBuild.json", true);//если начальные данные не поврежденны, то сохраняем их как последний рабочий билд
                    }
                }
                //}
                //catch//если начальные данные повреждены
                //{
                //    if (File.Exists("lastCompleteBuild.json"))
                //    {
                //        isLoadingCorrect = false;
                //        ReadInput("lastCompleteBuild.json");//загрузка последнего рабочего билда
                //        MessageBox.Show("Cборка не была загружена из-за ошибки, поэтому была загружена последняя рабочая версия.");
                //        return;
                //    }

                //}
            }
            else//если их нет
            {
                File.Create(InputFilePath);//создаем пустой входной файл
                InputJsonString = "";
                isHaveInput     = true;
                OutputItems     = new List <WorkTypeClass>();
            }
        }
        private void AddWorkType(object sender, EventArgs e)
        {
            WorkTypeClass work = new WorkTypeClass();

            work.Article = WorkTypeNameInp.Text;
            work.setPriceFunc(formula.TextBox.Text);
            var numer = Listofparams.Items.GetEnumerator();

            while (numer.MoveNext())
            {
                work.parametrs.Add(numer.Current.ToString());
            }
            work.ParametersValue = new double[work.parametrs.Count];
            if (Category.SelectedIndex == -1)
            {
                MessageBox.Show("Выберите категорию!");
                return;
            }
            work.category = (WorkTypeClass.Category)(Category.SelectedIndex);
            if (DelegateAssemblyService.isCreatedCorrect(work))
            {
                if (RedactedItemIndex != null)
                {
                    JSONSerializeService.OutputItems.Remove(JSONSerializeService.OutputItems.Find(w => w.FullEquals(RedactedWork)));
                    JSONSerializeService.AddToOutput(work);
                    JSONSerializeService.Save();
                    WorksTypeTree.Edit(RedactedWork, work);
                    RedactedWork = null;
                }
                else
                {
                    JSONSerializeService.AddToOutput(work);
                    JSONSerializeService.Save();
                    work = JSONSerializeService.OutputItems.Find(w => w.FullEquals(work));
                    WorksTypeTree.AddtoList(work);
                }

                this.Hide();
            }
            else
            {
                MessageBox.Show("Параметры обьекта заданны некоректно.");
            }
        }