Esempio n. 1
0
        public static string CommaSeparatedAddress(this RequestPersonalDetails requestPersonalDetails)
        {
            string[] elements = new[]
            {
                requestPersonalDetails.Address.AddressLine1,
                requestPersonalDetails.Address.AddressLine2,
                requestPersonalDetails.Address.AddressLine3,
                requestPersonalDetails.Address.Locality.ToTitleCase(),
                requestPersonalDetails.Address.Postcode
            };

            return(string.Join(", ", elements.Where(e => !string.IsNullOrEmpty(e))));
        }
Esempio n. 2
0
 public static string LocationSummary(this RequestPersonalDetails requestPersonalDetails)
 {
     return(LocationSummary(requestPersonalDetails?.Address?.Locality, requestPersonalDetails?.Address?.Postcode));
 }
Esempio n. 3
0
        public async Task <LogRequestResponse> LogRequestAsync(RequestHelpRequestStageViewModel requestStage, RequestHelpDetailStageViewModel detailStage, int referringGroupID, string source, int userId, CancellationToken cancellationToken)
        {
            _logger.LogInformation($"Logging Request");

            var selectedTask = requestStage.Tasks.Where(x => x.IsSelected).First();
            var selectedTime = requestStage.Timeframes.Where(x => x.IsSelected).FirstOrDefault();

            bool heathCritical          = false;
            var  healthCriticalQuestion = requestStage.Questions.Questions.Where(a => a.ID == (int)Questions.IsHealthCritical).FirstOrDefault();

            if (healthCriticalQuestion != null && healthCriticalQuestion.Model == "true")
            {
                heathCritical = true;
            }

            RequestPersonalDetails            recipient = null;
            RequestPersonalDetails            requestor = null;
            IEnumerable <RequestHelpQuestion> questions = requestStage.Questions.Questions;

            if (detailStage != null)
            {
                recipient = _requestHelpBuilder.MapRecipient(detailStage);
                if (detailStage.ShowRequestorFields)
                {
                    requestor = detailStage.Type == RequestorType.Myself ? recipient : _requestHelpBuilder.MapRequestor(detailStage);
                }
                questions = questions.Union(detailStage.Questions.Questions);
            }

            var request = new PostNewRequestForHelpRequest
            {
                HelpRequest = new HelpRequest
                {
                    Guid              = requestStage.RequestGuid,
                    AcceptedTerms     = requestStage.AgreeToPrivacyAndTerms,
                    ConsentForContact = requestStage.AgreeToPrivacyAndTerms,
                    OrganisationName  = detailStage?.Organisation ?? "",
                    RequestorType     = detailStage?.Type ?? RequestorType.Organisation,
                    ReadPrivacyNotice = requestStage.AgreeToPrivacyAndTerms,
                    CreatedByUserId   = userId,
                    Recipient         = recipient,
                    Requestor         = requestor,
                    ReferringGroupId  = referringGroupID,
                    Source            = source
                },
                NewJobsRequest = new NewJobsRequest
                {
                    Jobs = new List <Job>
                    {
                        new Job
                        {
                            DueDateType     = selectedTime.DueDateType,
                            DueDays         = selectedTime.DueDateType == DueDateType.On ? Convert.ToInt32((selectedTime.Date.Date - DateTime.Now.Date).TotalDays) : selectedTime.Days,
                            StartDate       = selectedTime.DueDateType.HasStartTime() ? selectedTime.StartTime.ToUTCFromUKTime() : (DateTime?)null,
                            EndDate         = selectedTime.DueDateType.HasEndTime() ? selectedTime.EndTime.ToUTCFromUKTime() : (DateTime?)null,
                            HealthCritical  = heathCritical,
                            SupportActivity = selectedTask.SupportActivity,
                            Questions       = questions.Where(x => x.InputType != QuestionType.LabelOnly).Select(x => new Question {
                                Id             = x.ID,
                                Answer         = GetAnswerToQuestion(x),
                                Name           = x.Label,
                                Required       = x.Required,
                                AddtitonalData = x.AdditionalData,
                                Type           = x.InputType
                            }).ToList()
                        }
                    }
                }
            };


            var response = await _requestHelpRepository.PostNewRequestForHelpAsync(request);

            if (response != null && userId != 0)
            {
                TriggerCacheRefresh(userId, cancellationToken);
            }

            return(response);
        }
Esempio n. 4
0
 public static IEnumerable <string> PhoneNumbers(this RequestPersonalDetails requestPersonalDetails)
 {
     return((new[] { requestPersonalDetails.MobileNumber, requestPersonalDetails.OtherNumber }).Where(a => !string.IsNullOrEmpty(a)));
 }
Esempio n. 5
0
 public void Deconstruct(out RequestPersonalDetails requestor, out RequestPersonalDetails recipient, out RequestorType requestorType)
 {
     requestor     = Requestor;
     recipient     = Recipient;
     requestorType = RequestorType;
 }