public override async Task InitializeAsync(object navigationData)
        {
            var pop = await _dialogService.OpenLoadingPopup();

            _vacancyID = (Guid)navigationData;
            dynamic obj = await _candidateJobService.GetVacancyDetails(_vacancyID);

            DateTime opendate;

            try
            {
                opendate = DateTime.Parse(obj["jobDetail"]["OpenDate"].ToString());
            }
            catch
            {
                opendate = DateTime.MinValue;
            }
            TimeSpan opendateInt = DateTime.Now - opendate;

            if (obj["jobDetail"] != null)
            {
                string Title        = obj["jobDetail"]["Title"];
                string worksiteName = obj["jobDetail"]["WorksiteName"];
                bool   isPromoted   = obj["jobDetail"]["IsPromoted"];
                string jobType      = obj["jobDetail"]["JobType"];
                string salary       = obj["jobDetail"]["Salary"];
                string status       = obj["jobDetail"]["Status"];
                string description  = "";
                if (obj["jobDetail"]["Description"] != null)
                {
                    description = Utilities.HtmlToPlainText(obj["jobDetail"]["Description"].ToString());
                }
                Models.Account account = new Models.Account();
                if (obj["jobDetail"]["Account"] != null)
                {
                    account = JsonConvert.DeserializeObject <Models.Account>(obj["jobDetail"]["Account"].ToString());
                }
                List <JobRequire> requires;
                if (obj["requiredList"] != null)
                {
                    requires = JsonConvert.DeserializeObject <List <JobRequire> >(obj["requiredList"].ToString());
                }
                else
                {
                    requires = new List <JobRequire>();
                }

                Job = new Vacancy
                {
                    VacancyID    = _vacancyID,
                    Title        = Title,
                    WorksiteName = worksiteName,
                    IsPromoted   = isPromoted,
                    JobType      = jobType,
                    Salary       = salary,
                    Status       = status,
                    OpenDate     = opendate,
                    OpenDateInt  = (int)opendateInt.TotalDays,
                    Description  = description,
                    Account      = account,
                    Requires     = requires,
                };
            }
            await _dialogService.CloseLoadingPopup(pop);
        }
        public override async Task InitializeAsync(object navigationData)
        {
            WithDrawIsVisible = true;
            ApplyIsVisible    = false;

            var pop = await _dialogService.OpenLoadingPopup();

            _vacancyID = (Guid)navigationData;
            dynamic obj = await _candidateJobService.GetVacancyDetails(_vacancyID);

            DateTime opendate;

            try
            {
                opendate = DateTime.Parse(obj["jobDetail"]["OpenDate"].ToString());
            }
            catch
            {
                opendate = DateTime.MinValue;
            }
            TimeSpan opendateInt = DateTime.Now - opendate;

            if (obj["jobDetail"] != null)
            {
                string Title        = obj["jobDetail"]["Title"];
                string worksiteName = obj["jobDetail"]["WorksiteName"];
                bool   isPromoted   = obj["jobDetail"]["IsPromoted"];
                string jobType      = obj["jobDetail"]["JobType"];
                string salary       = obj["jobDetail"]["Salary"];
                string status       = obj["jobDetail"]["Status"];
                string description  = "";
                if (obj["jobDetail"]["Description"] != null)
                {
                    description = Utilities.HtmlToPlainText(obj["jobDetail"]["Description"].ToString());
                }
                Models.Account account = new Models.Account();
                if (obj["jobDetail"]["Account"] != null)
                {
                    account = JsonConvert.DeserializeObject <Models.Account>(obj["jobDetail"]["Account"].ToString());
                }
                List <JobRequire> requires;
                if (obj["requiredList"] != null)
                {
                    requires = JsonConvert.DeserializeObject <List <JobRequire> >(obj["requiredList"].ToString());
                }
                else
                {
                    requires = new List <JobRequire>();
                }

                //Get contact Task
                Dictionary <string, object> objContactTask = await _candidateJobService.GetContactTaskByContactIDAndVacancyID(_vacancyID);

                List <UserContactTask> contactTasksTodo     = new List <UserContactTask>();
                List <UserContactTask> contactTasksComplete = new List <UserContactTask>();
                if (objContactTask["contactTasks"] != null)
                {
                    List <UserContactTask> ContactTasks = JsonConvert.DeserializeObject <List <UserContactTask> >(objContactTask["contactTasks"].ToString());
                    foreach (var contactTask in ContactTasks)
                    {
                        if (contactTask.Completed)
                        {
                            contactTasksComplete.Add(contactTask);
                        }
                        else
                        {
                            contactTasksTodo.Add(contactTask);
                        }
                    }
                }

                _contactTasksTodoList.AddRange(contactTasksTodo);
                _contactTasksCompleteList.AddRange(contactTasksComplete);

                ContactTasksComplete = contactTasksComplete;
                ContactTasksTodo     = contactTasksTodo;

                //Get contact Document
                Dictionary <string, object> objContactDocument = await _candidateJobService.GetDocumentsAssigneedByContactIDAndVacancyID(_vacancyID);

                List <ContactDocument> contactDocuments;
                if (objContactDocument["contactDocuments"] != null)
                {
                    contactDocuments = JsonConvert.DeserializeObject <List <ContactDocument> >(objContactDocument["contactDocuments"].ToString());
                }
                else
                {
                    contactDocuments = new List <ContactDocument>();
                }

                _contactDocumentList.AddRange(contactDocuments);
                ContactDocument = contactDocuments;

                Job = new Vacancy
                {
                    VacancyID    = _vacancyID,
                    Title        = Title,
                    WorksiteName = worksiteName,
                    IsPromoted   = isPromoted,
                    JobType      = jobType,
                    Salary       = salary,
                    Status       = status,
                    OpenDate     = opendate,
                    OpenDateInt  = (int)opendateInt.TotalDays,
                    Description  = description,
                    Account      = account,
                    Requires     = requires,
                    //ContactTasksTodo = contactTasksTodo,
                    //ContactTasksComplete = contactTasksComplete,
                    //ContactDocuments = contactDocuments
                };

                TodoTaskListViewHeightRequest     = ContactTasksTodo.Count * 60 + 38;
                CompleteTaskListViewHeightRequest = ContactTasksComplete.Count * 60 + 40;
                AttachmentListViewHeightRequest   = ContactDocument.Count * 60 + 38;
            }
            await _dialogService.CloseLoadingPopup(pop);
        }