Пример #1
0
 public SurveyViewModel(ClientSurveys clientSurvey)
 {
     IsComplete          = clientSurvey.IsComplete;
     Title               = clientSurvey.Survey.Title;
     Client              = new ClientViewModel(clientSurvey.Client);
     CompanyName         = clientSurvey.Survey.CompanyName;
     CompanySite         = clientSurvey.Survey.CompanySite;
     Contact             = $"{clientSurvey.Survey.ContactTitle} {clientSurvey.Survey.ContactPhone}";
     DateOfQuestionnaire = clientSurvey.Survey.DateOfQuestionnaire.ToString("yyyy-MM-dd");
     RequestedStartDate  = clientSurvey.RequestedStartDate?.ToString("yyyy-MM-dd");
     RequestedEndDate    = clientSurvey.RequestedEndDate?.ToString("yyyy-MM-dd");
     Steps               = clientSurvey.Survey.SurveySteps.Select(surveyStep => new Step(surveyStep, clientSurvey.ClientQuestionReplies)).OrderBy(e => e.Order);
 }
Пример #2
0
    public async Task <IActionResult> Send([FromBody] EmailSurveyToClient emailSurveyToClient)
    {
        var clientTask = _context.Clients.Where(e => e.Email == emailSurveyToClient.Email).FirstOrDefaultAsync();
        var surveyTask = _context.Surveys.Where(e => e.Id == emailSurveyToClient.SurveyId).FirstOrDefaultAsync();
        await Task.WhenAll(clientTask, surveyTask);

        var client = await clientTask;
        var survey = await surveyTask;

        var clientSurvey = new ClientSurveys
        {
            Client          = client,
            Survey          = survey,
            ClientSurveyKey = Guid.NewGuid()
        };

        await _context.ClientSurveys.AddAsync(clientSurvey);

        await _context.SaveChangesAsync();

        try
        {
            var email = new MailMessage(
                from: "*****@*****.**",
                to: clientSurvey.Client.Email,
                subject: "New Questionnaire!",
                body: $"Hello {clientSurvey.Client.FirstName} {clientSurvey.Client.LastName}, please complete the following survey: <a href='https://localhost:44331/{clientSurvey.Client.Email}/{clientSurvey.ClientSurveyKey}' target='_blank'>{clientSurvey.Survey.Title}</a>"
                )
            {
                IsBodyHtml = true
            };
            // TODO: add environment var for email
            await _smtp.SendMailAsync(email);
        }
        catch (Exception)
        {
            throw;
        }


        return(Ok());
    }