public ActionResult ResourceList()
        {
            var model = new ResourceListViewModel();

            model.ResourceCategories  = ExigoDAL.GetResourceCategories(new GetResourceCategoriesRequest()).OrderBy(c => c.CategoryOrder);
            model.CountryAvailability = GlobalSettings.Markets.AvailableMarkets;
            model.Languages           = ExigoDAL.GetUniqueLanguages().ToList();
            model.ResourceTypes       = ExigoDAL.GetResourceTypes(new GetResourceTypeRequest()).OrderBy(rt => rt.SortOrder).ToList();
            model.CategoryTranslation = ExigoDAL.GetCategoryTranslations(new GetTranslatedCategoryRequest());
            model.Tags = ExigoDAL.GetTagsForResources(new GetTagsForResourcesRequest());

            //Create ListItems for the Market/Language DropDown
            List <SelectListItem> items = new List <SelectListItem>();

            foreach (var market in model.CountryAvailability)
            {
                SelectListItem item = new SelectListItem()
                {
                    Value    = market.Countries.FirstOrDefault(),
                    Text     = CommonResources.Countries(market.Countries.FirstOrDefault()),
                    Selected = Identity.Current.Country == market.Countries.FirstOrDefault()
                };
                items.Add(item);
            }
            model.CountryList = items;

            return(View(model));
        }
示例#2
0
        public RegisterViewModel(INavigationService navigator, string navigationPath)
        {
            #region Navigation
            _navigator     = navigator;
            NavigationPath = navigationPath;
            NavigateToResourceListPageCommand = new Command(async() =>
            {
                await _navigator.NavigateToModal(new BusyViewModel(_navigator, $"{NavigationPath}/Busy"));
                if (await Register())
                {
                    await _navigator.PopModal();
                    var resourceListViewModel = new ResourceListViewModel(_navigator, $"{NavigationPath}/ResourceList");
                    await resourceListViewModel.BeforeFirstShown();
                    _navigator.PresentAsNavigatableMainPage(new HomeViewModel(_navigator, new ResourceListView(resourceListViewModel)));
                }
                else
                {
                    await _navigator.PopModal();
                    await _navigator.DisplayAlert("Alert", ErrorMessage, "OK");
                }
            });
            NavigateBack = new Command(() => { _navigator.NavigateBack(); });
            #endregion

            RegisterInformation = new RegisterInformation();
        }
示例#3
0
        public IActionResult List([FromBody] ResourceListViewModel model)
        {
            var list = resourceService.List(model.Type);

            return(APIResult.成功.SetData("list", list.Select(f => new
            {
                f.Id,
                f.ParentId,
                f.Name,
                f.Type,
                f.Content,
                f.Sort,
                f.Authorize,
                Children = f.Children?.Select(c => new
                {
                    c.Id,
                    c.ParentId,
                    c.Name,
                    c.Type,
                    c.Content,
                    c.Sort,
                    c.Authorize,
                })
            })));
        }
        public ResourceListViewModel AlbumResources(int AlbumID, int PageNumber)
        {
            IResourceRepository repository = new Repository.ResourceRepository();

            try
            {
                string userName = this.User.Identity.Name;

                Album album = repository.GetAlbum(AlbumID, userName);

                ResourceListViewModel resourceVM = new ResourceListViewModel
                {
                    Resources = album.Resources.Skip((PageNumber - 1) * 20).Take(20).ToList(),
                    Total     = album.Resources.Count
                };

                //Clear the album's resources to prevent circular reference converting to json
                album.Resources.Clear();

                return(resourceVM);
            }
            catch (Exception e)
            {
                throw new System.Exception("No such album called " + AlbumID);
            }
        }
