public ActionResult ShowWidget( string widgetAlias )
        {
            if ( !string.IsNullOrWhiteSpace( widgetAlias ) )
            {
                var widget = WidgetServices.GetByAlias( widgetAlias );
                //if not found, display message somewhere - console message?
                if ( widget == null || widget.Id == 0 )
                {
                    workIT.Models.Common.SiteMessage msg = new workIT.Models.Common.SiteMessage() { Title = "Invalid Widget Request", Message = "ERROR - the requested Widget record was not found ", MessageType = "error" };
                    Session[ "SystemMessage" ] = msg;
                    return RedirectToAction( "Index", "Message" );
                }
                else
                {
                    string message = "";
                    //may already be in session, so remove and readd
                    //don't want this any longer
                    //if ( !WidgetServices.Activate( widget, message ) )
                    //{
                    //    workIT.Models.Common.SiteMessage msg = new workIT.Models.Common.SiteMessage() { Title = "Invalid Widget Request", Message = message, MessageType = "error" };
                    //    Session[ "SystemMessage" ] = msg;
                    //    return RedirectToAction( "Index", "Message" );
                    //}

                    var vm = Newtonsoft.Json.JsonConvert.DeserializeObject<workIT.Models.Common.WidgetV2>( widget.CustomStyles ?? "{}" );
                    return View( "~/views/widget/searchwidget.cshtml", vm );
                    //return View( "~/Views/Search/SearchV2.cshtml" );

                }
            }

            return RedirectToAction( "Index", "Home" );
        }
Example #2
0
        //

        //Get all of the widgets for an organization
        public JsonResult GetWidgetsForOrganization(string organizationCTID)
        {
            //Get data
            var widgets = WidgetServices.GetWidgetsForOrganization(organizationCTID);
            //Extract
            var results = new List <WidgetV2>();

            foreach (var widget in widgets)
            {
                var result = new WidgetV2();
                try
                {
                    //Extract the JSON data if it is V2 data
                    result = JsonConvert.DeserializeObject <WidgetV2>(widget.CustomStyles, new JsonSerializerSettings()
                    {
                        Error = IgnoreDeserializationErrors
                    });
                    if (result.Id == 0)
                    {
                        throw new Exception();
                    }
                }
                catch
                {
                    //Try to convert old data to new format
                    result = V1toV2(widget);
                }
                if (result.Id == 44)
                {
                }
                results.Add(result);
            }

            return(JsonResponse(results, true, "okay", null));
        }
Example #3
0
        public ActionResult MyCourses(string trackingId)
        {
            if (MainLayoutViewModel == null)
            {
                MainLayoutViewModel = new BaseModelViewToken
                {
                    WebStore         = null
                    , CategoriesList = new List <WidgetCategoryDTO>()
                    , IsValid        = true
                    , CategoryName   = Constants.USER_COURSES_CATEGORY_NAME
                    , TrackingId     = trackingId
                };

                ViewData["MainLayoutViewModel"] = MainLayoutViewModel;
                TempData["MainLayoutViewModel"] = MainLayoutViewModel;
            }

            var pagesize = WidgetServices.NumItemsInPage(null, null);

            var model = WidgetServices.GetIndexModelView(_webStorePortalServices.GetStoreCurrencyByTrackingId(trackingId), trackingId, 1, string.Empty, pagesize, null, "mycourses", CurrentUserId, "site");

            if (model.ItemsList.Count != 1)
            {
                return(View("Index", model));
            }

            var item = model.ItemsList[0];

            //  var url = Url.ActionString("Index", "Item", new RouteValueDictionary { { "area", "Widget" }, { "type", item.ItemType }, { "author", item.AuthorName.OptimizedUrl() }, { "itemName", item.ItemName.OptimizedUrl() }, { "trackingId", trackingId } });

            //  return new RedirectResult(url,true);

            return(RedirectToAction("Index", "Item", new { area = "Widget", type = item.ItemType, author = item.AuthorName.OptimizedUrl(), itemName = item.ItemName.OptimizedUrl(), trackingId }));
        }
