Ejemplo n.º 1
0
        public static void PopulateEvent(this List <GrmEventInformationDto> events, OwnerValueDto ownerValueDto, int?grmEventId)
        {
            // per meeting  with bob do not error out if grm even information is missing, return unknown
            var grmEventInformationDto = events.FirstOrDefault(grm => grm.GrmEventId == grmEventId);

            if (grmEventInformationDto != null)
            {
                ownerValueDto.EventName = grmEventInformationDto.Description;
                ownerValueDto.EventType = grmEventInformationDto.EventType;
                ownerValueDto.EventDate = grmEventInformationDto.EffectiveDate;
            }
            else
            {
                ownerValueDto.EventName = Constants.EventUnknownName;
                ownerValueDto.EventType = Constants.EventUnknownName;
                ownerValueDto.EventDate = null;
            }
        }
Ejemplo n.º 2
0
        public void WhenPopulateOwnerValueDtoEventIsNullUseUnknown()
        {
            var date = new DateTime(2013, 2, 11);
            var list = new List <GrmEventInformationDto>
            {
                new GrmEventInformationDto {
                    GrmEventId = 5, Description = "foo1", EventType = "bar1", EffectiveDate = date
                },
                new GrmEventInformationDto {
                    GrmEventId = 8, Description = "foo2", EventType = "bar2", EffectiveDate = date.AddDays(1)
                }
            };

            var ownerDto = new OwnerValueDto();

            list.PopulateEvent(ownerDto, 18);

            ownerDto.EventDate.ShouldBeNull();
            ownerDto.EventName.ShouldBe(Constants.EventUnknownName);
            ownerDto.EventType.ShouldBe(Constants.EventUnknownName);
        }
Ejemplo n.º 3
0
        public void WhenPopulateOwnerValueDtoEventIsNotNullUseFirstMatchFromList()
        {
            var date = new DateTime(2013, 2, 11);
            var list = new List <GrmEventInformationDto>
            {
                new GrmEventInformationDto {
                    GrmEventId = 5, Description = "foo1", EventType = "bar1", EffectiveDate = date
                },
                new GrmEventInformationDto {
                    GrmEventId = 8, Description = "foo2", EventType = "bar2", EffectiveDate = date.AddDays(1)
                }
            };

            var ownerDto = new OwnerValueDto();

            list.PopulateEvent(ownerDto, 8);

            ownerDto.EventDate.ShouldNotBeNull();
            ownerDto.EventDate.ShouldBe(date.AddDays(1));
            ownerDto.EventName.ShouldBe("foo2");
            ownerDto.EventType.ShouldBe("bar2");
        }
        private async Task <OwnerDto[]> CreateOwners(BaseValueSegmentTransactionDto bvsTransaction,
                                                     List <GrmEventInformationDto> grmEventInformationDtos,
                                                     List <LegalPartyDocumentDto> legalPartyRoleDocuments,
                                                     DateTime assessmentEventDate, int assessmentEventType)
        {
            var ownerDtos = new List <OwnerDto>();

            // now build segments and base value segment per owner
            foreach (var bvsOwner in bvsTransaction.BaseValueSegmentOwners)
            {
                // now build assessment event dto
                var owner = bvsOwner.ToOwner();

                grmEventInformationDtos.PopulateEvent(owner, bvsOwner.GRMEventId);
                legalPartyRoleDocuments.PopulateOwner(owner, bvsOwner);

                // the legal party role document may not tie back
                if (string.IsNullOrEmpty(owner.BeneficialInterest))
                {
                    var legalPartyRole = (await _legalPartyDomain.GetLegalPartyRole(bvsOwner.LegalPartyRoleId, assessmentEventDate));

                    owner.BeneficialInterest = legalPartyRole.LegalParty.DisplayName;
                }

                owner.IsOverride = bvsOwner.IsOverride;
                ownerDtos.Add(owner);

                // cast so we can add our base value segments
                var ownerEvents = new List <OwnerValueDto>();

                foreach (var ownerValue in bvsOwner.BaseValueSegmentOwnerValueValues)
                {
                    // get the values associated with the owner value
                    var valueHeaderDtos = bvsTransaction.BaseValueSegmentValueHeaders.Where(v => ownerValue.BaseValueSegmentValueHeaderId == v.Id);

                    foreach (var valueHeaderDto in valueHeaderDtos)
                    {
                        // now build new assessment dto
                        var ownerValueDto = new OwnerValueDto
                        {
                            ValueHeaderId = ownerValue.BaseValueSegmentValueHeaderId,       // NEW HOW TO SELECT ITEM IN COMBO
                            OwnerId       = bvsOwner.Id.Value,
                            // ReSharper disable once PossibleInvalidOperationException
                            OwnerValueId = ownerValue.Id.Value,

                            //GrmEventId = valueHeaderDto.GRMEventId, //OLD HOW TO SELECT ITEM IN COMBO
                            BaseYear  = valueHeaderDto.BaseYear,
                            BaseValue = decimal.Truncate(ownerValue.BaseValue)
                        };

                        grmEventInformationDtos.PopulateEvent(ownerValueDto, valueHeaderDto.GRMEventId);

                        var fbyvDetail = _baseValueSegmentRepository.GetFactorBaseYearValueDetail(assessmentEventDate,
                                                                                                  valueHeaderDto.BaseYear, ownerValue.BaseValue, assessmentEventType);

                        ownerValueDto.Fbyv       = fbyvDetail.Result.Fbyv;
                        ownerValueDto.IsOverride = valueHeaderDto.BaseValueSegmentValues.Any(x => x.IsOverride == true);
                        ownerEvents.Add(ownerValueDto);
                    }
                }

                owner.OwnerValues = ownerEvents.ToArray();
            }

            //Add default sorting
            ownerDtos = ownerDtos.OrderBy(x => x.BeneficialInterest)
                        .ThenBy(x => x.EventDate).ToList();

            return(ownerDtos.ToArray());
        }