示例#5
0
        public ActionResult ManageResources()
        {
            //set up the model/service and fetch data
            var model = new ResourceListViewModel();

            model.ResourceCategories  = Exigo.GetResourceCategories(new GetResourceCategoriesRequest()).OrderBy(c => c.CategoryOrder);
            model.CountryAvailability = GlobalSettings.Markets.AvailableMarkets;
            model.Languages           = Exigo.GetLanguages().ToList();
            model.ResourceTypes       = Exigo.GetResourceTypes(new GetResourceTypeRequest()).OrderBy(rt => rt.SortOrder).ToList();
            model.CategoryTranslation = Exigo.GetCategoryTranslations(new GetTranslatedCategoryRequest());
            model.Tags = Exigo.GetTagsForResources(new GetTagsForResourcesRequest());

            //Create ListItems for the Market/Language DropDown
            List <SelectListItem> items = new List <SelectListItem>();

            foreach (var market in model.CountryAvailability)
            {
                SelectListItem item = new SelectListItem()
                {
                    Value = market.Countries.FirstOrDefault(),
                    Text  = market.Description
                };
                items.Add(item);
            }
            model.CountryList = items;

            return(View(model));
        }
        public JsonNetResult FetchResourceData(string editResourceID)
        {
            try
            {
                var model = new ResourceListViewModel();

                //set up the model/service and fetch data
                var ResourceID = Convert.ToInt32(editResourceID);
                var res = Exigo.ODataResources().ResourceManagement.Where(r => r.ResourceID == ResourceID).FirstOrDefault();

                model.EditCategoryID = res.ResourceID.ToString();
                model.Title = res.Title;
                model.Description = res.Description;
                model.Url = res.Url;
                model.ResourceCategoryID = res.ResourceCategoryID;
                model.ResourceTypeID = res.ResourceTypeID;
                model.UploadedThumbnailPath = res.UploadedThumbnailPath;

                return new JsonNetResult(new
                {
                    success = true,
                    model = model
                });
            }
            catch
            {
                return new JsonNetResult(new
                {
                    success = false
                });
            }
        }
示例#7
0
        public ActionResult History(int resourceId)
        {
            var r = dc.Resources.SingleOrDefault(x => x.ResourceId == resourceId);

            if (r == null)
            {
                return(this.HttpNotFound());
            }

            var model = new ResourceListViewModel {
                ResourceName        = r.Name,
                ResourceDescription = r.Description,
                Bookings            = from b in dc.Bookings
                                      where b.ResourceId == r.ResourceId
                                      orderby b.DateBegin descending
                                      select new ResourceListViewModel.Booking {
                    DateBegin    = b.DateBegin,
                    DateEnd      = b.DateEnd,
                    UserName     = b.User.UserName,
                    UserEmail    = b.User.Email,
                    Notes        = b.Notes,
                    ActivityName = b.Activity.Name
                },
            };

            ViewBag.HistoryView = true;
            return(View("Index", model));
        }
        public ActionResult DeleteResource(ResourceListViewModel res)
        {
            var ResourceID = Convert.ToInt32(res.EditCategoryID);

            var context = Exigo.ODataResources();
            var resource = context.ResourceManagement.Where(r => r.ResourceID == ResourceID).FirstOrDefault();
            var resourceCategoryID = resource.ResourceCategoryID;
            var resourceOrder = resource.ResourceOrder;

            context.DeleteObject(resource);

            //2015-09-08
            //Ivan S.
            //66
            //Reorders the following resources (setting their order to a minus 1 value)
            foreach (var resourceItem in context.ResourceManagement.Where(c => c.ResourceCategoryID == resourceCategoryID && c.ResourceOrder > resourceOrder))
            {
                resourceItem.ResourceOrder--;
                context.UpdateObject(resourceItem);
            }

            context.SaveChanges();

            return RedirectToAction("ManageResources");
        }
