/// <summary> /// Gets a table field description. /// </summary> /// <param name="fieldId">The field id.</param> public TableFieldDescriptionViewModel GetTableFieldDescription(int fieldId) { SpeciesObservationFieldDescriptionList fields = CoreData.MetadataManager.GetSpeciesObservationFieldDescriptions(UserContext); return((from ISpeciesObservationFieldDescription field in fields where field.Id == fieldId select TableFieldDescriptionViewModel.CreateFromSpeciesObservationFieldDescription(field)).FirstOrDefault()); }
public SpeciesObservationFieldDescriptionList GetSpeciesObservationFieldDescriptions(IUserContext userContext) { SpeciesObservationFieldDescriptionList list = new SpeciesObservationFieldDescriptionList(); SpeciesObservationFieldDescription desc1 = new SpeciesObservationFieldDescription(); list.Add(desc1); return(list); }
/// <summary> /// Groups the project parameters by project dictionary. /// </summary> /// <param name="projectParameterFields">The project parameter fields.</param> /// <returns>Dictionary with projects grouped by project id.</returns> private Dictionary <int, ProjectViewModel> GroupProjectParametersByProjectDictionary( SpeciesObservationFieldDescriptionList projectParameterFields) { Dictionary <int, ProjectViewModel> projectsDictionary = new Dictionary <int, ProjectViewModel>(); if (projectParameterFields == null) { return(null); } var projectParametersDictionary = new Dictionary <int, List <Tuple <ISpeciesObservationFieldDescription, ISpeciesObservationFieldMapping> > >(); var projectSet = new HashSet <ProjectViewModel>(); foreach (var projectParameter in projectParameterFields) { foreach (ISpeciesObservationFieldMapping mapping in projectParameter.Mappings) { if (mapping.ProjectId.HasValue) { if (!projectParametersDictionary.ContainsKey(mapping.ProjectId.Value)) { projectParametersDictionary.Add(mapping.ProjectId.Value, new List <Tuple <ISpeciesObservationFieldDescription, ISpeciesObservationFieldMapping> >()); ProjectViewModel project = new ProjectViewModel { Name = mapping.ProjectName, Id = mapping.ProjectId.Value }; projectSet.Add(project); } projectParametersDictionary[mapping.ProjectId.Value].Add( new Tuple <ISpeciesObservationFieldDescription, ISpeciesObservationFieldMapping>(projectParameter, mapping)); } } } foreach (var projectViewModel in projectSet) { var projectParameterDescriptions = projectParametersDictionary[projectViewModel.Id]; projectViewModel.ProjectParameters = new Dictionary <string, ProjectParameterObservationDetailFieldViewModel>(projectParameterDescriptions.Count); foreach (var fieldDescription in projectParameterDescriptions) { var projectParameter = ProjectParameterObservationDetailFieldViewModel.Create( fieldDescription.Item1, //ISpeciesObservationFieldDescription fieldDescription.Item2); // ISpeciesObservationFieldMapping projectViewModel.ProjectParameters.Add(projectParameter.PropertyIdentifier, projectParameter); } // Order project parameters by its label projectViewModel.ProjectParameters = projectViewModel.ProjectParameters.OrderBy(x => x.Value.Label).ToDictionary(x => x.Key, x => x.Value); projectsDictionary.Add(projectViewModel.Id, projectViewModel); } return(projectsDictionary); }
public void GetSpeciesObservationFieldDescriptions() { SpeciesObservationFieldDescriptionList fieldDescriptionsMappings, list; list = GetMetadataManager(true).GetSpeciesObservationFieldDescriptions(GetUserContext()); Assert.IsTrue(list.Count > 85); Int32 previousSortValue = -1; foreach (ISpeciesObservationFieldDescription field in list) { //Test that all mandatory properties has value for every item. Assert.IsTrue(field.Class.GetName().Length > 1); //Assert.IsTrue(field.Definition.Length > 1); //Assert.IsTrue(field.DocumentationUrl.Length > 1); Assert.IsTrue(field.Guid.Length > 1); Assert.IsNotNull(field.Id); Assert.IsNotNull(field.Importance); Assert.IsNotNull(field.IsAcceptedByTdwg); Assert.IsNotNull(field.IsClass); Assert.IsNotNull(field.IsImplemented); Assert.IsNotNull(field.IsMandatory); Assert.IsNotNull(field.IsMandatoryFromProvider); Assert.IsNotNull(field.IsObtainedFromProvider); Assert.IsNotNull(field.IsPlanned); // Assert.IsTrue(field.Label.Length > 0); // Assert.IsTrue(field.Name.Length > 1); Assert.IsNotNull(field.Type); //Test conditional properties if (field.IsAcceptedByTdwg) { Assert.IsTrue(field.DefinitionUrl.Length > 0); } //Test that SortOrder is correct. Assert.IsTrue(field.SortOrder > previousSortValue); previousSortValue = field.SortOrder; } fieldDescriptionsMappings = new SpeciesObservationFieldDescriptionList(); foreach (ISpeciesObservationFieldDescription fieldDescription in list) { if (fieldDescription.Mappings.IsNotEmpty() && fieldDescription.Mappings.Count < 5) { fieldDescriptionsMappings.Add(fieldDescription); } } Assert.IsTrue(fieldDescriptionsMappings.IsNotEmpty()); }
/// <summary> /// Gets all fields except project parameters. /// </summary> /// <param name="userContext">The user context.</param> /// <returns>All fields except project parameters.</returns> public static SpeciesObservationFieldDescriptionList GetAllFieldsExceptProjectParameters(IUserContext userContext) { SpeciesObservationFieldDescriptionList fields = CoreData.MetadataManager.GetSpeciesObservationFieldDescriptions(userContext); SpeciesObservationFieldDescriptionList allFieldsExceptProjectParameters = new SpeciesObservationFieldDescriptionList(); foreach (var field in fields) { if (!IsFieldProjectParameter(field)) { allFieldsExceptProjectParameters.Add(field); } } return(allFieldsExceptProjectParameters); }
private List <ISpeciesObservationFieldDescription> GetTableFieldsByIds(IUserContext userContext, List <int> fieldIds) { var fieldList = new List <ISpeciesObservationFieldDescription>(); SpeciesObservationFieldDescriptionList fields = CoreData.MetadataManager.GetSpeciesObservationFieldDescriptions(userContext); // create hash set for faster search in foreach loop below. var fieldIdsSet = new HashSet <int>(); foreach (int fieldId in fieldIds) { fieldIdsSet.Add(fieldId); } foreach (ISpeciesObservationFieldDescription field in fields) { if (fieldIdsSet.Contains(field.Id)) { fieldList.Add(field); } } fieldList = fieldList.OrderBy(x => x.SortOrder).ToList(); return(fieldList); }