Example #4
0
        public BaseController()
        {
            WidgetServices     = DependencyResolver.Current.GetService <IWidgetServices>();
            WidgetUserServices = DependencyResolver.Current.GetService <IWidgetUserServices>();

            if (String.IsNullOrEmpty(HttpContext.Request.RequestContext.RouteData.Values["trackingID"] as string) && TempData["MainLayoutViewModel"] != null)
            {
                MainLayoutViewModel = TempData["MainLayoutViewModel"] as BaseModelViewToken;
                return;
            }

            var trackingID = (HttpContext.Request.RequestContext.RouteData.Values["trackingID"] as string) ?? HttpContext.Request.QueryString["trackingId"];


            var categoryUrlName = HttpContext.Request.RequestContext.RouteData.Values["categoryName"] as string ?? HttpContext.Request.QueryString["categoryName"];

            //get iframe size
            int?width  = null;
            int?height = null;

            if (!string.IsNullOrEmpty(HttpContext.Request.QueryString["width"]))
            {
                var widthStr = HttpContext.Request.QueryString["width"];
                if (widthStr.Contains(","))
                {
                    widthStr = widthStr.Substring(0, widthStr.IndexOf(",", StringComparison.Ordinal));
                }
                //width = Convert.ToInt32(widthStr);
                int w;
                if (Int32.TryParse(widthStr, out w))
                {
                    width = w;
                }
            }
            if (!string.IsNullOrEmpty(HttpContext.Request.QueryString["height"]))
            {
                //height = Convert.ToInt32(HttpContext.Request.QueryString["height"]);
                int h;
                if (Int32.TryParse(HttpContext.Request.QueryString["height"], out h))
                {
                    height = h;
                }
            }
            var viewMode = "site";

            if (!string.IsNullOrEmpty(HttpContext.Request.QueryString["viewmode"]))
            {
                viewMode = HttpContext.Request.QueryString["viewmode"];
            }

            MainLayoutViewModel = WidgetServices.GetBaseModelToken(trackingID, categoryUrlName, viewMode, width, height);

            ViewData["MainLayoutViewModel"] = MainLayoutViewModel;
            TempData["MainLayoutViewModel"] = MainLayoutViewModel;
        }
Example #5
0
        public ActionResult GetCourseReviewsPartial(int id, int rait)
        {
            var list = WidgetServices.GetItemReviews(id);

            return(PartialView("Item/Course/_CourseReviews", new ItemReviewsPageToken
            {
                itemId = id,
                raiting = rait,
                reviews = list
            }));
        }
Example #6
0
        public ActionResult GetCourseContentsPartial(int id, string trackingId)
        {
            var infoToken = WidgetServices.GetItemInfoToken(id, BillingEnums.ePurchaseItemTypes.COURSE);

            return(PartialView("Item/Course/_CourseContent",
                               !infoToken.IsValid
                    ? new ItemProductPageToken {
                IsValid = false, Message = infoToken.Message
            }
                    : WidgetServices.ItemInfoToken2ItemProductPageToken(infoToken, new ItemAccessStateToken(),
                                                                        trackingId)));
        }
Example #7
0
        public JsonResult GetOrganizationWidgets(string orgId)
        {
            var           widgets  = WidgetServices.GetWidgetsForOrganization(orgId);
            List <string> messages = new List <string>();

            if (widgets == null || widgets.Count == 0)
            {
                messages.Add("Widgets not found");
                return(JsonResponse(null, false, "", messages));
            }

            return(JsonResponse(widgets, true, "success", null));
        }
Example #8
0
        //Used for testing the new widgetized search page
        public ActionResult SearchWidget(int widgetID = 0)
        {
            var widget = WidgetServices.Get(widgetID) ?? new Widget();
            var vm     = JsonConvert.DeserializeObject <WidgetV2>(widget.CustomStyles ?? "{}", new JsonSerializerSettings()
            {
                Error = IgnoreDeserializationErrors
            });

            //vm.Created = widget.Created;
            //vm.LastUpdated = widget.LastUpdated;

            return(View("~/views/widget/searchwidget.cshtml", vm));
        }
Example #9
0
        public ActionResult DeleteWidget(int id)
        {
            WidgetServices widgetService = new WidgetServices();
            List <string>  messages      = new List <string>();
            string         message       = string.Empty;

            if (!widgetService.Delete(id, ref message))
            {
                messages.Add(message);
                return(JsonResponse(new object(), false, "", messages));
            }

            return(JsonResponse(new object(), true, "success", null));
        }
