Giter Site home page Giter Site logo

mawax / infobridge.superlinq Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 2.0 1.41 MB

Primarily SuperLinq is a LINQ provider for the NetServer Web Services, more specially for the ArchiveAgent. By default it utilizes the dynamic archive provider to query any table in the SuperOffice database but it can actually be used to query any archive provider.

License: MIT License

C# 100.00%
superoffice-crm superoffice

infobridge.superlinq's Introduction

This project is archived and no longer maintained.

Query provider for SuperOffice CRM (SuperLinq)

SuperLinq is a (linq) query provider for SuperOffice CRM. The goal of the library is to make querying with the NetServer Web Services a lot easier, more straightforward and with less code. By default it utilizes the dynamic archive provider to query any table in the SuperOffice database but it can actually be used to query any archive provider.

Getting started

In order to get started with SuperLinq simply install the NuGet package:

install-package InfoBridge.SuperLinq

Then, make sure you are authenticated with NetServer and start querying:

    List<Contact> contacts = new Queryable<Contact>()
        .Where(x => x.Name.Contains("Super"))
        .ToList();

Documentation

Check out the wiki for documentation and examples.

Requirements

.NET Framework 4.7.1

License

SuperLinq is released under the MIT License.

infobridge.superlinq's People

Contributors

mawax avatar matthijsw avatar troien avatar

Stargazers

 avatar Lars Andreas Ness avatar Jostein Kjønigsen avatar Piotr Błażejewicz (Peter Blazejewicz) avatar Ole Melhus avatar

Watchers

Ole Melhus avatar  avatar  avatar  avatar

infobridge.superlinq's Issues

Extract result parser

Extract the result parser method (ParseResult) in InfoBridge.SuperLinq.Core.ArchivesArchiveManager so it's usable without SuperLinq query builder

The given key was not present in the dictionary when running sample app

Hi,
I believe I've configured the sample correctly (local instance of SO, session is established) when default query in constructed:

var r = new Queryable<Person>().Where(x => x.ContactId == 2).ToList();

(or with samples from SO blog posts) I always receive an error:

{"The given key was not present in the dictionary." System.Exception{System.Collections.Generic.KeyNotFoundException}
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)\r\n   
at SuperOffice.Util.TimeConverter.GetTimeZoneDataById(Int32 timeZoneId) 
in c:\\Builds\\N1\\Seven\\Rel80_C\\Sources\\Server\\Source\\SoCore\\Util\\TimeConverter.cs:line 569\r\n   
at InfoBridge.SuperLinq.Core.Projection.DateTimeConverter.GetTenantDataBaseTimeZone() 
in C:\\dev\\InfoBridge.SuperLinq\\src\\InfoBridge.SuperLinq.Core\\Projection\\DateTimeConverter.cs:line 40\r\n   
at InfoBridge.SuperLinq.Core.Projection.DateTimeConverter.ConvertFromTimeZone(DateTime fromConvertTimeUTC) in
C:\\dev\\InfoBridge.SuperLinq\\src\\InfoBridge.SuperLinq.Core\\Projection\\DateTimeConverter.cs:line 28\r\n   
at InfoBridge.SuperLinq.Core.Archives.ArchiveManager`1.DoTypeSpecificConversion(ArchiveExecutionContext executionContext, ColumnInfo column, Object parsedValue) 
in C:\\dev\\InfoBridge.SuperLinq\\src\\InfoBridge.SuperLinq.Core\\Archives\\ArchiveManager.cs:line 134\r\n   
at InfoBridge.SuperLinq.Core.Archives.ArchiveManager`1.ParseResult(ArchiveExecutionContext executionContext, IList`1 list)
in C:\\dev\\InfoBridge.SuperLinq\\src\\InfoBridge.SuperLinq.Core\\Archives\\ArchiveManager.cs:line 112\r\n   
at InfoBridge.SuperLinq.Core.Archives.ArchiveManager`1.InnerDoQuery(RestrictionBuilderBase restrictionBuilder, OrderByBuilder orderByBuilder, Int32 max, Int32 skip) 
in C:\\dev\\InfoBridge.SuperLinq\\src\\InfoBridge.SuperLinq.Core\\Archives\\ArchiveManager.cs:line 68\r\n   
at InfoBridge.SuperLinq.Core.Archives.ArchiveManager`1.DoQuery(RestrictionBuilderBase restrictionBuilder, OrderByBuilder orderByBuilder, Int32 noItems, Int32 skip)
in C:\\dev\\InfoBridge.SuperLinq\\src\\InfoBridge.SuperLinq.Core\\Archives\\ArchiveManager.cs:line 42\r\n   
at InfoBridge.SuperLinq.Core.LinqProvider.QueryExecutor`1.ExecuteCollection[N](QueryModel queryModel) 
in C:\\dev\\InfoBridge.SuperLinq\\src\\InfoBridge.SuperLinq.Core\\LinqProvider\\QueryExecutor.cs:line 25\r\n  
at Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.ExecuteCollectionQueryModel[T](QueryModel queryModel, IQueryExecutor executor)\r\n   
at Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.ExecuteQueryModel(QueryModel queryModel, IQueryExecutor executor)\r\n   
at Remotion.Linq.QueryModel.Execute(IQueryExecutor executor)\r\n   
at Remotion.Linq.QueryProviderBase.Execute(Expression expression)\r\n   
at Remotion.Linq.QueryProviderBase.System.Linq.IQueryProvider.Execute[TResult](Expression expression)\r\n   
at Remotion.Linq.QueryableBase`1.GetEnumerator()\r\n   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)\r\n   
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)\r\n   
at InfoBridge.SuperLinq.TestApp.Program.Main(String[] args) 
in C:\\dev\\InfoBridge.SuperLinq\\src\\InfoBridge.SuperLinq.TestApp\\Program.cs:line 26

I'm not acustomed with SO context relation to timezone settings - that is somehow prominent in stack trace

Thanks!

OrderTreeVisitor uses incorrect class for building column name

The OrderTreeVisitor uses the DeclaringType as the type of the column name, which could be a base class.

Result when using a model that implements as base model with properties defined in base class:
exception when using orderBy on model which indicates table name of base class cannot be found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.