Example #1
0
        /// <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);
        }
Example #2
0
        /// <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();
        }
Example #3
0
        /// <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.");
            }
        }
Example #5
0
        /// <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();
        }
Example #6
0
        public void AdaptOrganizationToContractOrgnization()
        {
            // Arrange
            var fromValue = UnitTestUtility.GetCompleteOrganization();
            var toValue   = new ContractOrganization();

            // Act
            SystemUnderTest.Adapt(fromValue, toValue);

            // Assert
            UnitTestUtility.AssertAreEqual(fromValue, toValue);
        }
Example #7
0
        /// <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);
        }
Example #9
0
        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);
            }
        }
Example #10
0
        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);
        }
Example #11
0
        /// <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));
        }
Example #12
0
        /// <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));
        }