Example #10
0
        public ActionResult _AuthorCatalog(int?id)
        {
            MainLayoutViewModel = WidgetServices.GetStoreBaseModelToken(Constants.LFE_MAIN_STORE_TRACKING_ID);

            ViewData["MainLayoutViewModel"] = MainLayoutViewModel;
            TempData["MainLayoutViewModel"] = MainLayoutViewModel;

            var model = id != null?_widgetServices.GetAuthorIndexModelViewToken(Constants.DEFAULT_CURRENCY_ID, Constants.LFE_MAIN_STORE_TRACKING_ID, (int)id) : new IndexModelViewToken
            {
                ItemsList = new List <WidgetItemListDTO>()
            };

            return(PartialView("Item/_Catalog", model));
        }
Example #11
0
        public ActionResult SingleCourse(string instance, string tabName, int?width, int?height)
        {
            ItemProductPageToken token;

            if (MainLayoutViewModel.NumCourses > 0 && MainLayoutViewModel.CategoriesList != null && MainLayoutViewModel.CategoriesList.Any())
            {
                ViewBag.TabName = tabName;
                token           = WidgetServices.GetWixDefaultItem(MainLayoutViewModel.CategoriesList.Select(x => x.WebStoreCategoryID).ToList(), CurrentUserId);
            }
            else
            {
                token = WidgetServices.GetPlaceHolderItemInfoToken();
            }
            return(View("~/Areas/Widget/Views/Wix/PlaceHolder.cshtml", token));
        }
Example #12
0
        //


        public JsonResult SaveWidgetV2()
        {
            //Manually bind large JSON document
            var model = Helpers.BindJsonModel <WidgetV2>(Request.InputStream, "data");

            //Convert
            var toSave = V2toV1(model);

            //Save the data
            var result   = new WidgetV2();
            var messages = new List <string>();

            if (!string.IsNullOrWhiteSpace(toSave.WidgetAlias))
            {
                var widgetExisting = WidgetServices.GetByAlias(toSave.WidgetAlias);
                if (widgetExisting != null && widgetExisting.Id > 0 && widgetExisting.Id != toSave.Id)
                {
                    messages.Add("Widget Alias already exist");
                    return(JsonResponse(null, false, "error", messages));
                }
            }

            if (!new WidgetServices().Save(toSave, ref messages))
            {
                LoggingHelper.DoTrace(5, "WidgetController.SaveWidgetV2. Errors on save: " + string.Join("\n\r>", messages));
                return(JsonResponse(null, false, "error", messages));
            }

            //Copy key properties from newly-saved widget (such as ID) to the V2 widget
            var saved = WidgetServices.Get(toSave.Id);

            result                 = JsonConvert.DeserializeObject <WidgetV2>(saved.CustomStyles);
            result.Created         = saved.Created;
            result.LastUpdated     = saved.LastUpdated;
            result.RowId           = saved.RowId;
            result.Id              = saved.Id;
            result.CreatedById     = saved.CreatedById;
            result.LastUpdatedById = saved.LastUpdatedById;
            //SimpleUpdate( saved, result );
            //result.UrlName = saved.WidgetAlias;

            //Save again to ensure the V2 data has the correct key properties
            saved.CustomStyles = JsonConvert.SerializeObject(result);
            new WidgetServices().Save(saved, ref messages);

            return(JsonResponse(result, true, "okay", null));
        }
Example #13
0
        public JsonResult GetWidget(int widgetId)
        {
            Widget widget = WidgetServices.Get(widgetId);

            if (!string.IsNullOrEmpty(widget.CustomStyles))
            {
                //this should be done in factory manager
                //widget.WidgetStyles = JsonConvert.DeserializeObject<WidgetStyles>( widget.CustomStyles );
            }
            else
            {
                widget.WidgetStyles = new WidgetStyles();
            }
            List <string> messages = new List <string>();

            if (widget == null)
            {
                messages.Add("Widget not found");
                return(JsonResponse(new Widget(), false, "", messages));
            }
            return(JsonResponse(widget, true, "success", null));
        }
