Пример #1
0
        public LearningGeneralViewModel(IEnumerable <ResourceType> allResourceTypes, IEnumerable <LocationType> locationTypes = null)
        {
            LocationTypes = new List <JsonLocationType>();

            if (locationTypes == null)
            {
                return;
            }

            foreach (var locationType in locationTypes)
            {
                var locaitonTypeViewModle = new JsonLocationType(locationType);
                LocationTypes.Add(locaitonTypeViewModle);
            }

            LocationTypesSelectList = new SelectList(LocationTypes, "Id", " LocationTypeName");


            if (allResourceTypes == null)
            {
                AllResourceTypes = new List <ResourceTypeViewModel>();
            }
            else
            {
                AllResourceTypes = new List <ResourceTypeViewModel>();

                foreach (var resourceType in allResourceTypes)
                {
                    var resourceTypeViewModel = new ResourceTypeViewModel(resourceType);
                    AllResourceTypes.Add(resourceTypeViewModel);
                }
            }
        }
Пример #2
0
        public static MvcHtmlString DisplayResourcesOfType(this HtmlHelper helper, ResourceTypeViewModel resourceType, int locationId)
        {
            //figure out the current resources. for the locaiton
            var resources = resourceType.Resources.Where(x => x.LocaitonId == locationId).ToList();

            return(helper.Partial(@"/Views/Partials/Resources/ResourcesTable.cshtml", resources));
        }
Пример #3
0
        /// <summary>
        /// If an resource was loaded (new or existing), the resource
        /// can be assigned to this view model
        /// </summary>
        private async Task AssignLoadedResource(ResourceModel resource)
        {
            IsBusy = true;

            try
            {
                // Load type from type tree
                var typeTreeModel = await ResourceServiceModel.GetTypeTree();

                var flatTypeTree = typeTreeModel.DerivedTypes.Flatten(t => t.DerivedTypes).SingleOrDefault(t => t.Name == resource.Type);
                Type = new ResourceTypeViewModel(flatTypeTree);

                EditableObject = new ResourceViewModel(resource, Type);

                if (AspectUsage)
                {
                    var typedAspects = Config.AspectConfigurations.FirstOrDefault(ac => ac.TypeName == resource.Type);
                    List <AspectConfiguration> aspectConfigurations;
                    if (typedAspects == null || typedAspects.Aspects.Count == 0)
                    {
                        aspectConfigurations = Config.DefaultAspects;
                    }
                    else
                    {
                        aspectConfigurations = typedAspects.Aspects;
                    }

                    var aspects = aspectConfigurations.Select(ca => (IResourceAspect)AspectFactory.Create(ca.PluginName))
                                  .Where(a => a.IsRelevant(EditableObject)).ToArray();

                    var aspectLoadTask = new List <Task>(aspects.Select(aspect => aspect.Load(EditableObject)));

                    await Task.WhenAll(aspectLoadTask);

                    Aspects.Items.AddRange(aspects);
                }

                Logger.Log(LogLevel.Trace, "Loaded resource with id {0}.", EditableObject.Id);
            }
            catch (Exception e)
            {
                //TODO
                throw;
            }
            finally
            {
                IsBusy = false;
            }
        }
Пример #4
0
        private static List <ResourceTypeViewModel> BindResources(List <ResourceType> allResourceTypes, int locationId)
        {
            if (allResourceTypes == null)
            {
                return(new List <ResourceTypeViewModel>());
            }

            List <ResourceTypeViewModel> allResourceTypeViewModels = new List <ResourceTypeViewModel>();

            foreach (var resourceType in allResourceTypes)
            {
                var resourceTypeViewModel = new ResourceTypeViewModel(resourceType, locationId);
                allResourceTypeViewModels.Add(resourceTypeViewModel);
            }
            return(allResourceTypeViewModels);
        }
Пример #5
0
        private ICollection <ResourceTypeViewModel> GetResources()
        {
            _resourceManager = new ResourceManager(MainViewModel.PathName);
            var resources = new List <ResourceTypeViewModel>();

            foreach (var type in _resourceManager.GetResourceTypes())
            {
                var resourceType = new ResourceTypeViewModel(_resourceManager)
                {
                    ResourceType = type
                };
                MainViewModel.Container.SatisfyImportsOnce(resourceType);
                foreach (var resource in _resourceManager.GetResourceNames(type))
                {
                    var vm = resourceType.CreateResourceViewModel(resource);
                    resourceType.Resources.Add(vm);
                }
                resources.Add(resourceType);
            }
            return(resources);
        }
Пример #6
0
        public ActionResult PostResourceType(ResourceTypeViewModel resourceTypeView)
        {
            try
            {
                var duplicateCheck = _applicationContext.ResourceType.Where(c => c.Name == resourceTypeView.Name).FirstOrDefault();
                if (duplicateCheck == null)
                {
                    _applicationContext.Add(_mapper.Map <ResourceTypeModel>(resourceTypeView));
                    _applicationContext.SaveChanges();
                    return(Ok(string.Format("New Resource Type '{0}' created", resourceTypeView.Name)));
                }
                else
                {
                    return(BadRequest(new { error = "Duplicate Entry Found" }));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(new { ExceptionEncountered = e.Message }));

                throw;
            }
        }