Пример #1
0
        private void SaveDiamond_Click(object sender, RoutedEventArgs e)
        {
            StonesRepository rep = new StonesRepository(FolderUponCaptureEvent);

            //Create the infoparts from input controls

            string filename = Path.Combine(FolderUponCaptureEvent, this.Filename.Text);
            filename = Path.ChangeExtension(filename, "jpg");

            if (rep.IsStoneExists(filename) && this.EditMode == false)
            {
                MessageBoxResult result = MessageBox.Show("The filename already exists, do you want to override the existing file", "File exists", MessageBoxButton.YesNo);
                if (result == MessageBoxResult.No)
                {
                    return;
                }
            }

            BitmapSource source = (BitmapSource)this.CapturedImage.Source;

            List<StoneInfoPart> infoparts = new List<StoneInfoPart>();

            foreach (StackPanel panel in this.InfoPartsInputsContainer.Children)
            {
                StoneInfoPart infopart = new StoneInfoPart();
                if (panel.Children.OfType<TextBox>().SingleOrDefault() != null)
                {
                    infopart.Title = (string)panel.Children.OfType<TextBox>().SingleOrDefault().Tag;
                    infopart.Value = panel.Children.OfType<TextBox>().SingleOrDefault().Text;
                    infopart.TitleForReport = (string)panel.Children.OfType<Label>().SingleOrDefault().Content;
                }
                else if (panel.Children.OfType<ComboBox>().SingleOrDefault() != null)
                {
                    infopart.Title = (string)panel.Children.OfType<ComboBox>().SingleOrDefault().Tag;
                    infopart.Value = (string)((ComboBoxItem)panel.Children.OfType<ComboBox>().SingleOrDefault().SelectedItem).Tag;
                    infopart.TitleForReport = (string)panel.Children.OfType<Label>().SingleOrDefault().Content;
                }

                infoparts.Add(infopart);

            }

            if (this.ValidateUserInput() == false)
            {
                MessageBox.Show("Filename,Stonetype,Stone Weight,Clarity and color are mendatory fields...");
                return;
            }
            if (this.EditMode)
            {
                rep.UpdateStone(filename, infoparts);
            }
            else
            {
                rep.CreateANewStone(source, filename, infoparts);
            }

            //WebCam webcam = WebCam.GetInstance();
               // webcam.Start();

            StonesView.RefreshView();

            this.Close();
        }