Example #14
0
        public ActionResult Search(string trackingID, string keyword, int?page, int?width, int?height)
        {
            if (MainLayoutViewModel.Status != WebStoreEnums.StoreStatus.Published)
            {
                return(View("~/Areas/Widget/Views/Widget/NotFound.cshtml", new NotFoundToken {
                    FirstMessage = "The Web Store you were looking for was not publish. If you are the "
                }));
            }
            //int? userID
            //string wixViewMode,
            var userID   = CurrentUserId < 0 ? (int?)null : CurrentUserId;
            var pagesize = WidgetServices.NumItemsInPage(width, height);

            if (page == null)
            {
                page = 1;
            }

            ViewBag.Keyword = keyword;

            var model = WidgetServices.SearchModelView(_webStorePortalServices.GetStoreCurrencyByTrackingId(trackingID), trackingID, (int)page, pagesize, userID, MainLayoutViewModel.WixViewMode, keyword);

            return(model == null?View("~/Areas/Widget/Views/Shared/Error.cshtml") : View(model));
        }
Example #15
0
        public void SetMainLayoutViewModel(string trackingId, string viewMode = null, int?width = null, int?height = null)
        {
            //if (!string.IsNullOrEmpty(HttpContext.Request.RequestContext.RouteData.Values["trackingID"] as string))
            //{
            //    var trackingID = HttpContext.Request.RequestContext.RouteData.Values["trackingID"] as string;

            //    //TODO fix this exception(route Widget_CourseProductPage for partial course product page)
            //    if (trackingID == "CoursePage") return;

            //    var categoryUrlName = HttpContext.Request.RequestContext.RouteData.Values["categoryName"] as string;
            //    MainLayoutViewModel = WidgetServices.GetFacebookBaseModelToken(trackingID, categoryUrlName, viewMode, width, height);
            //}
            //else//set empty place holder view model
            //{
            //    MainLayoutViewModel = WidgetServices.GetFacebookBaseModelToken(HttpContext.Request.QueryString["trackingId"], "", viewMode, width, height);
            //}


            var categoryUrlName = HttpContext.Request.RequestContext.RouteData.Values["categoryName"] as string;

            MainLayoutViewModel             = WidgetServices.GetFacebookBaseModelToken(trackingId, categoryUrlName, viewMode, width, height);
            ViewData["MainLayoutViewModel"] = MainLayoutViewModel;
            TempData["MainLayoutViewModel"] = MainLayoutViewModel;
        }
Example #16
0
 [Obsolete]         //verify
 public ActionResult Remove()
 {
     WidgetServices.RemoveCurrentWidget();
     return(RedirectToAction("Index", "Home"));
 }
