コード例 #1
0
        public void OnPictureSelected(AIImage image, MediaFile mediaFile)
        {
            try
            {
                if (mediaFile != null)
                {
                    image.Source = ImageSource.FromStream(() =>
                    {
                        return(mediaFile.GetStream());
                    });

                    Question qn = Sections.SelectMany(l => l.Questions).Where(x => x.Key == (image.Parent as StackLayout).ClassId).FirstOrDefault();
                    //Question being in a depedency subsection
                    if (qn == null)
                    {
                        var dependency = QSections.Sections.SelectMany(s => s.Questions)
                                         .SelectMany(x => x.Dependencies)
                                         .Where(o => o.Occurance == image.Occurance);

                        qn = dependency.Select(v => v.Target)
                             .Select(x => x.SubSection)
                             .SelectMany(s => s.Questions)
                             .Where(q => q.Key == image.ClassId).FirstOrDefault();
                    }

                    //Question being in a subsection
                    if (qn == null)
                    {
                        qn = QSections.Sections.SelectMany(s => s.SubSections).SelectMany(l => l.Questions).Where(x => x.Key == image.ClassId).FirstOrDefault();
                    }


                    if (qn.Answers == null)
                    {
                        qn.Answers = new List <Answer>();
                        qn.Answers.Add(new Answer()
                        {
                            Key        = Guid.NewGuid().ToString(),
                            AnswerText = Convert.ToBase64String(ConvertImageToByte(mediaFile))
                        });
                    }
                    else
                    {
                        qn.Answers.Clear();
                        qn.Answers.Add(new Answer()
                        {
                            Key        = Guid.NewGuid().ToString(),
                            AnswerText = Convert.ToBase64String(ConvertImageToByte(mediaFile))
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox(ex.StackTrace, MessageType.Regular, this), true));
            }
        }
コード例 #2
0
 public PhotoUploadOptions(AIImage image, PicturePageState pageState)
 {
     this._pageState = pageState;
     InitializeComponent();
     this.Image = image;
 }