protected KeepInTouchViewModel ToViewModel(ContactsKeepInTouch model)
        {
            KeepInTouchViewModel vm = Mapper.Map <KeepInTouchViewModel>(model);

            return(vm);
        }
        protected ContactsKeepInTouch ToModel(KeepInTouchViewModel vm)
        {
            ContactsKeepInTouch model = Mapper.Map <ContactsKeepInTouch>(vm);

            return(model);
        }
        protected override void OnHandling(SendMessageCommand command, CommandResult result)
        {
            var model = new Models.Message
            {
                Username  = command.Username,
                Email     = command.Email,
                Phone     = command.Phone,
                Content   = command.Content,
                CreatedAt = DateTime.Now
            };

            try
            {
                ContactsKeepInTouch contacts = GetKeepInTouchQuery.Execute();

                if (contacts.IsSendToEmails)
                {
                    List <string> emails = new List <string>
                    {
                        contacts.Email1,
                        contacts.Email2,
                        contacts.Email3,
                        contacts.Email4
                    }
                    .Where(i => !String.IsNullOrEmpty(i))
                    .ToList();

                    if (emails.Any())
                    {
                        EmailMessage message = new EmailMessage
                        {
                            Username = command.Username,
                            From     = PlatformConfiguration.SmtpEmailAddress,
                            Password = PlatformConfiguration.SmtpEmailPassword,
                            To       = emails.First(),
                            CC       = emails.Skip(1).ToList(),
                            Subject  = "Письмо со страницы КОНТАКТЫ!",
                            Content  = FormatContent(command)
                        };

                        model.SentEmails    = string.Join(", ", emails);
                        model.NotSentReason = EmailService.Send(message);
                    }
                    else
                    {
                        model.NotSentReason = "Не введена ни одна почта. Для ввода почты зайдите на сайт как администратор и перейдите в настройки формы в контактах.";
                    }
                }
                else
                {
                    model.NotSentReason = "Отправка сообщений на почту отключена. Для включения зайдите на сайт как администратор и перейдите в настройки формы в контактах.";
                }
            }
            catch (Exception e)
            {
                model.NotSentReason = e.ToString();
            }

            model.IsSent = model.NotSentReason == null;


            DataContext.Messages.Add(model);
        }