Example #17
0
        public ActionResult Index(string trackingID, string categoryName, int?page, string sort, int?width, int?height)
        {
            //in case request came from wix to css page and not to inner page
            if (!string.IsNullOrEmpty(Request.QueryString["instance"]) && !Request.Url.AbsoluteUri.ToLower().Contains("widget/wix/widget"))
            {
                return(new MVCTransferResult(new {
                    controller = "Wix",
                    action = "Index",
                    instance = Request.QueryString["instance"],
                    trackingID = (HttpContext.Request.RequestContext.RouteData.Values["trackingID"] as string) ?? HttpContext.Request.QueryString["trackingId"],
                    categoryName = HttpContext.Request.RequestContext.RouteData.Values["categoryName"],
                    width = HttpContext.Request.QueryString["width"],
                    height = HttpContext.Request.QueryString["height"],
                    viewmode = HttpContext.Request.QueryString["viewmode"],
                    compId = HttpContext.Request.QueryString["compId"],
                    cacheKiller = HttpContext.Request.QueryString["cacheKiller"],
                    section_url = HttpContext.Request.QueryString["section-url"],
                    target = HttpContext.Request.QueryString["target"]
                }));
            }

            if (MainLayoutViewModel == null || (MainLayoutViewModel.Status != WebStoreEnums.StoreStatus.Published && !MainLayoutViewModel.IsUserPurchasesCategory))
            {
                return(RedirectToAction("NotFound", "Error", new { status = MainLayoutViewModel != null ? MainLayoutViewModel.Status : WebStoreEnums.StoreStatus.Unknown, Area = "Widget" }));
            }

            var userID = CurrentUserId < 0 ? (int?)null : CurrentUserId;

            //if only one course exist in store don't display the index
            if (MainLayoutViewModel.IsSingleCourseStore && !MainLayoutViewModel.IsUserPurchasesCategory)
            {
                if (!string.IsNullOrEmpty(Request.QueryString["_escaped_fragment_"]))
                {
                    ViewBag.TabName = Request.QueryString["_escaped_fragment_"];
                }

                ItemProductPageToken token;

                //if (MainLayoutViewModel.NumCourses == 0)
                //{
                //    token = WidgetServices.GetPlaceHolderItemInfoToken();
                //    return View("~/Areas/Widget/Views/Wix/PlaceHolder.cshtml", token);
                //}

                if (MainLayoutViewModel.NumCourses > 0 && MainLayoutViewModel.CategoriesList != null && MainLayoutViewModel.CategoriesList.Any())
                {
                    // get the single course
                    token            = WidgetServices.GetWixDefaultItem(MainLayoutViewModel.CategoriesList.Select(x => x.WebStoreCategoryID).ToList(), CurrentUserId);
                    token.TrackingID = trackingID;
                    return(View("~/Areas/Widget/Views/Wix/PlaceHolder.cshtml", token));
                }

                //if no courses were defined display template place holder.
                token            = WidgetServices.GetPlaceHolderItemInfoToken();
                token.TrackingID = trackingID;
                return(View("~/Areas/Widget/Views/Wix/PlaceHolder.cshtml", token));
            }
            //display Index
            var pagesize = WidgetServices.NumItemsInPage(width, height);

            if (page == null)
            {
                page = 1;
            }

            //if main lfe site - display all courses that exist in lfe
            IndexModelViewToken model;

            if ((MainLayoutViewModel.ParentURL.ToLower().StartsWith("http://" + Request.Url.Host.ToLower()) || MainLayoutViewModel.ParentURL.ToLower().StartsWith(Utils.GetKeyValue("baseUrl"))) && (string.IsNullOrEmpty(categoryName) || categoryName.ToLower() == "_all"))
            {
                model = WidgetServices.GetAllCoursesView(_webStorePortalServices.GetStoreCurrencyByTrackingId(trackingID), (int)page, sort, pagesize, userID);
            }
            else
            {
                model = WidgetServices.GetIndexModelView(_webStorePortalServices.GetStoreCurrencyByTrackingId(trackingID), trackingID, (int)page, sort, pagesize, MainLayoutViewModel.Category != null ? (int?)MainLayoutViewModel.Category.WebStoreCategoryID : null, categoryName, userID, MainLayoutViewModel.WixViewMode);

                if (model == null)
                {
                    return(View("~/Areas/Widget/Views/Shared/Error.cshtml"));
                }

                if (model.ItemsList.Count.Equals(0))
                {
                    return(View(model));
                }

                //if only one course or bundle in category redirect to product page
                if (model.ItemsList.Count > 1 || page != 1)
                {
                    return(View(model));                                        //|| page != 1
                }
                var item = model.ItemsList[0];

                return(RedirectToAction("Index", "Item", new { type = item.ItemType, author = item.AuthorName.OptimizedUrl(), itemName = item.ItemName.OptimizedUrl(), trackingId = MainLayoutViewModel.WebStore != null ? MainLayoutViewModel.WebStore.TrackingID : string.Empty, mode = string.Empty, width = MainLayoutViewModel.Width, height = MainLayoutViewModel.Height, compId = this.GetWixCompId() }));
            }

            return(model == null?View("~/Areas/Widget/Views/Shared/Error.cshtml") : View(model));
        }
