BinaryStudio.ClientManager.DomainModel.Input.MailMessagePersister.createInquiry C# (CSharp) Method

createInquiry() private method

private createInquiry ( Entities convertedMessage ) : void
convertedMessage Entities
return void
        private void createInquiry(Entities.MailMessage convertedMessage)
        {
            if (convertedMessage.Sender.Role == PersonRole.Client &&
                !repository.Query<Inquiry>(x => x.Source)
                     .Select(x => x.Source)
                     .Any(convertedMessage.SameMessagePredicate))
            {
                var receiver = convertedMessage.Receivers.First();
                var ownerPerson = repository.Query<User>(x => x.Teams, x => x.RelatedPerson).FirstOrDefault(x => x.RelatedPerson.Id == receiver.Id);
                if (ownerPerson != null)
                {
                    var inquiry = repository.Query<Inquiry>(x => x.Client, x => x.Owner)
                        .FirstOrDefault(
                            x =>
                            x.Client.Id == convertedMessage.Sender.Id && x.Owner.Id == ownerPerson.CurrentTeam.Id &&
                            !x.Archived);
                    if (inquiry == null)
                    {
                        var newInquiry = inquiryFactory.CreateInquiry(convertedMessage);

                        newInquiry.Owner = ownerPerson.CurrentTeam;
                        repository.Save(newInquiry);

                    }
                    else
                    {
                        inquiry.ReferenceDate = null;
                        repository.Save(inquiry);
                    }
                }

               }
        }