示例#9
0
        public IActionResult Index()
        {
            var result = _interactor.GetListResources();

            var viewModel = new ResourceListViewModel().MapToEntity(result);

            return(View(viewModel));
        }
        //[Route("{categoryID:int?}")]
        //public ActionResult ResourceList(int? categoryID)
        //{
        //    var model = new ResourceListViewModel();

        //    if (categoryID != null)
        //    {
        //        model.ResourceList = Exigo.ODataResources().ResourceManagement.Where(c => c.ResourceCategoryID == categoryID).OrderBy(r=>r.ResourceOrder).ToList();
        //    }
        //    else
        //    {
        //        model.ResourceList = Exigo.ODataResources().ResourceManagement.OrderBy(r => r.ResourceCategoryID).ThenBy(r => r.ResourceOrder).ToList();
        //    }

        //    model.ResourceCategories = Exigo.GetResourceCategories(new GetResourceCategoriesRequest()).OrderBy(c=>c.ResourceCategoryOrder);

        //    return View(model);
        //}

        /// <summary>
        /// fetch data for ManageResources.chtml
        /// </summary>
        /// <returns></returns>
        public ActionResult ManageResources()
        {
            //set up the model/service and fetch data
            var model = new ResourceListViewModel();
            model.ResourceList = Exigo.ODataResources().ResourceManagement.ToList().OrderBy(r => r.ResourceCategoryID).ThenBy(r => r.ResourceOrder);
            model.ResourceCategories = Exigo.GetResourceCategories(new GetResourceCategoriesRequest()).OrderBy(c => c.ResourceCategoryOrder);
            model.ResourceTypes = Exigo.ODataResources().ResourceTypes;

            return View(model);
        }
示例#11
0
        public ActionResult DeleteResource(ResourceListViewModel res)
        {
            var itemID     = res.EditItemID;
            var categoryID = res.DeleteCategoryID;


            //A resource will be allowed in mulitple categories Thus delete this entries from this table
            var categoryItems = Exigo.GetResourceCategoryItems(new GetResourceCategoryItemsRequest()
            {
                ItemID = itemID
            });

            foreach (var item in categoryItems)
            {
                //2015-09-08
                //Ivan S.
                //66
                //Reorders the following resources (setting their order to a minus 1 value)
                var itemOrder         = item.ItemOrder;
                var categoryItemOrder = Exigo.GetResourceCategoryItems(new GetResourceCategoryItemsRequest()
                {
                    CategoryID = categoryID, ItemOrder = itemOrder
                }).ToList();
                foreach (var catitem in categoryItemOrder)
                {
                    catitem.ItemOrder = catitem.ItemOrder - 1;
                    Exigo.ModifyResourceCategoryItemOrder(catitem);
                }
            }
            //Delete the availabilitiy of the resource
            var availability = Exigo.GetResourceAvailabilities(new GetResourceAvailabilitiesRequest()
            {
                ItemID = itemID
            }).Select(v => v.AvailabilityID).ToList();

            Exigo.DeleteResourceAvailabilities(availability);

            //Delete The Tags Associated with the item
            var tags = Exigo.GetResourceItemTags(new GetResourceItemTagsRequest()
            {
                ItemID = itemID
            }).Select(t => t.TagID).ToList();

            Exigo.DeleteResourceItemTags(tags);

            //Delete the resource itself
            var resource = Exigo.GetResourceItems(new GetResourcesRequest()
            {
                ItemID = itemID
            }).FirstOrDefault();

            Exigo.DeleteResourceItem(resource);

            return(RedirectToAction("ManageResources"));
        }
