public T ConvertToLocalEntity <T>(dynamic data) where T : class
        {
            JobDetailsFullModel local = new JobDetailsFullModel
            {
                JobID = data["Id"],
                Title = data["Name"].ToString(),

                CompanyId         = data["CompanyId"],
                UserId            = data["UserId"],
                AdvertiserUserId  = data["AdvertiserUserId"],
                DateCreated       = data["DateCreated"],
                ExpiryDate        = data["ExpiryDate"],
                Status            = data["Status"],
                Address           = data["Address"],
                AddressLatitude   = data["AddressLatitude"],
                AddressLongtitude = data["AddressLongtitude"],
                IsDeleted         = data["IsDeleted"],
                ShortDescription  = data["ShortDescription"].ToString(),
                Description       = data["FullDescription"].ToString(),
                ReferenceNo       = data["RefNo"],
                CustomData        = (data["CustomData"] != null) ? FlattenJson(JObject.Parse((data["CustomData"]).Value)) : null,
                ClassificationURL = ProcessClassificationSEOString((data["CustomData"] != null) ? FlattenJson(JObject.Parse((data["CustomData"]).Value)) : null, Convert.ToString(data["Name"]))
            };

            var targetCulture = Thread.CurrentThread.CurrentUICulture;
            var culture       = CultureInfo.GetCultureInfo(targetCulture.Name);

            if (culture != null)
            {
                local.Culture = culture.Name;
            }
            return(local as T);
        }
        public List <T> ConvertSearchResultsToLocal <T>(dynamic searchData) where T : class
        {
            List <JobDetailsFullModel> jobFullDetails = new List <JobDetailsFullModel>();

            foreach (dynamic jobItem in searchData)
            {
                //target: JobDetailsFullModel
                JobDetailsFullModel local = new JobDetailsFullModel
                {
                    JobID             = jobItem["Id"],
                    Title             = jobItem["Name"].ToString(),
                    DateCreated       = jobItem["DateCreated"],
                    ExpiryDate        = jobItem["ExpiryDate"],
                    ShortDescription  = jobItem["ShortDescription"].ToString(),
                    Description       = jobItem["FullDescription"].ToString(),
                    ReferenceNo       = jobItem["RefNo"],
                    CustomData        = (jobItem["CustomData"] != null) ? FlattenJson(new JObject(jobItem["CustomData"])) : null,
                    ClassificationURL = ProcessClassificationSEOString((jobItem["CustomData"] != null) ? FlattenJson(new JObject(jobItem["CustomData"])) : null, Convert.ToString(jobItem["Name"]))
                };
                var targetCulture = Thread.CurrentThread.CurrentUICulture;
                var culture       = CultureInfo.GetCultureInfo(targetCulture.Name);
                if (culture != null)
                {
                    local.Culture = culture.Name;
                }
                jobFullDetails.Add(local);
            }
            return(jobFullDetails as List <T>);
        }
 public JobViewModel Convert(JobDetailsFullModel data)
 {
     return(new JobViewModel
     {
         Id = data.JobID,
         Title = data.Title,
         Description = data.Description,
     });
 }
Example #4
0
 private JobViewModel GetVM(JobDetailsFullModel jl)
 {
     return(_jxtJobsConverter.Convert(jl));
 }
        private bool _SendEmail(JobEmailFormModel form, JobDetailsFullModel job)
        {
            var subject = string.IsNullOrWhiteSpace(this.EmailSubject) ? "Job for you" : this.EmailSubject;

            var content = _GetHtmlEmailContent();

            var emailSender = new SitefinityEmailSender();

            // ideally there should be a common method to get a job's url
            // doing this due to lack of such method
            var jobUrl = Request.Url.Scheme + "://" + Request.Url.Authority;

            if (!string.IsNullOrWhiteSpace(JobDetailsPageId))
            {
                jobUrl += SitefinityHelper.GetPageUrl(JobDetailsPageId);

                if (job.ClassificationURL != null)
                {
                    jobUrl += "/" + job.ClassificationURL;
                }

                jobUrl += "/" + job.JobID;
            }


            dynamic templateData = new ExpandoObject();

            templateData.Job       = new ExpandoObject();
            templateData.Job.Id    = job.JobID;
            templateData.Job.Title = job.Title;
            templateData.Job.Url   = jobUrl;
            templateData.Domain    = HttpContext.GetCurrentDomain();

            var result = false;

            // if the email is not set then create one using current site's domain name
            var fromEmail = this.EmailFromEmail;

            if (string.IsNullOrEmpty(fromEmail))
            {
                fromEmail = "noreply@" + Request.Url.Host;
            }

            if (form.EmailFriend)
            {
                var from = new MailAddress(fromEmail, form.Name);

                var replyToCollection = new MailAddressCollection();
                replyToCollection.Add(new MailAddress(form.Email, form.Name));

                templateData.Sender = from;

                if (form.FriendMessage == null)
                {
                    templateData.Message = string.Empty;
                }
                else
                {
                    templateData.Message = Regex.Replace(form.FriendMessage, "<.*?>", String.Empty).Replace("\n", "<br />");
                }

                foreach (var item in form.Friend)
                {
                    var emailRequest = new EmailRequest
                    {
                        To        = new MailAddress(item.Email, item.Name),
                        ReplyTo   = replyToCollection,
                        From      = from,
                        Subject   = subject,
                        EmailBody = content
                    };

                    templateData.Recipient = emailRequest.To;

                    if (emailSender.SendEmail(emailRequest, templateData))
                    {
                        result = true;
                    }
                }
            }
            else
            {
                // if the name is not set then use current site's name
                var fromName = this.EmailFromName;
                if (string.IsNullOrEmpty(fromName))
                {
                    fromName = new MultisiteContext().CurrentSite.Name;
                }

                var emailRequest = new EmailRequest
                {
                    To        = new MailAddress(form.Email, form.Name),
                    From      = new MailAddress(fromEmail, fromName),
                    Subject   = subject,
                    EmailBody = content
                };

                templateData.Recipient = emailRequest.To;
                templateData.Sender    = emailRequest.From;
                templateData.Message   = string.Empty;

                result = emailSender.SendEmail(emailRequest, templateData);
            }

            return(result);
        }