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; } }
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); }
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()); }