Пример #1
0
 public static ClientDataSet.EntityFieldDataTable GetEntityField(Guid entityFieldId, Guid organizationId)
 {
     using (EntityFieldTableAdapter adapter = new EntityFieldTableAdapter(OrganizationProvider.GetConnectionString(organizationId)))
     {
         return(adapter.GetEntityField(entityFieldId));
     }
 }
Пример #2
0
        public static void DeleteEntityField(Guid entityFieldId, Guid organizationId)
        {
            using (EntityFieldTableAdapter adapter = new EntityFieldTableAdapter(OrganizationProvider.GetConnectionString(organizationId)))
            {
                adapter.Delete(entityFieldId);
            }

            RemoveFromCache();
        }
Пример #3
0
        public async Task <IActionResult> AuthorSearch(AuthorSearchRequestViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            var authorSearchRequest = viewModel.AuthorSearchRequest;

            var organizationAlternativeNames = OrganizationProvider.GetAlternativeNames(authorSearchRequest.Organization);

            var possibleOrganizations = new List <string>();

            if (!string.IsNullOrEmpty(authorSearchRequest.Organization))
            {
                possibleOrganizations.Add(authorSearchRequest.Organization);
                possibleOrganizations.AddRange(organizationAlternativeNames);
            }

            var profiles = new List <AuthorSearchResult>(await PageParser.GetProfilesFromAuthorSearch(authorSearchRequest.NameSurname, authorSearchRequest.NumberOfRecords, possibleOrganizations));

            IEnumerable <AuthorSearchResult> orderedProfiles = new List <AuthorSearchResult>();

            if (!string.IsNullOrEmpty(authorSearchRequest.Keywords))
            {
                var correlationProfiles = new Dictionary <AuthorSearchResult, double>();

                var lsa          = new LSA(authorSearchRequest.Keywords, profiles.Select(a => string.Join("; ", a.Publications.Select(p => p.Name))));
                var correlations = new List <CorrelationItem>(lsa.GetCorrelations());
                for (var i = 0; i < profiles.Count(); i++)
                {
                    correlationProfiles.Add(profiles[i], correlations[i].Value);
                }

                var orderedCorrelationProfiles = correlationProfiles.OrderByDescending(k => k.Value).ToDictionary(pair => pair.Key, pair => pair.Value);
                orderedProfiles = orderedCorrelationProfiles.Keys;
            }
            else
            {
                orderedProfiles = profiles.OrderByDescending(p => p.HIndex);
            }

            return(View("AuthorSearchResults", new AuthorSearchResultsViewModel
            {
                Authors = orderedProfiles,
                PublicationActivity = viewModel.PublicationActivity,
                IsNum1 = viewModel.IsNum1,
                IsNum2 = viewModel.IsNum2
            }));
        }
Пример #4
0
        public static Guid InsertEntityField(int entityFieldTypeId, string name, string description, int dataTypeId, string defaultValue
                                             , bool allowDBNull, bool unique, int maxLength, string minValue, string maxValue, int decimalDigits, int orderNumber
                                             , Guid entityId, Guid organizationId, Guid?instanceId, bool active)
        {
            ClientDataSet.EntityFieldDataTable table = new ClientDataSet.EntityFieldDataTable();
            ClientDataSet.EntityFieldRow       row   = table.NewEntityFieldRow();

            row.EntityFieldId     = Guid.NewGuid();
            row.EntityFieldTypeId = entityFieldTypeId;
            row.Name        = name;
            row.Description = description;
            row.DataTypeId  = dataTypeId;
            if ((EntityFieldType)entityFieldTypeId == EntityFieldType.Value)
            {
                row.DefaultValue = defaultValue;
            }
            row.AllowDBNull = allowDBNull;
            row.Unique      = unique;
            row.MaxLength   = maxLength;
            if (minValue != null)
            {
                row.MinValue = minValue;
            }
            if (maxValue != null)
            {
                row.MaxValue = maxValue;
            }
            row.DecimalDigits  = decimalDigits;
            row.OrderNumber    = orderNumber;
            row.EntityId       = entityId;
            row.OrganizationId = organizationId;
            if (instanceId.HasValue)
            {
                row.InstanceId = instanceId.Value;
            }
            row.Active = active;

            table.AddEntityFieldRow(row);

            using (EntityFieldTableAdapter adapter = new EntityFieldTableAdapter(OrganizationProvider.GetConnectionString(organizationId)))
            {
                adapter.Update(row);
            }

            RemoveFromCache();

            return(row.EntityFieldId);
        }
Пример #5
0
        public static ClientDataSet.EntityFieldDataTable GetEntityFields(Guid entityId, Guid organizationId, Guid?instanceId, bool?active)
        {
            ClientDataSet.EntityFieldDataTable table = null;
            using (EntityFieldTableAdapter adapter = new EntityFieldTableAdapter(OrganizationProvider.GetConnectionString(organizationId)))
            {
                table = adapter.GetEntityFields(entityId, organizationId, instanceId, active);
            }

            if (!FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances)
            {
                foreach (ClientDataSet.EntityFieldRow row in table.Select(string.Format(CultureInfo.InvariantCulture, "{0} IS NOT NULL", table.InstanceIdColumn.ColumnName)))
                {
                    table.RemoveEntityFieldRow(table.FindByEntityFieldId(row.EntityFieldId));
                }
                table.AcceptChanges();
            }

            return(table);
        }