示例#12
0
        public ActionResult ResourceItems(Guid?editItemID)
        {
            Guid ID = Guid.NewGuid();

            var model = new ResourceListViewModel();

            model.CountryAvailability = GlobalSettings.Markets.AvailableMarkets;

            model.Languages = Exigo.GetLanguages().ToList();

            model.ResourceTypes = Exigo.GetResourceTypes(new GetResourceTypeRequest());

            model.Statuses = Exigo.GetResourceStatuses();

            model.ResourceCategories = Exigo.GetResourceCategories(new GetResourceCategoriesRequest());

            model.Tags = Exigo.GetTagsForResources(new GetTagsForResourcesRequest());

            model.IsEdit = false;

            model.CurrentTags = new List <string>();

            if (editItemID != null && editItemID != Guid.Empty)
            {
                ID             = editItemID ?? ID;
                model.Resource = Exigo.GetResourceItems(new GetResourcesRequest()
                {
                    ItemID = ID
                }).FirstOrDefault();

                var TagIDs = Exigo.GetResourceItemTags(new GetResourceItemTagsRequest()
                {
                    ItemID = ID
                }).Select(t => t.TagID);
                model.CurrentTags = model.Tags.Where(t => TagIDs.Contains(t.TagID)).Select(t => t.Name).Distinct().ToList();
                model.Resource.ResourceCategoryItems = Exigo.GetResourceCategoryItems(new GetResourceCategoryItemsRequest()
                {
                    ItemID = ID
                });
                model.Resource.ResourceAvailabilities = Exigo.GetResourceAvailabilities(new GetResourceAvailabilitiesRequest()
                {
                    ItemID = ID
                });
                //SET Default Values for DropDownList on View
                model.TypeID   = model.Resource.TypeID;
                model.StatusID = model.Resource.StatusID;
                model.Language = model.Resource.Language;

                model.IsEdit = true;
            }

            model.EditItemID = editItemID ?? Guid.Empty;

            return(View(model));
        }
 public async Task<ActionResult> Information()
 {
     ViewBag.Title = "参考资料";
     ResourceListViewModel viewModel = new ResourceListViewModel();
     string courseId = Session["CourseId"].ToString();
     viewModel.ResourceList = await ResourceService.getResourceByCourseAndType(courseId, ViewBag.Title);
     CourseModel course = new CourseModel();
     course = await CourseService.getCourseById(courseId);
     viewModel.CourseName = course.CourseName;
     return View("ResourceList", viewModel);
 }
        public ActionResult CreateResource(ResourceListViewModel res, HttpPostedFileBase UploadFile)
        {
            var context = Exigo.ODataResources();

            int CategoryID = 0;
            if (!string.IsNullOrEmpty(res.SelectedCategoryID))
            {
                CategoryID = Convert.ToInt32(res.SelectedCategoryID);
            }

            var resource = new ResourceContext.ResourceManager();

            resource.Description = res.Description;
            resource.CreatedDate = DateTime.Now;
            resource.ResourceCategoryID = CategoryID;

            //2015-09-10
            //Ivan S.
            //66
            //Ben wanted me to save the ResourceType, originally the Title was saving the type from a fixed list of File types
            //I now get the description from the resource types and save the right resource typeID
            resource.Title = context.ResourceTypes.Where(t => t.ResourceTypeID == res.ResourceTypeID).FirstOrDefault().ResourceTypeDescription;
            resource.ResourceTypeID = (Int32)res.ResourceTypeID; //It was missing 


            //2015-09-08
            //Ivan S.
            //66
            //Sets the initial order for the new resource to the maximum number for that category
            var lastResource = context.ResourceManagement.Where(r => r.ResourceCategoryID == resource.ResourceCategoryID).OrderByDescending(r => r.ResourceOrder).FirstOrDefault();
            int? lastResourceOrder = InitialOrderValue - 1;
            if (lastResource != null)
                lastResourceOrder = lastResource.ResourceOrder;
            resource.ResourceOrder = ++lastResourceOrder;


            resource.Url = res.Url;
            resource.UploadedThumbnailPath = res.UploadedThumbnailPath;

            context.AddToResourceManagement(resource);
            context.SaveChanges();

            return RedirectToAction("ManageResources");
        }
示例#15
0
        public ActionResult GetListResource(GroupIdParam param)
        {
            List <ResourceListViewModel> resources = new List <ResourceListViewModel>();
            var listRes = _groupService.GetResourceGroup(param.GroupId);

            if (listRes != null)
            {
                foreach (var res in listRes)
                {
                    ResourceListViewModel item = new ResourceListViewModel();
                    item.ResourceId = res.Id;
                    item.Comments   = res.Comments;
                    var authorRes = _userService.GetUserById(res.AuthorId);
                    item.AuthorName    = authorRes.Name;
                    item.AuthorSurname = authorRes.Surname;
                    item.Date          = Convert.ToDateTime(res.Date);
                    resources.Add(item);
                }
                return(PartialView("_ListResource", resources));
            }
            return(PartialView("_ListResource", resources));
        }
        public ActionResult CreateCategory(ResourceListViewModel res)
        {
            var context = Exigo.ODataResources();

            var resource = new ResourceContext.ResourceManagerCategory();
            resource.ResourceCategoryDescription = res.CategoryDescription;

            //2015-09-08
            //Ivan S.
            //66
            //Sets the initial order for the new category to the maximum number for all the categories
            var lastCategory = context.ResourceManagerCategories.OrderByDescending(r => r.ResourceCategoryOrder).FirstOrDefault();
            int? lastCategoryOrder = InitialOrderValue - 1;
            if (lastCategory != null)
                lastCategoryOrder = lastCategory.ResourceCategoryOrder;
            resource.ResourceCategoryOrder = ++lastCategoryOrder;

            context.AddToResourceManagerCategories(resource);
            context.SaveChanges();

            return RedirectToAction("ManageResources");
        }
