Coder Social home page Coder Social logo

bbt.structuretools's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bbt.structuretools's Issues

Reenable DupFinder

With the initial move we disabled the Dup Finder build step.
We should:

  • Reenable Dup Finder
  • Analyze issues, fix or ignore regions

Re-port the entire library

Mistakes were made, lessons were learned. Porting everything to GitHub was way ahead an the current codebase can't work properly as it is now and would break a lot of pre-existing functionality. While I've fixed that it's way better to just replace what has been done with the new code and abandon any issues and pull requests which would only fix a fraction of the issues. This issue can be closed as soon as we're proven ready for a stable version 1.0 and covers mainly of reopening the currently closed source as it undergoes internal testing.

Weird RegisterCopyAttributeWithUpperLimit behaviour with default value as source

Make types public

  • CreateInstanceOfTypeStrategy

  • GenericCopyStrategy

  • CopyCallContext

  • IConvertHelper

  • ICopyHelper

  • CopyCrossReferencedCounterPartDeterminationHelper

  • GenericCreateByBaseAsCriterionStrategy

  • Also, the convert operation interfaces must be public so they can be mocked while testing.

Fix "See link above." refs.

Summaries contain "See link above" refs as documentation.
Those should be replaced by more significant explanations.

Add documentation

The PR #3 doesn't contain documentation. I'll add it afterwards to resolve this isse.

Provide registration method overloads

Numerous registration methods would benefit from overloads with

  • functions which determine source value with arguments source and target
  • functions which determine target property with arguments target and source

With this improvements flexibility is gained and specialized registration methods could be removed.
With the effect that usability is improved.

Compare: RegisterAttributeWithDistinguishedComparer should resolve the comparer from within the IoC

At the moment, IEqualityComparerHelperRegistration.RegisterAttributeWithDistinguishedComparer take an IComparer<TComparer, TIntention> as argument. This is most likely wrong, since we may just resolve the comparer from the ioC from the generic type arguments which are passed into the method anyways.

  • Check if there is a use case where a comparer instance must be set from external
  • Document
  • Adjust tests

Simplify ConvertRegistration methods

create to many / to one methods have generic parameters TTargetValue and TConcreteTargetValue.
Reason: TConcreteTargetValue is used to create a concrete object - a parameterless constructor is assumed.
But how a concrete target value is instantiated should be the responsibility of the CreateConvertHelper class.
The type parameters of convert registration methods should be reduced to TTargetValue with class constraint.

When upgrading to the version including this fix you have to:

  • include BBT.StructueTools.Extensions into your projects
  • register the derived IConvertHelperFactory and ICreateConvertHelper interfaces and generic implementations in your IoC container
  • change IConvertHelperFactory respectively ICreateConvertHelper dependencies to the more specific interfaces
  • if necessary reduce the generic type parameters of ICreateConverHelper and factory (TConcreteTarget is partially removed)

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.