public ActionResult SaveContactInfo(DataAccess.Models.ProductDetail.Advisor.AdvisorContactInfo model)
 {
     if (ModelState.IsValidField("AdvisorMasterEntityId"))
     {
         var isValid = AdvisorViewManager.ValidateProfileAddresses(model, ModelState);
         if (!isValid)
         {
             var thePartial = PartialView("EditorTemplates/ContactInfo", model);
             Response.StatusCode = (int)HttpStatusCode.PartialContent;
             return(thePartial);
         }
         else
         {
             var success = AdvisorContactInfoManager.SaveContactInfo(FederatedLoginClient.User.UserMasterEntityId, model);
             if (success)
             {
                 ProfileAddressManager.UpdateListForNewCity(model.Addresses);
                 return(new HttpStatusCodeResult(HttpStatusCode.OK));
             }
             else
             {
                 return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError));
             }
         }
     }
     else
     {
         // no MEID can't deal...
         return(new HttpNotFoundResult());
     }
 }
        public ActionResult AddAdvisorId(AdvisorInformationViewModel model)
        {
            model.ListAdvisorIds = model.ListAdvisorIds ?? new List <AdvisorIdClass>();
            var isValid = AdvisorViewManager.ValidateAdvisorIds(model as AdvisorInformationViewModel, ModelState);

            if (isValid)
            {
                model.ListAdvisorIds.Add(new AdvisorIdClass {
                    Status = ProfileItemStatus.Insert
                });
            }

            return(PartialView("EditorTemplates/Admin.AdvisorInformation", model));
        }
 public ActionResult AdminHotelBookingUpdate(AdvisorHotelBookingViewModel viewModel)
 {
     if (ModelState.IsValid && viewModel.HotelBooking != null)
     {
         var success = AdvisorViewManager.SetHotelBookingInfo(viewModel.HotelBooking);
         return(new HttpStatusCodeResult(success ? HttpStatusCode.OK : HttpStatusCode.InternalServerError));
     }
     else
     {
         // Validation error(s) detected on the server side
         var partialView = PartialView("EditorTemplates/Admin.BookingProgram", viewModel);
         Response.StatusCode = (int)HttpStatusCode.PartialContent;
         return(partialView);
     }
 }
        public ActionResult AdvisorSettings(int id, bool isEditMode)
        {
            var manager = new AdvisorViewManager();
            var vm      = manager.GetAdvisorDetailViewModel(id, isEditMode);

            if (vm == null || null == vm.Settings)
            {
                return(PageNotFoundActionResult());
            }

            // TODO: load security with the non-hack way
            vm.LoadSecurity("advisors-index", vm);

            return(PartialView(isEditMode ? "EditorTemplates/Admin.AdvisorSettingsContent" : "DisplayTemplates/Admin.AdvisorSettings", vm.Settings));
        }
        public JsonResult HotelBookingData(int id)
        {
            var hotelBookingInfo = AdvisorViewManager.GetParentAgencyHotelBookingInfo(id);


            //if (hotelBookingInfo == null)
            //{
            //	// TODO: log it...
            //	return PageNotFoundActionResult();
            //}
            //else
            //{

            //	return PartialView("EditorTemplates/Admin.BookingProgram", hotelBookingInfo);
            //}
            return(Json(hotelBookingInfo, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Index(int id = 0)
        {
            if (id == 0)
            {
                return(PageNotFoundActionResult());
            }
            if (SecurityRules.IsConsumerViewingOtherAdvisorProfile(id))
            {
                return(Request.Url != null?Redirect(AdvisorHelper.GetMyAdvisorUri + Request.Url.Query) : PageForbiddenActionResult());
            }
            string url = SeoHelper.ValidateSlug(id, Request.RawUrl);

            if (!string.IsNullOrWhiteSpace(url))
            {
                return(new RedirectResult(url, true));
            }
            var manager = new AdvisorViewManager();

            if (string.IsNullOrEmpty(ViewBag.canonicalUrl) && Request.Url != null)
            {
                ViewBag.canonicalUrl = TouchPoints.Services.HelperClasses.Url.BuildCanonicalUrl(Request.Url, Config.AppSettings.CanonicalScheme, Config.AppSettings.CanonicalHostname);
            }

            AdvisorDetailViewModel viewModel = manager.BuildAdvisorViewModel(id);

            if (viewModel == null)
            {
                return(PageNotFoundActionResult());
            }
            viewModel.InitializeBreadcrumb();


            viewModel.LoadSecurity("advisors-index", viewModel);
            GetEditBadgeSettings(viewModel);
            return(View(viewModel));
        }
        public ActionResult AdminInformationUpdate(AdvisorInformationViewModel viewModel)
        {
            viewModel.LoadSecurity("advisors-admininformationupdate", viewModel);

            // no validation on DBA if not IC
            var editIdType = viewModel.CanView(SecurityConstants.Advisor.EditAdvisorIdType);

            if (viewModel.AdvisorType.TypeId != AdvisorInfoManager.IndependentContractorTypeId && ModelState.ContainsKey("AdvisorDoingBusinessAs"))
            {
                ModelState["AdvisorDoingBusinessAs"].Errors.Clear();
            }

            // no validate on Type for self-edit
            if (!editIdType && ModelState.ContainsKey("AdvisorType.TypeId"))
            {
                ModelState["AdvisorType.TypeId"].Errors.Clear();
            }

            // no validate AdvisorID for self-edit
            if (!editIdType && viewModel.ListAdvisorIds.IsNotNullOrEmpty())
            {
                for (int i = 0; i < viewModel.ListAdvisorIds.Count; i++)
                {
                    var name = string.Format("ListAdvisorIds[{0}].Id", i);
                    if (ModelState.ContainsKey(name))
                    {
                        ModelState[name].Errors.Clear();
                    }
                }
            }

            if (ModelState.ContainsKey("SellingTravelSince"))
            {
                ModelState["SellingTravelSince"].Errors.Clear();
            }

            if (ModelState.ContainsKey("Badge.Company"))
            {
                ModelState["Badge.Company"].Errors.Clear();
            }
            if (ModelState.ContainsKey("Badge.Name"))
            {
                ModelState["Badge.Name"].Errors.Clear();
            }
            if (ModelState.ContainsKey("Badge.NickName"))
            {
                ModelState["Badge.NickName"].Errors.Clear();
            }
            if (ModelState.ContainsKey("Badge.Location"))
            {
                ModelState["Badge.Location"].Errors.Clear();
            }

            var isValid = ModelState.IsValid && AdvisorViewManager.ValidateAdvisorIds(viewModel, ModelState);

            if (isValid)
            {
                var userMasterEntityId = FederatedLoginClient.User.UserMasterEntityId;
                var success            = AdvisorInfoManager.SaveAdminInfo(userMasterEntityId, viewModel.AdvisorInformation, editIdType);
                return(new HttpStatusCodeResult(success ? HttpStatusCode.OK : HttpStatusCode.InternalServerError));
            }
            else
            {
                // Validation error(s) detected on the server side
                var partialView = PartialView("EditorTemplates/Admin.AdvisorInformation", viewModel);
                Response.StatusCode = (int)HttpStatusCode.PartialContent;
                return(partialView);
            }
        }