示例#17
0
        public JsonNetResult GetResourceList(ResourceFilters filter)
        {
            try
            {
                var model = new ResourceListViewModel();
                model.Filter             = filter;
                model.IsResourceManager  = filter.isResourceManager;
                model.ResourceCategories = new JavaScriptSerializer().Deserialize <IEnumerable <ExigoService.ResourceCategory> >(filter.Categories);
                var filteredcatfilter = filter.CategoryFilter != null ? new JavaScriptSerializer().Deserialize <string>(filter.CategoryFilter) : "";
                var categoryFilter    = (filteredcatfilter != null && filteredcatfilter != "") ? Guid.Parse(filteredcatfilter) : Guid.Empty;
                model.ResourceList     = Exigo.GetResourceItems(new GetResourcesRequest());
                model.CategoryItemList = Exigo.GetResourceCategoryItems(new GetResourceCategoryItemsRequest()).OrderBy(t => t.ItemOrder);
                model.Types            = Exigo.GetResourceTypes(new GetResourceTypeRequest()
                {
                    TypeDescriptions = filter.MediaFilter
                });
                //Get a List of CategoryIDs from the Rescource Category List
                var catIds = model.ResourceCategories.Select(c => c.CategoryID).ToList();
                //Get all resources assigned to a CURRENT Category ID
                var assigned = model.CategoryItemList.Where(c => catIds.Contains(c.CategoryID)).ToList();
                //Assign all remaining items so they may be displayed in the Unassigned Category
                model.UnassignedResources = model.CategoryItemList.Except(assigned).ToList();
                //Get a list of Unassigned Resources before filtering by market
                var unassignedresourceIDs = model.UnassignedResources.Select(ur => ur.ItemID).ToList();
                model.UnassignedRsourceList = model.ResourceList.Where(rl => unassignedresourceIDs.Contains(rl.ItemID)).ToList();

                if (filter.MarketFilter != null && filter.MarketFilter != string.Empty)
                {
                    if (filter.LanguageFilter != null && filter.LanguageFilter != string.Empty)
                    {
                        var language = filter.LanguageFilter;
                        var market   = CommonResources.Countries(filter.MarketFilter);
                        model.GetAvailableResources = Exigo.GetResourceAvailabilities(new GetResourceAvailabilitiesRequest()
                        {
                            Market = market, Language = language
                        });
                        model.AvailableResources = model.GetAvailableResources.Select(ar => ar.ItemID).ToList();
                    }
                    else
                    {
                        var market = CommonResources.Countries(filter.MarketFilter);
                        model.GetAvailableResources = Exigo.GetResourceAvailabilities(new GetResourceAvailabilitiesRequest()
                        {
                            Market = market
                        });
                        model.AvailableResources = model.GetAvailableResources.Select(ar => ar.ItemID).ToList();
                    }
                }

                model.ResourceList = model.ResourceList.Where(x => model.AvailableResources.Contains(x.ItemID));

                bool filtered = false;
                if (filter.MediaFilter != null && filter.MediaFilter.Count() > 0)
                {
                    var typeIDs = model.Types.Select(v => v.TypeID);
                    filtered           = true;
                    model.ResourceList = model.ResourceList.Where(x => typeIDs.Contains(x.TypeID)).ToList();
                }


                if (categoryFilter != null && categoryFilter != Guid.Empty)
                {
                    model.SelectedCategoryID = model.ResourceCategories.Where(c => c.CategoryID == categoryFilter).FirstOrDefault().CategoryID;
                }

                if (filter.KeyWord != null && filter.KeyWord.Any())
                {
                    var keyword = filter.KeyWord;
                    var tag     = Exigo.GetTagsForResources(new GetTagsForResourcesRequest()
                    {
                        Names = keyword
                    }).FirstOrDefault();
                    if (tag != null)
                    {
                        var resourceitemtagIDs = Exigo.GetResourceItemTags(new GetResourceItemTagsRequest()
                        {
                            TagID = tag.TagID
                        }).AsEnumerable().Select(rt => rt.ItemID);

                        //var tagitems = model.ResourceList.Where(rl => resourceitemtagIDs.Contains(rl.ItemID));
                        //var matchingitems = model.ResourceList.Where(rl => keyword.Contains(rl.Title) || rl.ItemDescription.ToLower().Contains(keyword));
                        //var keywordSearchResult = tagitems.Union(matchingitems).ToList().Select(r => r.ItemID);
                        //model.ResourceList = model.ResourceList.Where(rl => keywordSearchResult.Contains(rl.ItemID));

                        model.ResourceList = model.ResourceList.Where(rl => resourceitemtagIDs.Contains(rl.ItemID));
                    }
                }

                var html = this.RenderPartialViewToString("partials/_resourcelist", model);

                return(new JsonNetResult(new
                {
                    success = true,
                    html = html,
                    isFiltered = filtered
                }));
            }
            catch (Exception ex)
            {
                return(new JsonNetResult(new
                {
                    success = false,
                    message = ex.Message
                }));
            }
        }
        public ActionResult EditResource(ResourceListViewModel res, HttpPostedFileBase UploadFile)
        {
            var context = Exigo.ODataResources();

            var ResourceID = Convert.ToInt32(res.EditCategoryID);
            var CategoryID = Convert.ToInt32(res.SelectedCategoryID);

            var resource = context.ResourceManagement.Where(r => r.ResourceID == ResourceID).FirstOrDefault();

            resource.Description = res.Description;
            resource.CreatedDate = DateTime.Now;

            //2015-09-10
            //Ivan S.
            //66
            //Ben wanted me to save the ResourceType, originally the Title was saving the type from a fixed list of File types
            //I now get the description from the resource types and save the right resource typeID
            resource.Title = context.ResourceTypes.Where(t => t.ResourceTypeID == res.ResourceTypeID).FirstOrDefault().ResourceTypeDescription;
            resource.ResourceTypeID = (Int32)res.ResourceTypeID; //It was missing 

            if (resource.ResourceCategoryID != CategoryID)
            {
                //If the categoryID was changed

                //2015-09-08
                //Ivan S.
                //66
                //If the category of the resource was changed,it has to be added at the end when it comes to the resource order 
                //It calculates the last order values for the new category and assigns it to the resource

                var previousResourceOrder = resource.ResourceOrder;

                var lastResource = context.ResourceManagement.Where(r => r.ResourceCategoryID == CategoryID).OrderByDescending(r => r.ResourceOrder).FirstOrDefault();
                int? lastResourceOrder = InitialOrderValue - 1;
                if (lastResource != null)
                    lastResourceOrder = lastResource.ResourceOrder;

                resource.ResourceOrder = ++lastResourceOrder;

                if (resource.ResourceCategoryID != 0)
                {
                    //Category 0 is for the items that were in a category that was deleted and were put temporarily there (ResourceCategoryID=0)
                    //Therefore it is not necessary to reorder the other items

                    //It also changes the order of the resources in the previous category that had an order value greater 
                    //than the one the resource that is being moved had
                    foreach (var resourceItem in context.ResourceManagement.Where(c => c.ResourceCategoryID == resource.ResourceCategoryID && c.ResourceOrder > previousResourceOrder))
                    {
                        resourceItem.ResourceOrder--;
                        context.UpdateObject(resourceItem);
                    }
                }
                resource.ResourceCategoryID = CategoryID;
            }

            resource.Url = res.Url;
            resource.UploadedThumbnailPath = res.UploadedThumbnailPath;

            context.UpdateObject(resource);
            context.SaveChanges();

            return RedirectToAction("ManageResources");
        }