Beispiel #1
0
            public async Task <ParticipantDto> Handle(RegisterParticipant request, CancellationToken cancellationToken)
            {
                var participant = new Domain.Entities.Participant
                {
                    CarModel    = request.CarModel,
                    Carplate    = request.Carplate,
                    Name        = request.Name,
                    Password    = request.Password,
                    Surname     = request.Surname,
                    PhoneNumber = request.PhoneNumber
                };

                _dbContext.Participants.Add(participant);

                await _dbContext.SaveChangesAsync();

                return(new ParticipantDto
                {
                    Id = participant.Id,
                    CarModel = participant.CarModel,
                    Carplate = participant.Carplate,
                    Name = participant.Name,
                    Surname = participant.Surname,
                    PhoneNumber = participant.PhoneNumber
                });
            }
        /// <summary>
        /// Получение суммарную информации об участнике разговора
        /// </summary>
        public static string GetParticipantInfo(Domain.Entities.Participant participant)
        {
            if (participant == null)
            {
                return(null);
            }

            var shortParticipantInfo = participant.ParticipantName ?? participant.ParticipantExtension;

            var contact = participant as Domain.Entities.Contact;

            if (contact != null)
            {
                var participantInfoElements = new List <string>();
                if (!string.IsNullOrEmpty(contact.Organization))
                {
                    participantInfoElements.Add(contact.Organization);
                }

                if (!string.IsNullOrEmpty(contact.Position))
                {
                    participantInfoElements.Add(contact.Position);
                }

                if (!string.IsNullOrEmpty(contact.Name))
                {
                    participantInfoElements.Add(contact.Name);
                }

                return(participantInfoElements.Any() ? string.Join(" - ", participantInfoElements) : shortParticipantInfo);
            }

            return(shortParticipantInfo);
        }
        /// <summary>
        /// Создать DTO из сущности
        /// </summary>
        public static JournalCallsDto MapFromClientCall(CallListItemClientDto call, Domain.Entities.Participant participant)
        {
            var journalCallItem = new JournalCallsDto
            {
                ArrivalDateTime = call.ArrivalDateTime,
                AcceptDateTime  = call.AcceptDateTime,
                Type            = (CallType)call.Type,
                Number          = participant?.ParticipantExtension,
                Extension       = participant?.ParticipantExtension
            };

            if (participant is Domain.Entities.Contact contact)
            {
                if (!string.IsNullOrEmpty(contact.ContactRouteName))
                {
                    journalCallItem.Number += " - " + contact.ContactRouteName;
                }

                journalCallItem.Organization = contact.Organization;
                journalCallItem.Position     = contact.Position;
                journalCallItem.ContactName  = contact.Name;
            }

            return(journalCallItem);
        }
        /// <summary>
        /// Получить подробную информацию об участнике вызова
        /// </summary>
        public static ParticipantInfoDto GetParticipantInfoDto(Domain.Entities.Participant participant)
        {
            if (participant == null)
            {
                return(null);
            }

            var participantInfo = new ParticipantInfoDto
            {
                Id              = participant.Id,
                Name            = participant.ParticipantName,
                Extension       = participant.ParticipantExtension,
                ParticipantInfo = GetParticipantInfo(participant)
            };

            if (participant is Domain.Entities.Contact contact)
            {
                participantInfo.Name         = contact.Name;
                participantInfo.Organization = contact.Organization;
                participantInfo.Position     = contact.Position;
            }

            return(participantInfo);
        }