Changeset 4
Author: cmeschini
(2009/12/17 21:25) About 2 years ago
Abandonada la DI por innecesaria. Ahora se puede cambiar dinamicamente el provider.
Author: cmeschini
(2009/12/17 21:25) About 2 years ago
Abandonada la DI por innecesaria. Ahora se puede cambiar dinamicamente el provider.
<Project>{8D83E74C-4D68-46EE-8480-DC332518AC03}</Project><Project>{BA53F5A9-B32D-4BF5-89E7-7094CB9ED247}</Project><Project>{8BBCB623-8D5C-4EA7-9678-A79D011F4990}</Project><Project>{8BBCB623-8D5C-4EA7-9678-A79D011F4990}</Project>using System.Collections.Generic;using FmwkPoiesis.ObjectSearchProvider.Hql;using System.Linq;using FmwkPoiesis.ObjectSearchProvider.Linq;using System.Text;using Microsoft.Practices.ServiceLocation;{{{{{{{{string outPut = sp.BuildCommandSearch();string outPut = "Generando para " + Poiesis.FrameWork.ObjectSearch.ObjectSearch.DefaultProvider.Name;//using Microsoft.Practices.ServiceLocation;//using CommonServiceLocator.WindsorAdapter;{{public T ValueToCompare { get; set; }public T ValueToCompare { get; set; }public string BuildCommandSearch(IObjectSearchProvider provider, bool isLastElement){{return ObjectSearch.Provider.BuildCommandEqual<T>(this, isLastElement);return provider.BuildCommandEqual<T>(this, isLastElement);<Reference Include="CommonServiceLocator.WindsorAdapter, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"><SpecificVersion>False</SpecificVersion><HintPath>..\..\lib\CommonServiceLocator.WindsorAdapter.dll</HintPath></Reference><Reference Include="Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"><SpecificVersion>False</SpecificVersion><HintPath>..\..\lib\Microsoft.Practices.ServiceLocation.dll</HintPath></Reference>{{string NameProperty { get; }string NameProperty { get; }string BuildCommandSearch(IObjectSearchProvider provider, bool isLastElement);bool And { get; set; }bool And { get; set; }{{{{string Name { get; }//using CommonServiceLocator.WindsorAdapter;//using Microsoft.Practices.ServiceLocation;{{public static IObjectSearchProvider Provider = ServiceLocator.SetLocatorProvider(new WindsorServiceLocator());public static IObjectSearchProvider DefaultProvider { get; set;}{{return ObjectSearch.DefaultProvider;{{{{{sb.Append(Comparators[i].BuildCommandSearch( provider, i == (count - 1)));public T MaxValue { get; set; }public T MaxValue { get; set; }public string BuildCommandSearch(IObjectSearchProvider provider, bool isLastElement){{string command = String.Format("({0} >= {1} and {0} <= {2})",return provider.BuildCommandRange(this, isLastElement);this.NameProperty, this.MinValue.ToString(), this.MaxValue.ToString());if (isLastElement)return command;if (this.And)return command + " and ";elsereturn command + " or ";using Poiesis.FrameWork.ObjectSearch;{{public class HqlObjectSearchProvider : IObjectSearchProvider{{public string BuildCommandEqual<T>(Equal<T> comparator, bool isLast) where T : IComparablepublic string Name{{string command = String.Format("({0} = {1})", comparator.NameProperty, comparator.ValueToCompare.ToString());get { return "HQLProvider"; }}{string command = String.Format("({0} = {1})", comparator.NameProperty, comparator.ValueToCompare.ToString());{string command = String.Format("({0} >= {1} and {0} <= {2})", comparator.NameProperty, comparator.MinValue.ToString(), comparator.MaxValue.ToString());using Poiesis.FrameWork.ObjectSearch;{{public class LinqObjectSearchProvider : IObjectSearchProvider{{{get { return "LinqProvider"; }{{string command = String.Format("({0} = {1})", comparator.NameProperty, comparator.ValueToCompare.ToString());string command = String.Format("|{0} = {1}|", comparator.NameProperty, comparator.ValueToCompare.ToString());if ( isLast){string command = String.Format("|{0} >= {1} and {0} <= {2}|", comparator.NameProperty, comparator.MinValue.ToString(), comparator.MaxValue.ToString() );