Example #18
0
        public ActionResult AppSettingsNew(string instance, string origCompId, string compId)
        {
            var user = this.CurrentUser();

            if (user == null)
            {
                return(RedirectToAction("Index", "Home", new { area = "WixEndPoint", instance = instance, compId = compId, origCompId = origCompId }));
            }


            var wixInstance = GetInstanceDto(instance);

            if (instance != null)
            {
                #region save plugin
                var token = new PluginInstallationDTO
                {
                    Uid  = wixInstance.instanceId.ToString(),
                    Type = PluginEnums.ePluginType.WIX
                };
                string error;
                if (WidgetEndpointServices.SavePluginInstallaltion(token, out error))
                {
                    SaveUserEvent(CommonEnums.eUserEvents.PLUGIN_INSTALLATION, Utils.GetEnumDescription(PluginEnums.ePluginType.WIX) + " plugin installed::" + wixInstance.instanceId, wixInstance.instanceId.ToString());
                }
                #endregion

                var wixUser = UserServices.FindUserDtoByWixInstanceId(wixInstance.instanceId);

                if (wixUser != null && user.UserId != wixUser.UserId)
                {
                    var returnUrl = Url.ToWixLoginHandlerUrl(wixInstance.instanceToken, compId, origCompId);
                    return(RedirectToAction("ForceWixUserSignIn", "Account", new { area = "", returnUrl, email = wixUser.Email, userProfileId = wixUser.UserProfileId, trackingId = wixInstance.instanceId.ToString() }));
                }

                #region update plugin owner
                WidgetEndpointServices.VerifyPluginOwner(wixInstance.instanceId.ToString(), out error);
                #endregion
            }


            var webStore = WidgetServices.GetWidgetStoreDto(wixInstance.instanceId.ToString()) ?? UserServices.GetAndUpdateZombieStore(wixInstance.instanceId, user.UserId);
            //check for zombie store (if user had store and clicked disconnect and than reconnected)


            var settingToken = new SettingsViewToken
            {
                Instance        = wixInstance,
                UserId          = user.UserId,
                StoreId         = webStore != null ? webStore.WebStoreID : (int?)null,
                UserCoursesList = CoursesServices.GetAuthorCoursesList(Constants.DEFAULT_CURRENCY_ID, user.UserId)
            };

            if (webStore == null)//create a new store
            {
                var jsonToken = new WixSettingsJsonToken
                {
                    cbIsShowBorder    = false,
                    cbIsShowTitleBar  = true,
                    cbIsTransparent   = false,
                    cpBackgroundColor = "#FFFFFF",
                    cpFontColor       = "#000000",
                    cpTabsFontColor   = "#006699",
                    InstanceId        = wixInstance.instanceId.ToString(),
                    StoreId           = null,
                    txtStoreName      = "",
                    UniqueId          = "",
                    WixSiteUrl        = ""
                };

                string error;
                WebstoreWixService.UpdateWixSettings(ref jsonToken, this.CurrentUser(), out error);

                settingToken.StoreName       = jsonToken.txtStoreName;
                settingToken.FontColor       = jsonToken.cpFontColor;
                settingToken.TabsFontColor   = jsonToken.cpTabsFontColor;
                settingToken.BackgroundColor = jsonToken.cpBackgroundColor;
                settingToken.IsTransparent   = jsonToken.cbIsTransparent;
                settingToken.IsShowBorder    = jsonToken.cbIsShowBorder;
                settingToken.IsShowTitleBar  = jsonToken.cbIsShowBorder;
                settingToken.StoreId         = jsonToken.StoreId;
                settingToken.UniqueId        = jsonToken.UniqueId;
            }
            else
            {
                settingToken.StoreName       = webStore.WebStoreName;
                settingToken.FontColor       = webStore.FontColor;
                settingToken.TabsFontColor   = webStore.TabsFontColor;
                settingToken.BackgroundColor = webStore.BackgroundColor;
                settingToken.IsTransparent   = webStore.IsTransParent;
                settingToken.IsShowBorder    = webStore.IsShowBorder;
                settingToken.IsShowTitleBar  = webStore.IsShowTitleBar;
                settingToken.StoreId         = webStore.WebStoreID;
                settingToken.UniqueId        = webStore.UniqueId;
                // settingToken.StoreCoursesIds = WidgetServices.GetAllStoreCourseIds(webStore.WebStoreID);
            }

            return(View(settingToken));
        }
