public RecuperationInformationResponse GetRecuperationInformation(int key)
        {
            var response = new RecuperationInformationResponse();
            var info     = this._context.Set <RecuperationInformation>().FirstOrDefault(r => r.TransactionNumber == key);

            var sanatorium       = this._context.Set <Sanatorium>().FirstOrDefault(s => s.TransactionNumber == info.SanatoriumID);
            var aircrewLeader    = this._context.Set <Aircrew>().FirstOrDefault(a => a.TransactionNumber == info.LeaderAircrewID);
            var aviationMedicine = this._context.Set <AviationMedicine>().FirstOrDefault(a => a.TransactionNumber == info.AviationMedicineID);

            if (info != null)
            {
                if (sanatorium != null)
                {
                    response.SanatoriumName      = sanatorium.Name;
                    response.SanatoriumAddress   = sanatorium.Address;
                    response.RecommendTravelMode = sanatorium.RecommendTravelMode;
                }

                if (aircrewLeader != null)
                {
                    response.LeaderAircrew    = aircrewLeader.Name;
                    response.LeaderContactTel = aircrewLeader.TroopsTel;
                }

                if (aviationMedicine != null)
                {
                    response.AviationMedicineName = aviationMedicine.Name;
                    response.AviationMedicineTel  = aviationMedicine.ContactPhone;
                }

                if (info.RecuperationAccompany != null)
                {
                    response.RecuperationAccompanyList = info.RecuperationAccompany.Select(r =>
                    {
                        return(new Entity.SystemManage.Response.RecuperationMemberSimple
                        {
                            Name = r.Name,
                            PhoneNumber = r.ContactPhone
                        });
                    }).ToList();
                }

                if (info.RecuperationMember != null)
                {
                    response.RecuperationMemberList = info.RecuperationMember.Select(r =>
                    {
                        var aircrew = this._context.Set <Aircrew>().FirstOrDefault(a => a.TransactionNumber == r.AircrewID);
                        return(new Entity.SystemManage.Response.RecuperationMemberSimple
                        {
                            Name = aircrew.Name,
                            PhoneNumber = aircrew.TroopsTel
                        });
                    }).ToList();
                }
            }
            return(response);
        }
        private async void BuildReportData(int key)
        {
            response = await this.facade.GetRecuperationInformation(key);

            ReportViewer.LocalReport.SubreportProcessing += LocalReport_SubreportProcessing;
            ReportDataSource reportDataSource = new ReportDataSource();

            reportDataSource.Name  = "DataSet1";
            reportDataSource.Value = new List <RecuperationInformationResponse> {
                response
            };
            ReportViewer.LocalReport.DataSources.Add(reportDataSource);
            ReportViewer.LocalReport.ReportEmbeddedResource = "HealthyInfomation.Report.Recuperation.rdlc";
            ReportViewer.ProcessingMode = ProcessingMode.Local;
            ReportViewer.RefreshReport();
        }