/// <summary> /// Convert data from (ContractOrganization model) to entity Organization /// </summary> /// <param name="fromValue"></param> /// <param name="organization"></param> public void Adapt(ContractOrganization fromValue, Organization organization) { Guard.Against.Null(fromValue, nameof(ContractOrganization)); Guard.Against.Null(organization, nameof(Organization)); AdaptDueDetail(fromValue, organization); }
/// <summary> /// From Model To Entity /// </summary> /// <param name="expected"></param> /// <param name="actual"></param> public static void AssertAreEqual(ContractOrganization expected, Organization actual) { //model side is null actual not null expected.Id.Should().BeNullOrEmpty(); actual.Should().NotBeNull(); actual.Id.Should().NotBeNullOrEmpty(); actual.Terms.Select(x => x.Id).Should().NotBeNullOrEmpty(); actual.Terms.Select(x => x.TermDetails.Select(x => x.Id)).Should().NotBeNullOrEmpty(); expected.CodOrg.Should().BeEquivalentTo(actual.OrgCode); expected.Description.Should().BeEquivalentTo(actual.Description); expected.DueDetails.Should().NotBeNullOrEmpty(); // expected.DueDetails.Should().HaveCount(actual.Terms.Count); //expected.DueDetails.Select(x => x.DueDetailConfigs).Should() // .HaveCount(actual.TermDetails.Select(x => x.TermDetailConfigs.Count).Max()); ////model side is null actual not null expected.DueId.Should().BeNullOrEmpty(); //verify data in terms expected.ContractNumber.Should().BeGreaterThan(0); expected.ContractNumber.Should().Be(actual.Terms.Select(x => x.TermNumber).FirstOrDefault()); expected.CodOrg.Should().Be(actual.Terms.Select(x => x.OrgCode).FirstOrDefault()); DateTimeAssertAreEqual(DateTime.UtcNow, actual.CreatedDate, TimeSpan.FromMinutes(0.1)); actual.Active.Should().BeTrue(); actual.Deleted.Should().BeFalse(); actual.CreatedBy.Should().NotBeNullOrEmpty(); actual.UpdatedDate.Should().BeNull(); actual.ModifiedBy.Should().BeNull(); }
/// <summary> /// Adapt (converter) data from organization to ContractOrganizationModel /// </summary> /// <param name="fromValue"></param> /// <param name="toValue"></param> public void Adapt(Organization fromValue, ContractOrganization toValue) { Guard.Against.Null(fromValue, nameof(Organization)); Guard.Against.Null(toValue, nameof(ContractOrganization)); var term = fromValue.Terms.GetTermOrg(fromValue.Id, fromValue.OrgCode); toValue.Id = fromValue.Id; toValue.CodOrg = fromValue.OrgCode; toValue.Description = fromValue.Description; toValue.ContractNumber = term?.TermNumber > 0 ? term.TermNumber : 0; //toValue.CreatedDate = fromValue.CreatedDate; //toValue.CreatedBy = fromValue.CreatedBy; //toValue.UpdateBy = fromValue.ModifiedBy; //toValue.ChangedDate = fromValue.UpdatedDate; toValue.IsDeleted = fromValue.Deleted; if (term != null) { foreach (var item in term.TermDetails.GetTermDetails( (Term)fromValue.Terms.GetTermOrg(fromValue.Id, fromValue.OrgCode))) { AdaptTermsDetail((TermDetail)item, toValue); } } }
/// <summary> /// </summary> /// <param name="organizationFromModel"></param> public async Task CreateContractOrganization(ContractOrganization organizationFromModel) { Guard.Against.Null(organizationFromModel, nameof(organizationFromModel)); Guard.Against.NullOrWhiteSpace(organizationFromModel.CodOrg, nameof(organizationFromModel.CodOrg)); Guard.Against.Zero(organizationFromModel.ContractNumber, nameof(organizationFromModel.ContractNumber)); //GET ALL DATA --PLEASE CHANGE IT LATER var allData = await _repositoryInstance.GetAllAsync(); var match = allData.FirstOrDefault(x => x.OrgCode == organizationFromModel.CodOrg); if (match == null) { var org = new Organization(string.Empty, organizationFromModel.Description, organizationFromModel.CodOrg); _adapter.Adapt(organizationFromModel, org); _repositoryInstance.Add(org); organizationFromModel.Id = org.Id; } else { throw new InvalidOperationException( $"Can not save Organization {organizationFromModel.CodOrg} already exist."); } }
/// <summary> /// From Entity to Model /// </summary> /// <param name="expected"></param> /// <param name="actual"></param> public static void AssertAreEqual(Organization expected, ContractOrganization actual) { expected.Id.Should().NotBeNullOrEmpty(); expected.Id.Should().BeEquivalentTo(actual.Id); expected.OrgCode.Should().BeEquivalentTo(actual.CodOrg); expected.Description.Should().BeEquivalentTo(actual.Description); expected.Terms.Should().NotBeNullOrEmpty(); expected.Terms.Select(x => x.Id).Should().BeEquivalentTo(actual.DueId); expected.Terms.Select(x => x.TermNumber).Should().BeEquivalentTo(actual.ContractNumber); expected.Terms.Select(x => x.TermDetails).Should().NotBeNullOrEmpty(); expected.Terms.Select(x => x.TermDetails).Should().HaveCount(actual.DueDetails.Count); expected.Terms.Select(x => x.TermDetails.Count.Should().Be(1)); expected.Terms.Select(x => x.TermDetails.Select(s => s.Id).Should().BeEquivalentTo(actual.DueDetails.Select(z => z.Id))); expected.Terms.Select(x => x.TermDetails.Select(s => s.DebtCode).Should() .BeEquivalentTo(actual.DueDetails.Select(x => x.DebtCode))); expected.Terms.Select(x => x.TermDetails.Select(x => x.TermsType).Should() .BeEquivalentTo(actual.DueDetails.Select(x => x.TermsType))); expected.Terms.Select(x => x.TermDetails.Select(x => x.TermDetailConfigs).Should().NotBeNullOrEmpty()); expected.Terms.Select(x => x.TermDetails.Select(x => x.TermDetailConfigs).Should() .HaveCount(actual.DueDetails.Select(x => x.DueDetailConfigs.Count).Count())); //DateTimeAssertAreEqual(expected.CreatedDate, actual.CreatedDate, TimeSpan.FromMinutes(0.1)); //DateTimeAssertAreEqual(expected.UpdatedDate, actual.ChangedDate, TimeSpan.FromMinutes(0.1)); //expected.ModifiedBy.Should().BeEquivalentTo(actual.UpdateBy); //expected.CreatedBy.Should().BeEquivalentTo(actual.CreatedBy); //expected.Active.Equals(!actual.IsDeleted).Should().BeTrue(); }
public void AdaptOrganizationToContractOrgnization() { // Arrange var fromValue = UnitTestUtility.GetCompleteOrganization(); var toValue = new ContractOrganization(); // Act SystemUnderTest.Adapt(fromValue, toValue); // Assert UnitTestUtility.AssertAreEqual(fromValue, toValue); }
/// <summary> /// </summary> /// <param name="fromValue"></param> /// <param name="organization"></param> public void AdaptDueDetail(ContractOrganization fromValue, Organization organization) { Guard.Against.Null(fromValue, nameof(ContractOrganization)); Guard.Against.Null(organization, nameof(Organization)); foreach (var itemDetailModel in fromValue.DueDetails) { Enum.TryParse <TermsType>(itemDetailModel.TermsType, true, out var typeTerm); if (fromValue.IsDeleted.Equals(false)) { foreach (var dueDetailConfiguration in itemDetailModel.DueDetailConfigs) { Enum.TryParse <FileAccessType>(dueDetailConfiguration.CommunicationType, true, out var fileAccessType); //Boolean.TryParse(dueDetailConfiguration.HasHeader, out var hasHeaderValue); //Boolean.TryParse(dueDetailConfiguration.RequiredLogin, out var hasRequiredLogin); organization.AddTerm(null, fromValue.ContractNumber, itemDetailModel.DebtCode, typeTerm, fileAccessType, string.Empty, dueDetailConfiguration.LinkToAccess, dueDetailConfiguration.LinkToAccessType, dueDetailConfiguration.TypeOfResponse, dueDetailConfiguration.RequiredLogin, dueDetailConfiguration.AuthenticationLogin, dueDetailConfiguration.AuthenticationPassword, dueDetailConfiguration.HostkeyFingerPrint, dueDetailConfiguration.AuthenticationCodeApp, dueDetailConfiguration.PathToOriginFile, dueDetailConfiguration.PathToDestinationFile, dueDetailConfiguration.PathToFileBackupAtClient, string.Empty, dueDetailConfiguration.FileDelimiter, dueDetailConfiguration.HasHeader, dueDetailConfiguration.FileProtectedPassword, dueDetailConfiguration.FileHeaderColumns, dueDetailConfiguration.AvailableFieldsColumns ); } } else if (fromValue.IsDeleted.Equals(true) && !string.IsNullOrWhiteSpace(itemDetailModel.Id)) { organization.RemoveTerms(itemDetailModel.Id); } } }
/// <summary> /// Get contracts by id. Here works as a buffer communication between adapter and service. /// Converter data from dataBase to model /// and delivery to service /// </summary> /// <param name="organizationId"></param> /// <returns></returns> public ContractOrganization GetContractOrganizationById(string organizationId) { var match = _repositoryInstance.GetByIdAsync(organizationId); if (match.Result == null) { return(null); } var toContractOrganization = new ContractOrganization(); _adapter.Adapt(match.Result, toContractOrganization); return(toContractOrganization); }
public void Adapt(IEnumerable <Organization> fromOrganization, List <ContractOrganization> toContractOrg) { if (fromOrganization == null) { throw new ArgumentNullException("fromValues", "fromValues is null."); } ContractOrganization toValue; foreach (var fromValue in fromOrganization) { toValue = new ContractOrganization(); Adapt(fromValue, toValue); toContractOrg.Add(toValue); } }
public static ContractOrganization GetContractOrganizationModelTwo() { var infoModel = new ContractOrganization { Description = "Banco da China", CodOrg = "BP234", ContractNumber = 44552368 }; infoModel.AddDueDetail(556698, "Leasing"); var dueDetails = infoModel.DueDetails.Select(x => x); foreach (var dueDetail in dueDetails) { dueDetail.AddDueDetailConfigs(null, dueDetail.OrgCode, "FTP", "SFTP://ftp.unicre.pt", "BaseWorkdir", "", true, "logi", "ih3bb6", "", null, BaseWorkdir, "SFTP", "FTP", ",", string.Empty, true, string.Empty, new List <string> { "NDIV", "COD_CRED", "VAL1" }, RnProcessConstant.AvailableColumnsIntrum ); } return(infoModel); }
/// <summary> /// Adapt detail from entity to model /// </summary> /// <param name="item"></param> /// <param name="toValue"></param> public static void AdaptTermsDetail(TermDetail item, ContractOrganization toValue) { Guard.Against.Null(toValue, nameof(ContractOrganization)); Guard.Against.Null(item, nameof(TermDetail)); toValue.DueId = item.TermId; var tempDt = new DueDetail { Id = item.Id, DebtCode = item.DebtCode, TermsType = item.TermsType.ToString(), OrgCode = item.OrgCode }; var configTemp = item.TermDetailConfigs.GetTermDetailConfiguration(item.Id, item.OrgCode); var config = AdptToDueDetailConfiguration((TermDetailConfig)configTemp); config.CodOrg = item.OrgCode; toValue.DueDetails.Add(tempDt); tempDt.DueDetailConfigs.Add(config); //toValue.DueDetails.Select(x => x.DueDetailConfigs.Select(s => config)); }
/// <inheritdoc/> public string ToDelimitedString() { CultureInfo culture = CultureInfo.CurrentCulture; return(string.Format( culture, StringHelper.StringFormatSequence(0, 14, Configuration.FieldSeparator), Id, PrimaryKeyValueCdm?.ToDelimitedString(), ChargeCodeAlias != null ? string.Join(Configuration.FieldRepeatSeparator, ChargeCodeAlias.Select(x => x.ToDelimitedString())) : null, ChargeDescriptionShort, ChargeDescriptionLong, DescriptionOverrideIndicator, ExplodingCharges != null ? string.Join(Configuration.FieldRepeatSeparator, ExplodingCharges.Select(x => x.ToDelimitedString())) : null, ProcedureCode != null ? string.Join(Configuration.FieldRepeatSeparator, ProcedureCode.Select(x => x.ToDelimitedString())) : null, ActiveInactiveFlag, InventoryNumber != null ? string.Join(Configuration.FieldRepeatSeparator, InventoryNumber.Select(x => x.ToDelimitedString())) : null, ResourceLoad.HasValue ? ResourceLoad.Value.ToString(Consts.NumericFormat, culture) : null, ContractNumber != null ? string.Join(Configuration.FieldRepeatSeparator, ContractNumber.Select(x => x.ToDelimitedString())) : null, ContractOrganization != null ? string.Join(Configuration.FieldRepeatSeparator, ContractOrganization.Select(x => x.ToDelimitedString())) : null, RoomFeeIndicator ).TrimEnd(Configuration.FieldSeparator.ToCharArray())); }
public async Task <ActionResult <ContractOrganization> > CreateContractOrganization([FromBody] ContractOrganization contractForCreation) { Guard.Against.Null(contractForCreation, nameof(ContractOrganization)); await _service.CreateContractOrganization(contractForCreation); return(CreatedAtRoute("OrganizationContract", new { contractId = contractForCreation.Id }, contractForCreation)); }