Example #19
0
        //[CacheFilter(Duration = 60)]
        public ActionResult Index(BillingEnums.ePurchaseItemTypes type, string author, string itemName, string trackingId, string mode = null, int?width = null, int?height = null)
        {
            var item = WidgetServices.FindItemByUrlName(author, itemName, type);

            if (!item.IsValid)
            {
                return(View("ItemNotFound", item));
            }

            #region ViewBag settings

            try
            {
                ViewBag.BackgroundColor = "#FFFFFF";
                if (MainLayoutViewModel != null)
                {
                    if (MainLayoutViewModel.WebStore != null && !string.IsNullOrEmpty(MainLayoutViewModel.WebStore.BackgroundColor))
                    {
                        ViewBag.BackgroundColor = MainLayoutViewModel.WebStore.BackgroundColor;
                    }

                    if (!string.IsNullOrEmpty(Request.QueryString["_escaped_fragment_"]))
                    {
                        ViewBag.TabName = Request.QueryString["_escaped_fragment_"];
                    }

                    if (width != null)
                    {
                        MainLayoutViewModel.Width = width;
                    }
                    if (height != null)
                    {
                        MainLayoutViewModel.Height = height;
                    }
                }
                else
                {
                    MainLayoutViewModel = new BaseModelViewToken
                    {
                        WebStore              = null
                        , CategoriesList      = new List <WidgetCategoryDTO>()
                        , IsValid             = true
                        , IsSingleCourseStore = true
                        , TrackingId          = trackingId
                    };

                    ViewData["MainLayoutViewModel"] = MainLayoutViewModel;
                    TempData["MainLayoutViewModel"] = MainLayoutViewModel;
                }
            }
            catch (Exception ex)
            {
                Logger.Error("Item page ViewBag::" + itemName + "::" + author + "::" + trackingId, ex, CommonEnums.LoggerObjectTypes.Widget);
            }

            #endregion


            var itemState = WidgetServices.GetItemAccessState4User(CurrentUserId, item.ItemId, item.ItemType);

            itemState.IsPreview = (!String.IsNullOrEmpty(mode) && mode == Constants.QS_COURSE_PREVIEW_PREFIX);

            var loadViewer = !itemState.IsPreview && (itemState.IsOwnedByUser || (itemState.IsAccessAllowed && itemState.IsPublished) || (mode == Constants.QS_COURSE_ADMIN_PREVIEW_PREFIX && this.IsCurrentUserAdmin()));

            var token = WidgetServices.ItemInfoToken2ItemViewerPageToken(item, itemState, trackingId);

            if (loadViewer)
            {
                return(View("ItemViewer", token));
            }

            return(itemState.IsPublished || (itemState.IsPreview && itemState.IsOwnedByUser) ? View("ProductPage", WidgetServices.ItemInfoToken2ItemProductPageToken(item, itemState, trackingId)) : View("ItemNotPublished"));

            // var url = Url.ActionString("ItemNotPublished","Item",new RouteValueDictionary{{"area","Widget"}});

            //return Redirect(url);
        }
Example #20
0
        public WixBaseController()
        {
            if (TempData["MainLayoutViewModel"] != null)
            {
                MainLayoutViewModel = TempData["MainLayoutViewModel"] as BaseModelViewToken;
                return;
            }

            WidgetServices = DependencyResolver.Current.GetService <IWidgetServices>();

            //get iframe size
            int?width  = null;
            int?height = null;

            if (!string.IsNullOrEmpty(HttpContext.Request.QueryString["width"]))
            {
                var widthStr = HttpContext.Request.QueryString["width"];
                if (widthStr.Contains(","))
                {
                    widthStr = widthStr.Substring(0, widthStr.IndexOf(",", StringComparison.Ordinal));
                }
                // width = Convert.ToInt32(widthStr);
                int w;
                if (Int32.TryParse(widthStr, out w))
                {
                    width = w;
                }
            }
            if (!string.IsNullOrEmpty(HttpContext.Request.QueryString["height"]))
            {
                //height = Convert.ToInt32(HttpContext.Request.QueryString["height"]);
                int h;
                if (Int32.TryParse(HttpContext.Request.QueryString["height"], out h))
                {
                    height = h;
                }
            }
            var viewMode = "site";

            if (!string.IsNullOrEmpty(HttpContext.Request.QueryString["viewmode"]))
            {
                viewMode = HttpContext.Request.QueryString["viewmode"];
            }

            if (ViewData["MainLayoutViewModel"] != null)
            {
                return;
            }

            var trackingID = (HttpContext.Request.RequestContext.RouteData.Values["trackingID"] as string) ?? HttpContext.Request.QueryString["trackingId"];

            if (!string.IsNullOrEmpty(trackingID))
            {
                //TODO fix this exception(route Widget_CourseProductPage for partial course product page)
                if (trackingID == "CoursePage")
                {
                    return;
                }

                var categoryUrlName = (HttpContext.Request.RequestContext.RouteData.Values["categoryName"] as string) ?? HttpContext.Request.QueryString["categoryName"];
                MainLayoutViewModel = WidgetServices.GetBaseModelToken(trackingID, categoryUrlName, viewMode, width, height);
            }
            else//set empty place holder view model
            {
                var currentUserIdStr = "";
                if (this.CurrentUser() != null)
                {
                    currentUserIdStr = this.CurrentUser().UserId.ToString();
                }
                MainLayoutViewModel = WidgetServices.GetWixBaseModelToken(HttpContext.Request.QueryString["instance"], "", viewMode, width, height, currentUserIdStr);
            }


            ViewData["MainLayoutViewModel"] = MainLayoutViewModel;
            TempData["MainLayoutViewModel"] = MainLayoutViewModel;
        }
