public IList<IntegrationDocRelationDO> GetCaseApplications(int docId)
        {
            var docRelations =
                this.docRepository
                .GetCaseRelationsByDocIdWithIncludes(docId, false, true)
                .Where(dr => dr.Doc.IsRegistered);

            List<IntegrationDocRelationDO> result = new List<IntegrationDocRelationDO>();

            foreach (var docRelation in docRelations)
            {
                if (!CaseTypeAliasByPortalAppCode.ContainsKey(docRelation.Doc.DocType.Alias))
                {
                    continue;
                }

                GvaCaseType caseType = this.caseTypeRepository.GetCaseType(CaseTypeAliasByPortalAppCode[docRelation.Doc.DocType.Alias]);
                IntegrationDocRelationDO intDocRelation = new IntegrationDocRelationDO(docRelation, caseType);
                result.Add(intDocRelation);

                var appDocFiles =
                    docRelation.Doc.DocFiles
                    .Where(df => df.DocFileOriginType != null && df.DocFileOriginType.Alias == "EApplication")
                    .ToList();

                if (appDocFiles.Count == 1)
                {
                    byte[] content;
                    using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DbContext"].ConnectionString))
                    {
                        connection.Open();

                        using (MemoryStream m1 = new MemoryStream())
                        using (var blobStream = new BlobReadStream(connection, "dbo", "Blobs", "Content", "Key", appDocFiles[0].DocFileContentId))
                        {
                            blobStream.CopyTo(m1);
                            content = m1.ToArray();
                        }
                    }

                    string xmlContent = Utf8Utils.GetString(content);
                    object rioApplication = this.rioDocumentParser.XmlDeserializeApplication(xmlContent);

                    switch (docRelation.Doc.DocType.Alias)
                    {
                        case "R-4186":
                            {
                                var concreteApp = (R_4186.InitialCertificationCommercialPilotCapacityInstrumentFlightApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-4244":
                            {
                                var concreteApp = (R_4244.LicenseFlightCrewCabinCrewFlightEngineersNavigatorsFlightConvoyApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-4284":
                            {
                                var concreteApp = (R_4284.LicenseControllersAssistantFlightsATMCoordinatorsApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-4864":
                            {
                                var concreteApp = (R_4864.LicenseCabinCrewApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5144":
                            {
                                var concreteApp = (R_5144.EstablishingAssessCompetenceApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-4296":
                            {
                                var concreteApp = (R_4296.RecognitionLicenseForeignNationals)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5178":
                            {
                                var concreteApp = (R_5178.RegistrationRatingTypeClassAircraftIFRPilotLicensePilotPartFCLApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5196":
                            {
                                var concreteApp = (R_5196.ConfirmationRecoveryRatingLicensePilotApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5248":
                            {
                                var concreteApp = (R_5248.RegistrationAircraftTypePermissionFlightCrewApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5250":
                            {
                                var concreteApp = (R_5250.ConfirmationRatingCrewApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5242":
                            {
                                var concreteApp = (R_5242.RegistrationTrainingAircraftTypePermissionStewardHostessApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5134":
                            {
                                var concreteApp = (R_5134.ChangeCompetentAuthorityLicensePilotAccordanceLicenseApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5244":
                            {
                                var concreteApp = (R_5244.ConfirmationRecoveryTrainingAircraftTypePermissionStewardHostessApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5246":
                            {
                                var concreteApp = (R_5246.ConfirmationConversionPursuantLicensePilotIssuedApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-4242":
                            {
                                var concreteApp = (R_4242.InitialIssueLicenseFlightDispatcherApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5160":
                            {
                                var concreteApp = (R_5160.RegistrationRatingAuthorizationLicenseApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5164":
                            {
                                var concreteApp = (R_5164.ConfirmationRecoveryRatingLicenseApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-5166":
                            {
                                var concreteApp = (R_5166.ReplacingLicenseFlightsCoordinatorsApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-4240":
                            {
                                var concreteApp = (R_4240.InitialAuthorizationMaintenanceAircraftAMLApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithFlightCrewDataToPersonData(concreteApp.FlightCrewPersonalData, caseType);
                                break;
                            }
                        case "R-4958":
                            {
                                var concreteApp = (R_4958.EngineeringTechnicalStaffPerformingMaintenanceFundsAirTrafficManagementApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithPersonAndForeignCitizenBasicDataToPersonData(
                                    concreteApp.CAAPersonalIdentificationNumber,
                                    concreteApp.ContactInformation.EmailAddress,
                                    concreteApp.PersonBasicData,
                                    concreteApp.ForeignCitizenBasicData,
                                    caseType);
                                break;
                            }
                        case "R-5218":
                            {
                                var concreteApp = (R_5218.ReplacementRemovalRestrictionsLicenseManagementApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithPersonAndForeignCitizenBasicDataToPersonData(
                                    concreteApp.CAAPersonalIdentificationNumber,
                                    concreteApp.ContactInformation.EmailAddress,
                                    concreteApp.PersonBasicData,
                                    concreteApp.ForeignCitizenBasicData,
                                    caseType);
                                break;
                            }
                        case "R-5170":
                            {
                                var concreteApp = (R_5170.ConfirmationRecoveryRatingLicenseEngineeringTechnicalStaffMaintenanceFundsManagementApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithPersonAndForeignCitizenBasicDataToPersonData(
                                    concreteApp.CAAPersonalIdentificationNumber,
                                    concreteApp.ContactInformation.EmailAddress,
                                    concreteApp.PersonBasicData,
                                    concreteApp.ForeignCitizenBasicData,
                                    caseType);
                                break;
                            }

                        case "R-5168":
                            {
                                var concreteApp = (R_5168.EntryRatingAuthorizationLicenseEngineeringTechnicalStaffEngagedMaintenanceFundsManagementApplication)rioApplication;
                                intDocRelation.PersonData = this.integrationRepository.ConvertAppWithPersonAndForeignCitizenBasicDataToPersonData(
                                    concreteApp.CAAPersonalIdentificationNumber,
                                    concreteApp.ContactInformation.EmailAddress,
                                    concreteApp.PersonBasicData,
                                    concreteApp.ForeignCitizenBasicData,
                                    caseType);
                                break;
                            }
                        case "R-4356":
                            {
                                var aircraftData = new AircraftDataDO();
                                var concreteApp = (R_4356.AircraftRegistrationCertificateApplication)rioApplication;
                                string producerName = concreteApp.AircraftManufactureData.ManufacturerContactData.ManufacturerName;
                                aircraftData.AircraftProducer = this.nomRepository.GetNomValues("aircraftProducers", producerName).FirstOrDefault();

                                intDocRelation.AircraftData = aircraftData;
                                break;
                            }
                        case "R-5132":
                            {
                                var organizationData = new OrganizationDataDO();
                                var concreteApp = (R_5132.ApprovalPartMSubpartGApplication)rioApplication;
                                organizationData.Name = concreteApp.EntityTradeName ?? concreteApp.EntityBasicData.Name;
                                string foreignName = null;
                                if (concreteApp.ForeignEntityBasicData != null)
                                {
                                    foreignName = concreteApp.ForeignEntityBasicData.ForeignEntityName;
                                }
                                organizationData.NameAlt = foreignName ?? organizationData.Name;
                                organizationData.Uin = concreteApp.EntityBasicData.Identifier;
                                organizationData.Valid = this.nomRepository.GetNomValue("boolean", "yes");

                                intDocRelation.OrganizationData = organizationData;
                                break;
                            }
                        // 4378
                        // 4396
                        // 4470
                        // 4490
                        // 4514
                        // 4544
                        // 4566
                        // 4578
                        // 4588
                        // 4590
                        // 4598
                        // 4606
                        // 4614
                        // 4686
                        // 4738
                        // 4764
                        // 4766
                        // 4810
                        // 4824
                        // 4834
                        // 4860
                        // 4862
                        // 4900
                        // 4926
                        // 5000
                        // 5090
                        // 5094
                        // 5096
                        // 5104
                        // 5116
                        default:
                            break;
                    }
                }
            }

            return result;
        }
Exemple #2
0
        public IHttpActionResult PostAircraftData(int lotId, AircraftDataDO aircraftData)
        {
            using (var transaction = this.unitOfWork.BeginTransaction())
            {
                var lot = this.lotRepository.GetLotIndex(lotId);
                PartVersion<AircraftDataDO> partVersion = lot.UpdatePart("aircraftData", aircraftData, this.userContext);

                lot.Commit(this.userContext, lotEventDispatcher);

                this.unitOfWork.Save();

                this.lotRepository.ExecSpSetLotPartTokens(partVersion.PartId);

                transaction.Commit();

                return Ok();
            }
        }
Exemple #3
0
 public AircraftDO()
 {
     AircraftData = new AircraftDataDO();
 }