public async void UploadFile(object param)
        {
            if (!CrossMedia.Current.IsPickPhotoSupported)
            {
                await Application.Current.MainPage.DisplayAlert("File Not Supported.", "Permission not granted to files.", "STÄNG");

                return;
            }

            var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions
            {
                PhotoSize = PhotoSize.Large,
            });

            if (file != null)
            {
                string[] temp       = file.Path.Split('/');
                string[] tempName   = temp[temp.Length - 1].Split('.');
                string   filename   = tempName[0];
                string   foldername = DateTime.Now.ToString("yyyy-MM-dd") + "/" + DateTime.Now.ToString("H-mm-ss");
                string   filePath   = "Files/NyKvalitetsRapport/" + Application.Current.Properties["CompanyId"].ToString() + "/" + Application.Current.Properties["OfficeId"].ToString() + "/" + foldername + "/" + temp[temp.Length - 1];

                var        content = new MultipartFormDataContent();
                Uri        host    = new Uri("http://www.bisoft.se/Bisoft/receiver.ashx");
                UriBuilder ub      = new UriBuilder(host)
                {
                    Query = string.Format("filename={0}", filePath)
                };

                Stream data = file.GetStream();

                WebClient c = new WebClient();
                c.OpenWriteCompleted += (sender, e) =>
                {
                    PushData(data, e.Result);
                    e.Result.Close();
                    data.Close();

                    if (AllImages == null)
                    {
                        AllImages = new ObservableCollection <QRAttachedFile>();
                    }

                    QRAttachedFile phfile = new QRAttachedFile();
                    phfile.FileName = filename;
                    phfile.FilePath = filePath;
                    phfile.Id       = 0;

                    AllImages.Add(phfile);
                    UpdateUploadedFiles();
                };
                c.OpenWriteAsync(ub.Uri);
            }
            else
            {
                await Application.Current.MainPage.DisplayAlert("File not supported.", "Ingen fil vald.", "STÄNG");
            }
        }
 private void Imagepage_Disappearing(object sender, EventArgs e)
 {
     if (SelectedImage != null)
     {
         if (ImagePageVM.DeletePhoto == true)
         {
             if (AllImages != null && AllImages.Count > 0 && AllImages.Contains(SelectedImage))
             {
                 AllImages.Remove(SelectedImage);
                 UpdateUploadedFiles();
                 SelectedImage = null;
             }
         }
     }
 }
        private void GetReportData()
        {
            DbContext = new Service1Client(Service1Client.EndpointConfiguration.BasicHttpBinding_IService1);
            var data = DbContext.GetQualityReportById(Application.Current.Properties["UN"].ToString(),
                                                      Application.Current.Properties["PW"].ToString(), Application.Current.Properties["Ucid"].ToString(), IniQRId);

            ReportData = new QualityReport();
            QualityReport qualityReport = new QualityReport();

            qualityReport.Id          = data.Id;
            qualityReport.ReportNr    = data.ReportNr;
            qualityReport.DateCreated = data.Created;
            qualityReport.Status      = data.Status;

            TimeSpan span = DateTime.Now - data.Created;

            qualityReport.Interval = span.Days + " dag " + span.Hours + " tim";

            if (data.CreatedByEmployee != null)
            {
                Employee createdBy = new Employee();
                createdBy.Id   = data.CreatedByEmployee.Id;
                createdBy.Name = data.CreatedByEmployee.FName + " " + data.CreatedByEmployee.LName;
                qualityReport.CreatedByEmployee = createdBy;
            }

            if (data.OfficeData != null)
            {
                Office off = new Office();
                off.Id               = data.OfficeData.Id;
                off.Name             = data.OfficeData.Name;
                qualityReport.Office = off;
            }

            //"Felbeskrivning" the following 3 properties
            qualityReport.Department             = data.OfficeDepartment;
            qualityReport.DepartmentTask         = data.OfficeDepartmentTask;
            qualityReport.OfficeDepartmentTaskId = data.OfficeDepartmentTaskId;
            qualityReport.Description            = data.Description;

            //"Trolig orsak" the following 3 properties
            qualityReport.QRAnalysisHeaderId = data.QRAnalysisHeaderId;
            qualityReport.QRAnalysisHeader   = data.QRAnalysisHeader;
            qualityReport.AnalysisText       = data.AnalysisText;
            qualityReport.AnalysisCausedById = data.AnalysisCausedById;
            if (data.CausedByEmployees != null)
            {
                qualityReport.CausedByEmployees = new ObservableCollection <Employee>();
                Employee causedBy;
                foreach (var emp in data.CausedByEmployees)
                {
                    causedBy      = new Employee();
                    causedBy.Id   = emp.Id;
                    causedBy.Name = emp.FName + " " + emp.LName;
                    qualityReport.CausedByEmployees.Add(causedBy);
                }
            }

            //"Slutlig åtgärd" the following 4 properties
            qualityReport.QRFinalDecisionHeader = data.QRFinalDecisionHeader;
            qualityReport.FinalDecisionText     = data.FinalDecisionText;
            qualityReport.FinalDecisionCost     = data.FinalDecisionCost;
            qualityReport.IsRepeatRepair        = data.IsRepeatRepair;

            if (data.ResponsibleEmployee != null)
            {
                Employee responsible = new Employee();
                responsible.Id   = data.ResponsibleEmployee.Id;
                responsible.Name = data.ResponsibleEmployee.FName + " " + data.ResponsibleEmployee.LName;
                qualityReport.ResponsibleEmployee = responsible;
            }

            if (data.QRAttachedFileData != null)
            {
                QRAttachedFile attachedFile;
                AllImages = new ObservableCollection <QRAttachedFile>();
                foreach (var img in data.QRAttachedFileData)
                {
                    attachedFile          = new QRAttachedFile();
                    attachedFile.Id       = img.Id;
                    attachedFile.FileName = img.FileName;
                    attachedFile.FilePath = img.FilePath;

                    AllImages.Add(attachedFile);
                }
            }

            qualityReport.AoNr      = data.AoNr;
            qualityReport.RegNr     = data.RegNr;
            qualityReport.TotalCost = data.TotalCost;
            qualityReport.Year      = data.Year;
            qualityReport.Deleted   = data.Deleted;

            if (data.QRLogs != null)
            {
                qualityReport.QRLog = new ObservableCollection <QRLog>();
                QRLog qrlog;
                foreach (var log in data.QRLogs.OrderBy(o => o.Id))
                {
                    qrlog             = new QRLog();
                    qrlog.QRId        = log.QualityReportId;
                    qrlog.Id          = log.Id;
                    qrlog.LogTypeId   = log.LogTypeId;
                    qrlog.LogTypeText = log.LogTypeText;
                    qrlog.Subject     = log.Subject;
                    qrlog.Created     = log.Created;
                    qrlog.Description = log.Description;
                    if (log.CreatedEmployee != null)
                    {
                        Employee emp = new Employee();
                        emp.Id   = log.CreatedEmployee.Id;
                        emp.Name = log.CreatedEmployee.FName + " " + log.CreatedEmployee.LName;
                        qrlog.CreatedByEmployee = emp;
                    }
                    qualityReport.QRLog.Add(qrlog);
                }
            }

            ReportData = qualityReport;
        }