Example #21
0
        public JsonResult SaveWidget()
        {
            bool           isFileUploaded = false;
            List <string>  messages       = new List <string>();
            Widget         widgetData     = new Widget();
            WidgetServices widgetService  = new WidgetServices();

            string fileUploadStatus = "";
            var    w1 = Request.Params["widgetData"];

            if (w1 != null)
            {
                LoggingHelper.DoTrace(6, "WidgetController.SaveWidget. Entered.");

                widgetData = JsonConvert.DeserializeObject <Widget>(Request.Params["widgetData"]);
                if (!string.IsNullOrWhiteSpace(widgetData.WidgetAlias))
                {
                    var widgetExisting = WidgetServices.GetByAlias(widgetData.WidgetAlias);
                    if (widgetExisting != null && widgetExisting.Id > 0 && widgetExisting.Id != widgetData.Id)
                    {
                        messages.Add("Widget Alias already exist");
                        return(JsonResponse(widgetData, false, "failure", messages));
                    }
                }

                if (!widgetService.Save(widgetData, ref messages))
                {
                    LoggingHelper.DoTrace(5, "WidgetController.SaveWidget. Errors on save: " + string.Join("\n\r>", messages));
                    return(JsonResponse(widgetData, false, "", messages));
                }

                //don't call activate
                //WidgetServices.Activate( widgetData, string.Empty );

                //WHY the check for Files?
                //Need a check for actual entered data
                //skip for now
                if (string.IsNullOrEmpty(widgetData.WidgetStylesUrl) && Request.Files.Count == 0)
                {
                    //TODO - if no style changes, should delete any existing stylesheet
                    if (widgetData.WidgetStyles != null &&
                        widgetData.WidgetStyles.HasChanged())
                    {
                        //if ( this.ParseAndCreateUserStyleTemplate( widgetData, this.ControllerContext, Server.MapPath( "~/" ), "UserStyleTemplate", ref messages ) )
                        //    widgetService.Save( widgetData, ref messages );
                        //else
                        //{
                        //    //for now ignore errors?
                        //    return JsonResponse( widgetData, false, "failure", messages );
                        //}
                    }
                }
                //plan to chg this to get the text and pass as a string
                //if ( Request.Files.Count > 0 )
                //{
                //    LoggingHelper.DoTrace( 4, "WidgetController.SaveWidget. Have widget data and found files" );
                //    isFileUploaded = this.UploadStyle( Request.Files[ 0 ], widgetData );

                //    widgetService.Save( widgetData, ref messages );

                //    fileUploadStatus = isFileUploaded ? "Style template upload success" : fileUploadStatus;
                //    if ( !string.IsNullOrWhiteSpace( fileUploadStatus ) )
                //    {
                //        messages.Add( fileUploadStatus );
                //    }
                //}
            }
            else
            {
                //plan to chg this to get the text and pass as a string
                //if ( Request.Files.Count > 0 )
                //{
                //    LoggingHelper.DoTrace( 4, "WidgetController.SaveWidget. No widget data but found files" );
                //    isFileUploaded = this.UploadStyle( Request.Files[ 0 ], widgetData );

                //    widgetService.Save( widgetData, ref messages );

                //    fileUploadStatus = isFileUploaded ? "Style template upload success" : fileUploadStatus;
                //    if ( !string.IsNullOrWhiteSpace( fileUploadStatus ) )
                //    {
                //        messages.Add( fileUploadStatus );
                //    }
                //} else
                {
                    messages.Add("Error - no widget data was sent to the server.");
                    return(JsonResponse(widgetData, false, "failure", messages));
                }
            }

            LoggingHelper.DoTrace(6, "WidgetController.SaveWidget. Regular exit.");
            return(JsonResponse(widgetData, true, "success", new { isFileUploaded = isFileUploaded, fileUploadStatus = fileUploadStatus }));
        }