Explorar o código

CHG Refonte de la partie 'Identites'

olivier.massot %!s(int64=7) %!d(string=hai) anos
pai
achega
9dc25c5af3
Modificáronse 30 ficheiros con 1789 adicións e 483 borrados
  1. 0 6
      CD67.FicheCollege.BDD/CD67.FicheCollege.BDD.sqlproj
  2. 0 2
      CD67.FicheCollege.BDD/Security/FicheCollege_Admin.sql
  3. 0 3
      CD67.FicheCollege.BDD/Security/FicheCollege_Admin_1.sql
  4. 0 2
      CD67.FicheCollege.BDD/Security/FicheCollege_UserRO.sql
  5. 0 2
      CD67.FicheCollege.BDD/Security/FicheCollege_UserRW.sql
  6. 0 14
      CD67.FicheCollege.BDD/Security/RoleMemberships.sql
  7. 10 0
      CD67.FicheCollege.Entity/App.config
  8. 44 1
      CD67.FicheCollege.Entity/CD67.FicheCollege.Entity.csproj
  9. 32 1
      CD67.FicheCollege.Entity/Extend/College.cs
  10. 36 0
      CD67.FicheCollege.Entity/Properties/Settings.Designer.cs
  11. 9 0
      CD67.FicheCollege.Entity/Properties/Settings.settings
  12. 10 0
      CD67.FicheCollege.Entity/Web References/WsAgents/Agent.datasource
  13. 733 0
      CD67.FicheCollege.Entity/Web References/WsAgents/Reference.cs
  14. 7 0
      CD67.FicheCollege.Entity/Web References/WsAgents/Reference.map
  15. 6 0
      CD67.FicheCollege.Entity/Web References/WsAgents/agents.disco
  16. 608 0
      CD67.FicheCollege.Entity/Web References/WsAgents/agents.wsdl
  17. 17 4
      CD67.FicheCollege.Factory/CD67.FicheCollege.Factory.csproj
  18. 18 13
      CD67.FicheCollege.Factory/CollegeFactory.cs
  19. 0 30
      CD67.FicheCollege.Factory/IdentiteFactory.cs
  20. 0 21
      CD67.FicheCollege.Factory/Internal/IdentiteFactory.cs
  21. 26 0
      CD67.FicheCollege.Factory/Properties/Settings.Designer.cs
  22. 5 0
      CD67.FicheCollege.Factory/Properties/Settings.settings
  23. 0 4
      CD67.FicheCollege.MVC/CD67.FicheCollege.MVC.csproj
  24. 6 3
      CD67.FicheCollege.MVC/Controllers/CollegesController.cs
  25. 0 83
      CD67.FicheCollege.MVC/Controllers/IdentitesController.cs
  26. 0 25
      CD67.FicheCollege.MVC/Models/IdentiteViewModel.cs
  27. 91 0
      CD67.FicheCollege.MVC/Views/Colleges/Details.cshtml
  28. 131 8
      CD67.FicheCollege.MVC/Views/Colleges/Edit.cshtml
  29. 0 54
      CD67.FicheCollege.MVC/Views/Identites/Details.cshtml
  30. 0 207
      CD67.FicheCollege.MVC/Views/Identites/Edit.cshtml

+ 0 - 6
CD67.FicheCollege.BDD/CD67.FicheCollege.BDD.sqlproj

@@ -62,7 +62,6 @@
     <Folder Include="Properties" />
     <Folder Include="dbo\" />
     <Folder Include="dbo\Tables\" />
-    <Folder Include="Security\" />
   </ItemGroup>
   <ItemGroup>
     <Build Include="dbo\Tables\ActionsEdu.sql" />
@@ -75,10 +74,5 @@
     <Build Include="dbo\Tables\ActionsEduColleges.sql" />
     <Build Include="dbo\Tables\ActionEduMissions.sql" />
     <Build Include="dbo\Tables\Colleges.sql" />
-    <Build Include="Security\FicheCollege_Admin.sql" />
-    <Build Include="Security\FicheCollege_Admin_1.sql" />
-    <Build Include="Security\FicheCollege_UserRO.sql" />
-    <Build Include="Security\FicheCollege_UserRW.sql" />
-    <Build Include="Security\RoleMemberships.sql" />
   </ItemGroup>
 </Project>

+ 0 - 2
CD67.FicheCollege.BDD/Security/FicheCollege_Admin.sql

@@ -1,2 +0,0 @@
-CREATE USER [FicheCollege_Admin] FOR LOGIN [FicheCollege_Admin];
-

+ 0 - 3
CD67.FicheCollege.BDD/Security/FicheCollege_Admin_1.sql

@@ -1,3 +0,0 @@
-CREATE LOGIN [FicheCollege_Admin]
-    WITH PASSWORD = N'fgc?Faifg&dUlldnvxno|flkmsFT7_&#$!~<t|g9rHabi{aw', SID = 0x1929F35F0DA6274882652B14192B475D, DEFAULT_LANGUAGE = [us_english], CHECK_POLICY = OFF;
-

+ 0 - 2
CD67.FicheCollege.BDD/Security/FicheCollege_UserRO.sql

@@ -1,2 +0,0 @@
-CREATE USER [FicheCollege_UserRO] FOR LOGIN [FicheCollege_UserRO];
-

+ 0 - 2
CD67.FicheCollege.BDD/Security/FicheCollege_UserRW.sql

@@ -1,2 +0,0 @@
-CREATE USER [FicheCollege_UserRW] FOR LOGIN [FicheCollege_UserRW];
-

+ 0 - 14
CD67.FicheCollege.BDD/Security/RoleMemberships.sql

@@ -1,14 +0,0 @@
-ALTER ROLE [db_owner] ADD MEMBER [FicheCollege_Admin];
-
-
-GO
-ALTER ROLE [db_datareader] ADD MEMBER [FicheCollege_UserRO];
-
-
-GO
-ALTER ROLE [db_datareader] ADD MEMBER [FicheCollege_UserRW];
-
-
-GO
-ALTER ROLE [db_datawriter] ADD MEMBER [FicheCollege_UserRW];
-

+ 10 - 0
CD67.FicheCollege.Entity/App.config

@@ -4,6 +4,9 @@
   <configSections>
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
+    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
+      <section name="CD67.FicheCollege.Entity.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+    </sectionGroup>
   </configSections>
   <entityFramework>
     <!-- Suppression du provider par défaut qui stipule SQL server
@@ -26,4 +29,11 @@
   <startup>
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
   </startup>
+  <applicationSettings>
+    <CD67.FicheCollege.Entity.Properties.Settings>
+      <setting name="CD67_FicheCollege_Entity_WsAgents_Agents" serializeAs="String">
+        <value>http://t-referentiel.bas-rhin.fr/webservices/agents.asmx</value>
+      </setting>
+    </CD67.FicheCollege.Entity.Properties.Settings>
+  </applicationSettings>
 </configuration>

+ 44 - 1
CD67.FicheCollege.Entity/CD67.FicheCollege.Entity.csproj

@@ -46,12 +46,14 @@
     <Reference Include="System" />
     <Reference Include="System.ComponentModel.DataAnnotations" />
     <Reference Include="System.Core" />
+    <Reference Include="System.EnterpriseServices" />
     <Reference Include="System.Linq.Dynamic, Version=1.0.6132.35681, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\packages\System.Linq.Dynamic.1.0.7\lib\net40\System.Linq.Dynamic.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.Security" />
+    <Reference Include="System.Web.Services" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
@@ -106,12 +108,22 @@
     <Compile Include="Internal\Entities.cs" />
     <Compile Include="Internal\FormattedDbEntityValidationException.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+      <DependentUpon>Settings.settings</DependentUpon>
+    </Compile>
     <Compile Include="Territoire.cs">
       <DependentUpon>EntityModel.tt</DependentUpon>
     </Compile>
     <Compile Include="TypeCollege.cs">
       <DependentUpon>EntityModel.tt</DependentUpon>
     </Compile>
+    <Compile Include="Web References\WsAgents\Reference.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Reference.map</DependentUpon>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
     <None Include="App.config">
@@ -127,6 +139,18 @@
     <None Include="packages.config">
       <SubType>Designer</SubType>
     </None>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <None Include="Web References\WsAgents\Agent.datasource">
+      <DependentUpon>Reference.map</DependentUpon>
+    </None>
+    <None Include="Web References\WsAgents\agents.wsdl" />
+    <None Include="Web References\WsAgents\Reference.map">
+      <Generator>MSDiscoCodeGenerator</Generator>
+      <LastGenOutput>Reference.cs</LastGenOutput>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
@@ -144,8 +168,27 @@
       <LastGenOutput>EntityModel.cs</LastGenOutput>
     </Content>
     <Content Include="Model_initial_inserts.sql" />
+    <None Include="Web References\WsAgents\agents.disco" />
+  </ItemGroup>
+  <ItemGroup>
+    <WCFMetadata Include="Service References\" />
+  </ItemGroup>
+  <ItemGroup>
+    <WebReferences Include="Web References\" />
+  </ItemGroup>
+  <ItemGroup>
+    <WebReferenceUrl Include="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx">
+      <UrlBehavior>Dynamic</UrlBehavior>
+      <RelPath>Web References\WsAgents\</RelPath>
+      <UpdateFromURL>http://t-referentiel.bas-rhin.fr/webservices/agents.asmx</UpdateFromURL>
+      <ServiceLocationURL>
+      </ServiceLocationURL>
+      <CachedDynamicPropName>
+      </CachedDynamicPropName>
+      <CachedAppSettingsObjectName>Settings</CachedAppSettingsObjectName>
+      <CachedSettingsPropName>CD67_FicheCollege_Entity_WsAgents_Agents</CachedSettingsPropName>
+    </WebReferenceUrl>
   </ItemGroup>
-  <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

+ 32 - 1
CD67.FicheCollege.Entity/Extend/College.cs

@@ -1,4 +1,6 @@
-using System.ComponentModel.DataAnnotations;
+using CD67.FicheCollege.Entity.WsAgents;
+using System;
+using System.ComponentModel.DataAnnotations;
 
 namespace CD67.FicheCollege.Entity
 {
@@ -9,6 +11,35 @@ namespace CD67.FicheCollege.Entity
     public partial class College
     {
         public string AdresseComplete => $"{this.Adresse}\n{this.Code_Postal} {this.Commune}";
+
+        public Agent principal;
+        public Agent adjoint;
+        public Agent gestionnaire1;
+        public Agent gestionnaire2;
+
+        // Charge les données d'identité des agents depuis le web-service
+        public void hydrate()
+        {
+            Entity.WsAgents.Agents wsAgents = new Entity.WsAgents.Agents();
+            wsAgents.UseDefaultCredentials = true;
+
+            if (!String.IsNullOrEmpty(PrincipalSid))
+            {
+                principal = wsAgents.GetById(PrincipalSid);
+            }
+            if (!String.IsNullOrEmpty(AdjointSid))
+            {
+                adjoint = wsAgents.GetById(AdjointSid);
+            }
+            if (!String.IsNullOrEmpty(Gestionnaire1Sid))
+            {
+                gestionnaire1 = wsAgents.GetById(Gestionnaire1Sid);
+            }
+            if (!String.IsNullOrEmpty(Gestionnaire2Sid))
+            {
+                gestionnaire2 = wsAgents.GetById(Gestionnaire2Sid);
+            }
+        }
     }
 
     /// <summary>

+ 36 - 0
CD67.FicheCollege.Entity/Properties/Settings.Designer.cs

@@ -0,0 +1,36 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Ce code a été généré par un outil.
+//     Version du runtime :4.0.30319.42000
+//
+//     Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
+//     le code est régénéré.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace CD67.FicheCollege.Entity.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+        
+        [global::System.Configuration.ApplicationScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)]
+        [global::System.Configuration.DefaultSettingValueAttribute("http://t-referentiel.bas-rhin.fr/webservices/agents.asmx")]
+        public string CD67_FicheCollege_Entity_WsAgents_Agents {
+            get {
+                return ((string)(this["CD67_FicheCollege_Entity_WsAgents_Agents"]));
+            }
+        }
+    }
+}

+ 9 - 0
CD67.FicheCollege.Entity/Properties/Settings.settings

@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="CD67.FicheCollege.Entity.Properties" GeneratedClassName="Settings">
+  <Profiles />
+  <Settings>
+    <Setting Name="CD67_FicheCollege_Entity_WsAgents_Agents" Type="(Web Service URL)" Scope="Application">
+      <Value Profile="(Default)">http://t-referentiel.bas-rhin.fr/webservices/agents.asmx</Value>
+    </Setting>
+  </Settings>
+</SettingsFile>

+ 10 - 0
CD67.FicheCollege.Entity/Web References/WsAgents/Agent.datasource

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="Agent" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>CD67.FicheCollege.Entity.WsAgents.Agent, Web References.WsAgents.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource>

+ 733 - 0
CD67.FicheCollege.Entity/Web References/WsAgents/Reference.cs

@@ -0,0 +1,733 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Ce code a été généré par un outil.
+//     Version du runtime :4.0.30319.42000
+//
+//     Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
+//     le code est régénéré.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+// 
+// Ce code source a été automatiquement généré par Microsoft.VSDesigner, Version 4.0.30319.42000.
+// 
+#pragma warning disable 1591
+
+namespace CD67.FicheCollege.Entity.WsAgents {
+    using System;
+    using System.Web.Services;
+    using System.Diagnostics;
+    using System.Web.Services.Protocols;
+    using System.Xml.Serialization;
+    using System.ComponentModel;
+    
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Web.Services.WebServiceBindingAttribute(Name="AgentsSoap", Namespace="http://tempuri.org/")]
+    public partial class Agents : System.Web.Services.Protocols.SoapHttpClientProtocol {
+        
+        private System.Threading.SendOrPostCallback GetByIdOperationCompleted;
+        
+        private System.Threading.SendOrPostCallback GetByIdsOperationCompleted;
+        
+        private System.Threading.SendOrPostCallback GetByOperationCompleted;
+        
+        private System.Threading.SendOrPostCallback GetAllOperationCompleted;
+        
+        private System.Threading.SendOrPostCallback GetAllSortedOperationCompleted;
+        
+        private System.Threading.SendOrPostCallback GetManyByOperationCompleted;
+        
+        private System.Threading.SendOrPostCallback GetManyBySortedOperationCompleted;
+        
+        private bool useDefaultCredentialsSetExplicitly;
+        
+        /// <remarks/>
+        public Agents() {
+            this.Url = global::CD67.FicheCollege.Entity.Properties.Settings.Default.CD67_FicheCollege_Entity_WsAgents_Agents;
+            if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
+                this.UseDefaultCredentials = true;
+                this.useDefaultCredentialsSetExplicitly = false;
+            }
+            else {
+                this.useDefaultCredentialsSetExplicitly = true;
+            }
+        }
+        
+        public new string Url {
+            get {
+                return base.Url;
+            }
+            set {
+                if ((((this.IsLocalFileSystemWebService(base.Url) == true) 
+                            && (this.useDefaultCredentialsSetExplicitly == false)) 
+                            && (this.IsLocalFileSystemWebService(value) == false))) {
+                    base.UseDefaultCredentials = false;
+                }
+                base.Url = value;
+            }
+        }
+        
+        public new bool UseDefaultCredentials {
+            get {
+                return base.UseDefaultCredentials;
+            }
+            set {
+                base.UseDefaultCredentials = value;
+                this.useDefaultCredentialsSetExplicitly = true;
+            }
+        }
+        
+        /// <remarks/>
+        public event GetByIdCompletedEventHandler GetByIdCompleted;
+        
+        /// <remarks/>
+        public event GetByIdsCompletedEventHandler GetByIdsCompleted;
+        
+        /// <remarks/>
+        public event GetByCompletedEventHandler GetByCompleted;
+        
+        /// <remarks/>
+        public event GetAllCompletedEventHandler GetAllCompleted;
+        
+        /// <remarks/>
+        public event GetAllSortedCompletedEventHandler GetAllSortedCompleted;
+        
+        /// <remarks/>
+        public event GetManyByCompletedEventHandler GetManyByCompleted;
+        
+        /// <remarks/>
+        public event GetManyBySortedCompletedEventHandler GetManyBySortedCompleted;
+        
+        /// <remarks/>
+        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetById", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+        public Agent GetById(string Key) {
+            object[] results = this.Invoke("GetById", new object[] {
+                        Key});
+            return ((Agent)(results[0]));
+        }
+        
+        /// <remarks/>
+        public void GetByIdAsync(string Key) {
+            this.GetByIdAsync(Key, null);
+        }
+        
+        /// <remarks/>
+        public void GetByIdAsync(string Key, object userState) {
+            if ((this.GetByIdOperationCompleted == null)) {
+                this.GetByIdOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetByIdOperationCompleted);
+            }
+            this.InvokeAsync("GetById", new object[] {
+                        Key}, this.GetByIdOperationCompleted, userState);
+        }
+        
+        private void OnGetByIdOperationCompleted(object arg) {
+            if ((this.GetByIdCompleted != null)) {
+                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+                this.GetByIdCompleted(this, new GetByIdCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+            }
+        }
+        
+        /// <remarks/>
+        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetByIds", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+        public Agent[] GetByIds(string[] Keys) {
+            object[] results = this.Invoke("GetByIds", new object[] {
+                        Keys});
+            return ((Agent[])(results[0]));
+        }
+        
+        /// <remarks/>
+        public void GetByIdsAsync(string[] Keys) {
+            this.GetByIdsAsync(Keys, null);
+        }
+        
+        /// <remarks/>
+        public void GetByIdsAsync(string[] Keys, object userState) {
+            if ((this.GetByIdsOperationCompleted == null)) {
+                this.GetByIdsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetByIdsOperationCompleted);
+            }
+            this.InvokeAsync("GetByIds", new object[] {
+                        Keys}, this.GetByIdsOperationCompleted, userState);
+        }
+        
+        private void OnGetByIdsOperationCompleted(object arg) {
+            if ((this.GetByIdsCompleted != null)) {
+                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+                this.GetByIdsCompleted(this, new GetByIdsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+            }
+        }
+        
+        /// <remarks/>
+        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBy", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+        public Agent GetBy(string FilterExpression) {
+            object[] results = this.Invoke("GetBy", new object[] {
+                        FilterExpression});
+            return ((Agent)(results[0]));
+        }
+        
+        /// <remarks/>
+        public void GetByAsync(string FilterExpression) {
+            this.GetByAsync(FilterExpression, null);
+        }
+        
+        /// <remarks/>
+        public void GetByAsync(string FilterExpression, object userState) {
+            if ((this.GetByOperationCompleted == null)) {
+                this.GetByOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetByOperationCompleted);
+            }
+            this.InvokeAsync("GetBy", new object[] {
+                        FilterExpression}, this.GetByOperationCompleted, userState);
+        }
+        
+        private void OnGetByOperationCompleted(object arg) {
+            if ((this.GetByCompleted != null)) {
+                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+                this.GetByCompleted(this, new GetByCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+            }
+        }
+        
+        /// <remarks/>
+        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetAll", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+        public Agent[] GetAll() {
+            object[] results = this.Invoke("GetAll", new object[0]);
+            return ((Agent[])(results[0]));
+        }
+        
+        /// <remarks/>
+        public void GetAllAsync() {
+            this.GetAllAsync(null);
+        }
+        
+        /// <remarks/>
+        public void GetAllAsync(object userState) {
+            if ((this.GetAllOperationCompleted == null)) {
+                this.GetAllOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAllOperationCompleted);
+            }
+            this.InvokeAsync("GetAll", new object[0], this.GetAllOperationCompleted, userState);
+        }
+        
+        private void OnGetAllOperationCompleted(object arg) {
+            if ((this.GetAllCompleted != null)) {
+                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+                this.GetAllCompleted(this, new GetAllCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+            }
+        }
+        
+        /// <remarks/>
+        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetAllSorted", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+        public Agent[] GetAllSorted(string SortField, bool SortAscendant) {
+            object[] results = this.Invoke("GetAllSorted", new object[] {
+                        SortField,
+                        SortAscendant});
+            return ((Agent[])(results[0]));
+        }
+        
+        /// <remarks/>
+        public void GetAllSortedAsync(string SortField, bool SortAscendant) {
+            this.GetAllSortedAsync(SortField, SortAscendant, null);
+        }
+        
+        /// <remarks/>
+        public void GetAllSortedAsync(string SortField, bool SortAscendant, object userState) {
+            if ((this.GetAllSortedOperationCompleted == null)) {
+                this.GetAllSortedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAllSortedOperationCompleted);
+            }
+            this.InvokeAsync("GetAllSorted", new object[] {
+                        SortField,
+                        SortAscendant}, this.GetAllSortedOperationCompleted, userState);
+        }
+        
+        private void OnGetAllSortedOperationCompleted(object arg) {
+            if ((this.GetAllSortedCompleted != null)) {
+                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+                this.GetAllSortedCompleted(this, new GetAllSortedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+            }
+        }
+        
+        /// <remarks/>
+        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetManyBy", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+        public Agent[] GetManyBy(string FilterExpression) {
+            object[] results = this.Invoke("GetManyBy", new object[] {
+                        FilterExpression});
+            return ((Agent[])(results[0]));
+        }
+        
+        /// <remarks/>
+        public void GetManyByAsync(string FilterExpression) {
+            this.GetManyByAsync(FilterExpression, null);
+        }
+        
+        /// <remarks/>
+        public void GetManyByAsync(string FilterExpression, object userState) {
+            if ((this.GetManyByOperationCompleted == null)) {
+                this.GetManyByOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetManyByOperationCompleted);
+            }
+            this.InvokeAsync("GetManyBy", new object[] {
+                        FilterExpression}, this.GetManyByOperationCompleted, userState);
+        }
+        
+        private void OnGetManyByOperationCompleted(object arg) {
+            if ((this.GetManyByCompleted != null)) {
+                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+                this.GetManyByCompleted(this, new GetManyByCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+            }
+        }
+        
+        /// <remarks/>
+        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetManyBySorted", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+        public Agent[] GetManyBySorted(string FilterExpression, string SortField, bool SortAscendant) {
+            object[] results = this.Invoke("GetManyBySorted", new object[] {
+                        FilterExpression,
+                        SortField,
+                        SortAscendant});
+            return ((Agent[])(results[0]));
+        }
+        
+        /// <remarks/>
+        public void GetManyBySortedAsync(string FilterExpression, string SortField, bool SortAscendant) {
+            this.GetManyBySortedAsync(FilterExpression, SortField, SortAscendant, null);
+        }
+        
+        /// <remarks/>
+        public void GetManyBySortedAsync(string FilterExpression, string SortField, bool SortAscendant, object userState) {
+            if ((this.GetManyBySortedOperationCompleted == null)) {
+                this.GetManyBySortedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetManyBySortedOperationCompleted);
+            }
+            this.InvokeAsync("GetManyBySorted", new object[] {
+                        FilterExpression,
+                        SortField,
+                        SortAscendant}, this.GetManyBySortedOperationCompleted, userState);
+        }
+        
+        private void OnGetManyBySortedOperationCompleted(object arg) {
+            if ((this.GetManyBySortedCompleted != null)) {
+                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+                this.GetManyBySortedCompleted(this, new GetManyBySortedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+            }
+        }
+        
+        /// <remarks/>
+        public new void CancelAsync(object userState) {
+            base.CancelAsync(userState);
+        }
+        
+        private bool IsLocalFileSystemWebService(string url) {
+            if (((url == null) 
+                        || (url == string.Empty))) {
+                return false;
+            }
+            System.Uri wsUri = new System.Uri(url);
+            if (((wsUri.Port >= 1024) 
+                        && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
+                return true;
+            }
+            return false;
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.1590.0")]
+    [System.SerializableAttribute()]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
+    public partial class Agent {
+        
+        private string idField;
+        
+        private string loginField;
+        
+        private string nomField;
+        
+        private string prenomField;
+        
+        private string mailField;
+        
+        private string telephoneField;
+        
+        private System.Nullable<System.DateTime> expirationField;
+        
+        private AgentType typeIndividuField;
+        
+        private string organisationField;
+        
+        private System.Nullable<System.Guid> gUIDField;
+        
+        private byte[] sIDField;
+        
+        private string sIDasTextField;
+        
+        private string cheminField;
+        
+        private System.Nullable<bool> actifField;
+        
+        private System.Nullable<System.DateTime> disparitionField;
+        
+        private string employeeIDField;
+        
+        /// <remarks/>
+        public string Id {
+            get {
+                return this.idField;
+            }
+            set {
+                this.idField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string Login {
+            get {
+                return this.loginField;
+            }
+            set {
+                this.loginField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string Nom {
+            get {
+                return this.nomField;
+            }
+            set {
+                this.nomField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string Prenom {
+            get {
+                return this.prenomField;
+            }
+            set {
+                this.prenomField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string Mail {
+            get {
+                return this.mailField;
+            }
+            set {
+                this.mailField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string Telephone {
+            get {
+                return this.telephoneField;
+            }
+            set {
+                this.telephoneField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+        public System.Nullable<System.DateTime> Expiration {
+            get {
+                return this.expirationField;
+            }
+            set {
+                this.expirationField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public AgentType TypeIndividu {
+            get {
+                return this.typeIndividuField;
+            }
+            set {
+                this.typeIndividuField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string Organisation {
+            get {
+                return this.organisationField;
+            }
+            set {
+                this.organisationField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+        public System.Nullable<System.Guid> GUID {
+            get {
+                return this.gUIDField;
+            }
+            set {
+                this.gUIDField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+        public byte[] SID {
+            get {
+                return this.sIDField;
+            }
+            set {
+                this.sIDField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string SIDasText {
+            get {
+                return this.sIDasTextField;
+            }
+            set {
+                this.sIDasTextField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string Chemin {
+            get {
+                return this.cheminField;
+            }
+            set {
+                this.cheminField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+        public System.Nullable<bool> Actif {
+            get {
+                return this.actifField;
+            }
+            set {
+                this.actifField = value;
+            }
+        }
+        
+        /// <remarks/>
+        [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+        public System.Nullable<System.DateTime> Disparition {
+            get {
+                return this.disparitionField;
+            }
+            set {
+                this.disparitionField = value;
+            }
+        }
+        
+        /// <remarks/>
+        public string EmployeeID {
+            get {
+                return this.employeeIDField;
+            }
+            set {
+                this.employeeIDField = value;
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.6.1590.0")]
+    [System.SerializableAttribute()]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
+    public enum AgentType {
+        
+        /// <remarks/>
+        Agent,
+        
+        /// <remarks/>
+        PartenaireProche,
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    public delegate void GetByIdCompletedEventHandler(object sender, GetByIdCompletedEventArgs e);
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    public partial class GetByIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        internal GetByIdCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        /// <remarks/>
+        public Agent Result {
+            get {
+                this.RaiseExceptionIfNecessary();
+                return ((Agent)(this.results[0]));
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    public delegate void GetByIdsCompletedEventHandler(object sender, GetByIdsCompletedEventArgs e);
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    public partial class GetByIdsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        internal GetByIdsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        /// <remarks/>
+        public Agent[] Result {
+            get {
+                this.RaiseExceptionIfNecessary();
+                return ((Agent[])(this.results[0]));
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    public delegate void GetByCompletedEventHandler(object sender, GetByCompletedEventArgs e);
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    public partial class GetByCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        internal GetByCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        /// <remarks/>
+        public Agent Result {
+            get {
+                this.RaiseExceptionIfNecessary();
+                return ((Agent)(this.results[0]));
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    public delegate void GetAllCompletedEventHandler(object sender, GetAllCompletedEventArgs e);
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    public partial class GetAllCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        internal GetAllCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        /// <remarks/>
+        public Agent[] Result {
+            get {
+                this.RaiseExceptionIfNecessary();
+                return ((Agent[])(this.results[0]));
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    public delegate void GetAllSortedCompletedEventHandler(object sender, GetAllSortedCompletedEventArgs e);
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    public partial class GetAllSortedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        internal GetAllSortedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        /// <remarks/>
+        public Agent[] Result {
+            get {
+                this.RaiseExceptionIfNecessary();
+                return ((Agent[])(this.results[0]));
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    public delegate void GetManyByCompletedEventHandler(object sender, GetManyByCompletedEventArgs e);
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    public partial class GetManyByCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        internal GetManyByCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        /// <remarks/>
+        public Agent[] Result {
+            get {
+                this.RaiseExceptionIfNecessary();
+                return ((Agent[])(this.results[0]));
+            }
+        }
+    }
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    public delegate void GetManyBySortedCompletedEventHandler(object sender, GetManyBySortedCompletedEventArgs e);
+    
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1590.0")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    public partial class GetManyBySortedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        internal GetManyBySortedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        /// <remarks/>
+        public Agent[] Result {
+            get {
+                this.RaiseExceptionIfNecessary();
+                return ((Agent[])(this.results[0]));
+            }
+        }
+    }
+}
+
+#pragma warning restore 1591

+ 7 - 0
CD67.FicheCollege.Entity/Web References/WsAgents/Reference.map

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Results>
+    <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx?wsdl" filename="agents.wsdl" />
+    <DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx?disco" filename="agents.disco" />
+  </Results>
+</DiscoveryClientResultsFile>

+ 6 - 0
CD67.FicheCollege.Entity/Web References/WsAgents/agents.disco

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
+  <contractRef ref="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx?wsdl" docRef="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
+  <soap address="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx" xmlns:q1="http://tempuri.org/" binding="q1:AgentsSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
+  <soap address="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx" xmlns:q2="http://tempuri.org/" binding="q2:AgentsSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
+</discovery>

+ 608 - 0
CD67.FicheCollege.Entity/Web References/WsAgents/agents.wsdl

@@ -0,0 +1,608 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s1="http://microsoft.com/wsdl/types/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+  <wsdl:types>
+    <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
+      <s:import namespace="http://microsoft.com/wsdl/types/" />
+      <s:element name="GetById">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="Key" type="s:string" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetByIdResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="GetByIdResult" type="tns:Agent" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:complexType name="Agent">
+        <s:sequence>
+          <s:element minOccurs="0" maxOccurs="1" name="Id" type="s:string" />
+          <s:element minOccurs="0" maxOccurs="1" name="Login" type="s:string" />
+          <s:element minOccurs="0" maxOccurs="1" name="Nom" type="s:string" />
+          <s:element minOccurs="0" maxOccurs="1" name="Prenom" type="s:string" />
+          <s:element minOccurs="0" maxOccurs="1" name="Mail" type="s:string" />
+          <s:element minOccurs="0" maxOccurs="1" name="Telephone" type="s:string" />
+          <s:element minOccurs="1" maxOccurs="1" name="Expiration" nillable="true" type="s:dateTime" />
+          <s:element minOccurs="1" maxOccurs="1" name="TypeIndividu" type="tns:AgentType" />
+          <s:element minOccurs="0" maxOccurs="1" name="Organisation" type="s:string" />
+          <s:element minOccurs="1" maxOccurs="1" name="GUID" nillable="true" type="s1:guid" />
+          <s:element minOccurs="0" maxOccurs="1" name="SID" type="s:base64Binary" />
+          <s:element minOccurs="0" maxOccurs="1" name="SIDasText" type="s:string" />
+          <s:element minOccurs="0" maxOccurs="1" name="Chemin" type="s:string" />
+          <s:element minOccurs="1" maxOccurs="1" name="Actif" nillable="true" type="s:boolean" />
+          <s:element minOccurs="1" maxOccurs="1" name="Disparition" nillable="true" type="s:dateTime" />
+          <s:element minOccurs="0" maxOccurs="1" name="EmployeeID" type="s:string" />
+        </s:sequence>
+      </s:complexType>
+      <s:simpleType name="AgentType">
+        <s:restriction base="s:string">
+          <s:enumeration value="Agent" />
+          <s:enumeration value="PartenaireProche" />
+        </s:restriction>
+      </s:simpleType>
+      <s:element name="GetByIds">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="Keys" type="tns:ArrayOfString" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:complexType name="ArrayOfString">
+        <s:sequence>
+          <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
+        </s:sequence>
+      </s:complexType>
+      <s:element name="GetByIdsResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="GetByIdsResult" type="tns:ArrayOfAgent" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:complexType name="ArrayOfAgent">
+        <s:sequence>
+          <s:element minOccurs="0" maxOccurs="unbounded" name="Agent" nillable="true" type="tns:Agent" />
+        </s:sequence>
+      </s:complexType>
+      <s:element name="GetBy">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="FilterExpression" type="s:string" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetByResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="GetByResult" type="tns:Agent" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetAll">
+        <s:complexType />
+      </s:element>
+      <s:element name="GetAllResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="GetAllResult" type="tns:ArrayOfAgent" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetAllSorted">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="SortField" type="s:string" />
+            <s:element minOccurs="1" maxOccurs="1" name="SortAscendant" type="s:boolean" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetAllSortedResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="GetAllSortedResult" type="tns:ArrayOfAgent" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetManyBy">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="FilterExpression" type="s:string" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetManyByResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="GetManyByResult" type="tns:ArrayOfAgent" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetManyBySorted">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="FilterExpression" type="s:string" />
+            <s:element minOccurs="0" maxOccurs="1" name="SortField" type="s:string" />
+            <s:element minOccurs="1" maxOccurs="1" name="SortAscendant" type="s:boolean" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="GetManyBySortedResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element minOccurs="0" maxOccurs="1" name="GetManyBySortedResult" type="tns:ArrayOfAgent" />
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="Agent" nillable="true" type="tns:Agent" />
+      <s:element name="ArrayOfAgent" nillable="true" type="tns:ArrayOfAgent" />
+    </s:schema>
+    <s:schema elementFormDefault="qualified" targetNamespace="http://microsoft.com/wsdl/types/">
+      <s:simpleType name="guid">
+        <s:restriction base="s:string">
+          <s:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" />
+        </s:restriction>
+      </s:simpleType>
+    </s:schema>
+  </wsdl:types>
+  <wsdl:message name="GetByIdSoapIn">
+    <wsdl:part name="parameters" element="tns:GetById" />
+  </wsdl:message>
+  <wsdl:message name="GetByIdSoapOut">
+    <wsdl:part name="parameters" element="tns:GetByIdResponse" />
+  </wsdl:message>
+  <wsdl:message name="GetByIdsSoapIn">
+    <wsdl:part name="parameters" element="tns:GetByIds" />
+  </wsdl:message>
+  <wsdl:message name="GetByIdsSoapOut">
+    <wsdl:part name="parameters" element="tns:GetByIdsResponse" />
+  </wsdl:message>
+  <wsdl:message name="GetBySoapIn">
+    <wsdl:part name="parameters" element="tns:GetBy" />
+  </wsdl:message>
+  <wsdl:message name="GetBySoapOut">
+    <wsdl:part name="parameters" element="tns:GetByResponse" />
+  </wsdl:message>
+  <wsdl:message name="GetAllSoapIn">
+    <wsdl:part name="parameters" element="tns:GetAll" />
+  </wsdl:message>
+  <wsdl:message name="GetAllSoapOut">
+    <wsdl:part name="parameters" element="tns:GetAllResponse" />
+  </wsdl:message>
+  <wsdl:message name="GetAllSortedSoapIn">
+    <wsdl:part name="parameters" element="tns:GetAllSorted" />
+  </wsdl:message>
+  <wsdl:message name="GetAllSortedSoapOut">
+    <wsdl:part name="parameters" element="tns:GetAllSortedResponse" />
+  </wsdl:message>
+  <wsdl:message name="GetManyBySoapIn">
+    <wsdl:part name="parameters" element="tns:GetManyBy" />
+  </wsdl:message>
+  <wsdl:message name="GetManyBySoapOut">
+    <wsdl:part name="parameters" element="tns:GetManyByResponse" />
+  </wsdl:message>
+  <wsdl:message name="GetManyBySortedSoapIn">
+    <wsdl:part name="parameters" element="tns:GetManyBySorted" />
+  </wsdl:message>
+  <wsdl:message name="GetManyBySortedSoapOut">
+    <wsdl:part name="parameters" element="tns:GetManyBySortedResponse" />
+  </wsdl:message>
+  <wsdl:message name="GetByIdHttpGetIn">
+    <wsdl:part name="Key" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetByIdHttpGetOut">
+    <wsdl:part name="Body" element="tns:Agent" />
+  </wsdl:message>
+  <wsdl:message name="GetByHttpGetIn">
+    <wsdl:part name="FilterExpression" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetByHttpGetOut">
+    <wsdl:part name="Body" element="tns:Agent" />
+  </wsdl:message>
+  <wsdl:message name="GetAllHttpGetIn" />
+  <wsdl:message name="GetAllHttpGetOut">
+    <wsdl:part name="Body" element="tns:ArrayOfAgent" />
+  </wsdl:message>
+  <wsdl:message name="GetAllSortedHttpGetIn">
+    <wsdl:part name="SortField" type="s:string" />
+    <wsdl:part name="SortAscendant" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetAllSortedHttpGetOut">
+    <wsdl:part name="Body" element="tns:ArrayOfAgent" />
+  </wsdl:message>
+  <wsdl:message name="GetManyByHttpGetIn">
+    <wsdl:part name="FilterExpression" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetManyByHttpGetOut">
+    <wsdl:part name="Body" element="tns:ArrayOfAgent" />
+  </wsdl:message>
+  <wsdl:message name="GetManyBySortedHttpGetIn">
+    <wsdl:part name="FilterExpression" type="s:string" />
+    <wsdl:part name="SortField" type="s:string" />
+    <wsdl:part name="SortAscendant" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetManyBySortedHttpGetOut">
+    <wsdl:part name="Body" element="tns:ArrayOfAgent" />
+  </wsdl:message>
+  <wsdl:message name="GetByIdHttpPostIn">
+    <wsdl:part name="Key" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetByIdHttpPostOut">
+    <wsdl:part name="Body" element="tns:Agent" />
+  </wsdl:message>
+  <wsdl:message name="GetByHttpPostIn">
+    <wsdl:part name="FilterExpression" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetByHttpPostOut">
+    <wsdl:part name="Body" element="tns:Agent" />
+  </wsdl:message>
+  <wsdl:message name="GetAllHttpPostIn" />
+  <wsdl:message name="GetAllHttpPostOut">
+    <wsdl:part name="Body" element="tns:ArrayOfAgent" />
+  </wsdl:message>
+  <wsdl:message name="GetAllSortedHttpPostIn">
+    <wsdl:part name="SortField" type="s:string" />
+    <wsdl:part name="SortAscendant" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetAllSortedHttpPostOut">
+    <wsdl:part name="Body" element="tns:ArrayOfAgent" />
+  </wsdl:message>
+  <wsdl:message name="GetManyByHttpPostIn">
+    <wsdl:part name="FilterExpression" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetManyByHttpPostOut">
+    <wsdl:part name="Body" element="tns:ArrayOfAgent" />
+  </wsdl:message>
+  <wsdl:message name="GetManyBySortedHttpPostIn">
+    <wsdl:part name="FilterExpression" type="s:string" />
+    <wsdl:part name="SortField" type="s:string" />
+    <wsdl:part name="SortAscendant" type="s:string" />
+  </wsdl:message>
+  <wsdl:message name="GetManyBySortedHttpPostOut">
+    <wsdl:part name="Body" element="tns:ArrayOfAgent" />
+  </wsdl:message>
+  <wsdl:portType name="AgentsSoap">
+    <wsdl:operation name="GetById">
+      <wsdl:input message="tns:GetByIdSoapIn" />
+      <wsdl:output message="tns:GetByIdSoapOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetByIds">
+      <wsdl:input message="tns:GetByIdsSoapIn" />
+      <wsdl:output message="tns:GetByIdsSoapOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetBy">
+      <wsdl:input message="tns:GetBySoapIn" />
+      <wsdl:output message="tns:GetBySoapOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetAll">
+      <wsdl:input message="tns:GetAllSoapIn" />
+      <wsdl:output message="tns:GetAllSoapOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetAllSorted">
+      <wsdl:input message="tns:GetAllSortedSoapIn" />
+      <wsdl:output message="tns:GetAllSortedSoapOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBy">
+      <wsdl:input message="tns:GetManyBySoapIn" />
+      <wsdl:output message="tns:GetManyBySoapOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBySorted">
+      <wsdl:input message="tns:GetManyBySortedSoapIn" />
+      <wsdl:output message="tns:GetManyBySortedSoapOut" />
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:portType name="AgentsHttpGet">
+    <wsdl:operation name="GetById">
+      <wsdl:input message="tns:GetByIdHttpGetIn" />
+      <wsdl:output message="tns:GetByIdHttpGetOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetBy">
+      <wsdl:input message="tns:GetByHttpGetIn" />
+      <wsdl:output message="tns:GetByHttpGetOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetAll">
+      <wsdl:input message="tns:GetAllHttpGetIn" />
+      <wsdl:output message="tns:GetAllHttpGetOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetAllSorted">
+      <wsdl:input message="tns:GetAllSortedHttpGetIn" />
+      <wsdl:output message="tns:GetAllSortedHttpGetOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBy">
+      <wsdl:input message="tns:GetManyByHttpGetIn" />
+      <wsdl:output message="tns:GetManyByHttpGetOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBySorted">
+      <wsdl:input message="tns:GetManyBySortedHttpGetIn" />
+      <wsdl:output message="tns:GetManyBySortedHttpGetOut" />
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:portType name="AgentsHttpPost">
+    <wsdl:operation name="GetById">
+      <wsdl:input message="tns:GetByIdHttpPostIn" />
+      <wsdl:output message="tns:GetByIdHttpPostOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetBy">
+      <wsdl:input message="tns:GetByHttpPostIn" />
+      <wsdl:output message="tns:GetByHttpPostOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetAll">
+      <wsdl:input message="tns:GetAllHttpPostIn" />
+      <wsdl:output message="tns:GetAllHttpPostOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetAllSorted">
+      <wsdl:input message="tns:GetAllSortedHttpPostIn" />
+      <wsdl:output message="tns:GetAllSortedHttpPostOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBy">
+      <wsdl:input message="tns:GetManyByHttpPostIn" />
+      <wsdl:output message="tns:GetManyByHttpPostOut" />
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBySorted">
+      <wsdl:input message="tns:GetManyBySortedHttpPostIn" />
+      <wsdl:output message="tns:GetManyBySortedHttpPostOut" />
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="AgentsSoap" type="tns:AgentsSoap">
+    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
+    <wsdl:operation name="GetById">
+      <soap:operation soapAction="http://tempuri.org/GetById" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetByIds">
+      <soap:operation soapAction="http://tempuri.org/GetByIds" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetBy">
+      <soap:operation soapAction="http://tempuri.org/GetBy" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetAll">
+      <soap:operation soapAction="http://tempuri.org/GetAll" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetAllSorted">
+      <soap:operation soapAction="http://tempuri.org/GetAllSorted" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBy">
+      <soap:operation soapAction="http://tempuri.org/GetManyBy" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBySorted">
+      <soap:operation soapAction="http://tempuri.org/GetManyBySorted" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:binding name="AgentsSoap12" type="tns:AgentsSoap">
+    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
+    <wsdl:operation name="GetById">
+      <soap12:operation soapAction="http://tempuri.org/GetById" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetByIds">
+      <soap12:operation soapAction="http://tempuri.org/GetByIds" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetBy">
+      <soap12:operation soapAction="http://tempuri.org/GetBy" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetAll">
+      <soap12:operation soapAction="http://tempuri.org/GetAll" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetAllSorted">
+      <soap12:operation soapAction="http://tempuri.org/GetAllSorted" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBy">
+      <soap12:operation soapAction="http://tempuri.org/GetManyBy" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBySorted">
+      <soap12:operation soapAction="http://tempuri.org/GetManyBySorted" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:binding name="AgentsHttpGet" type="tns:AgentsHttpGet">
+    <http:binding verb="GET" />
+    <wsdl:operation name="GetById">
+      <http:operation location="/GetById" />
+      <wsdl:input>
+        <http:urlEncoded />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetBy">
+      <http:operation location="/GetBy" />
+      <wsdl:input>
+        <http:urlEncoded />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetAll">
+      <http:operation location="/GetAll" />
+      <wsdl:input>
+        <http:urlEncoded />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetAllSorted">
+      <http:operation location="/GetAllSorted" />
+      <wsdl:input>
+        <http:urlEncoded />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBy">
+      <http:operation location="/GetManyBy" />
+      <wsdl:input>
+        <http:urlEncoded />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBySorted">
+      <http:operation location="/GetManyBySorted" />
+      <wsdl:input>
+        <http:urlEncoded />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:binding name="AgentsHttpPost" type="tns:AgentsHttpPost">
+    <http:binding verb="POST" />
+    <wsdl:operation name="GetById">
+      <http:operation location="/GetById" />
+      <wsdl:input>
+        <mime:content type="application/x-www-form-urlencoded" />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetBy">
+      <http:operation location="/GetBy" />
+      <wsdl:input>
+        <mime:content type="application/x-www-form-urlencoded" />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetAll">
+      <http:operation location="/GetAll" />
+      <wsdl:input>
+        <mime:content type="application/x-www-form-urlencoded" />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetAllSorted">
+      <http:operation location="/GetAllSorted" />
+      <wsdl:input>
+        <mime:content type="application/x-www-form-urlencoded" />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBy">
+      <http:operation location="/GetManyBy" />
+      <wsdl:input>
+        <mime:content type="application/x-www-form-urlencoded" />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetManyBySorted">
+      <http:operation location="/GetManyBySorted" />
+      <wsdl:input>
+        <mime:content type="application/x-www-form-urlencoded" />
+      </wsdl:input>
+      <wsdl:output>
+        <mime:mimeXml part="Body" />
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="Agents">
+    <wsdl:port name="AgentsSoap" binding="tns:AgentsSoap">
+      <soap:address location="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx" />
+    </wsdl:port>
+    <wsdl:port name="AgentsSoap12" binding="tns:AgentsSoap12">
+      <soap12:address location="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx" />
+    </wsdl:port>
+    <wsdl:port name="AgentsHttpGet" binding="tns:AgentsHttpGet">
+      <http:address location="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx" />
+    </wsdl:port>
+    <wsdl:port name="AgentsHttpPost" binding="tns:AgentsHttpPost">
+      <http:address location="http://t-referentiel.bas-rhin.fr/webservices/agents.asmx" />
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>

+ 17 - 4
CD67.FicheCollege.Factory/CD67.FicheCollege.Factory.csproj

@@ -42,11 +42,13 @@
     <Reference Include="System" />
     <Reference Include="System.ComponentModel.DataAnnotations" />
     <Reference Include="System.Core" />
+    <Reference Include="System.EnterpriseServices" />
     <Reference Include="System.Linq.Dynamic, Version=1.0.6132.35681, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\packages\System.Linq.Dynamic.1.0.7\lib\net40\System.Linq.Dynamic.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.Web.Services" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
@@ -58,7 +60,6 @@
     <Compile Include="ActionEduThematiqueFactory.cs" />
     <Compile Include="AnneeFactory.cs" />
     <Compile Include="CollegeFactory.cs" />
-    <Compile Include="IdentiteFactory.cs" />
     <Compile Include="Internal\ActionEduAxeFactory.cs">
       <DependentUpon>GenericFactories.tt</DependentUpon>
     </Compile>
@@ -86,9 +87,6 @@
       <DependentUpon>GenericFactories.tt</DependentUpon>
     </Compile>
     <Compile Include="Internal\BaseFactory.cs" />
-    <Compile Include="Internal\IdentiteFactory.cs">
-      <DependentUpon>GenericFactories.tt</DependentUpon>
-    </Compile>
     <Compile Include="Internal\TerritoireFactory.cs">
       <DependentUpon>GenericFactories.tt</DependentUpon>
     </Compile>
@@ -96,6 +94,11 @@
       <DependentUpon>GenericFactories.tt</DependentUpon>
     </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+      <DependentUpon>Settings.settings</DependentUpon>
+    </Compile>
     <Compile Include="TerritoireFactory.cs" />
     <Compile Include="ActionEduAxeFactory.cs" />
     <Compile Include="TypeCollegeFactory.cs" />
@@ -105,6 +108,10 @@
       <SubType>Designer</SubType>
     </None>
     <None Include="packages.config" />
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\CD67.FicheCollege.Entity\CD67.FicheCollege.Entity.csproj">
@@ -121,6 +128,12 @@
   <ItemGroup>
     <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
   </ItemGroup>
+  <ItemGroup>
+    <WCFMetadata Include="Service References\" />
+  </ItemGroup>
+  <ItemGroup>
+    <WebReferences Include="Web References\" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

+ 18 - 13
CD67.FicheCollege.Factory/CollegeFactory.cs

@@ -9,19 +9,24 @@ namespace CD67.FicheCollege.Factory
 {
     public partial class CollegeFactory : Internal.BaseFactory<Entity.College>
     {
-        public override void delete(ref College entity)
-        {
-            //Suppression en cascade
-            //Identité
-            IdentiteFactory identiteFactory = new IdentiteFactory(dbContext);
-            if (entity.Identite == null) dbContext.Entry(entity).Reference(i => i.Identite).Load();
-            if (entity.Identite != null)
-            {
-                Entity.Identite identite = entity.Identite;
-                identiteFactory.delete(ref identite);
-            }
+        //// Charge les données d'identité des agents depuis le web-service
+        //public void hydrate(ref College college)
+        //{
+        //    Entity.WsAgents.Agents wsAgents = new Entity.WsAgents.Agents();
+            
+        //    if (!String.IsNullOrEmpty(college.PrincipalSid)) {
+        //        college.principal = wsAgents.GetById(college.PrincipalSid);
+        //    }
+        //    if (!String.IsNullOrEmpty(college.AdjointSid)) {
+        //        college.adjoint = wsAgents.GetById(college.AdjointSid);
+        //    }
+        //    if (!String.IsNullOrEmpty(college.Gestionnaire1Sid)) {
+        //        college.gestionnaire1 = wsAgents.GetById(college.Gestionnaire1Sid);
+        //    }
+        //    if (!String.IsNullOrEmpty(college.Gestionnaire2Sid)) {
+        //        college.gestionnaire2 = wsAgents.GetById(college.Gestionnaire2Sid);
+        //    }
+        //}
 
-            base.delete(ref entity);
-        }
     }
 }

+ 0 - 30
CD67.FicheCollege.Factory/IdentiteFactory.cs

@@ -1,30 +0,0 @@
-using CD67.FicheCollege.Entity;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Data.Entity;
-
-namespace CD67.FicheCollege.Factory
-{
-    public partial class IdentiteFactory : Internal.BaseFactory<Entity.Identite>
-    {
-        public override Identite getById(params object[] keyValues)
-        {
-            //si l'élément n'existe pas, on le créé
-            Entity.Identite item = base.getById(keyValues);
-            if(item ==null)
-            {
-                int id = (int)keyValues[0];
-                item = new Identite()
-                {
-                    College_Id = id
-                };
-                this.add(ref item);
-                dbContext.Entry(item).Reference(i => i.College).Load();
-            }
-
-            return item;
-        }
-    }
-}

+ 0 - 21
CD67.FicheCollege.Factory/Internal/IdentiteFactory.cs

@@ -1,21 +0,0 @@
-using CD67.FicheCollege.Entity;
-using System.Linq;
-
-namespace CD67.FicheCollege.Factory
-{
-	/// <summary>
-    /// NE PAS MODIFIER
-    /// C'est une classe partielle, elle peut être complétée avec une classe partielle du même nom
-    /// Factory générée automatiquement à l'aide du fichier GenericFactories.tt
-    /// pour toutes les entités du fichier entity : /CD67.FicheCollege.Entity/EntityModel.edmx
-    /// </summary>
-	public partial class IdentiteFactory : Internal.BaseFactory<Entity.Identite>
-	{
-		/// <summary>
-        /// Constructeur public lié au constructeur de base
-        /// </summary>
-        /// <param name="dbContext">Context Entity Framework utilisé dans la classe</param>
-		public IdentiteFactory(Entities dbContext) : base(dbContext) { }
-	}
-}
-	

+ 26 - 0
CD67.FicheCollege.Factory/Properties/Settings.Designer.cs

@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Ce code a été généré par un outil.
+//     Version du runtime :4.0.30319.42000
+//
+//     Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
+//     le code est régénéré.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace CD67.FicheCollege.Factory.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+    }
+}

+ 5 - 0
CD67.FicheCollege.Factory/Properties/Settings.settings

@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles />
+  <Settings />
+</SettingsFile>

+ 0 - 4
CD67.FicheCollege.MVC/CD67.FicheCollege.MVC.csproj

@@ -165,7 +165,6 @@
     <Compile Include="Controllers\GestionActionsController.cs" />
     <Compile Include="Controllers\AnneesController.cs" />
     <Compile Include="Controllers\HomeController.cs" />
-    <Compile Include="Controllers\IdentitesController.cs" />
     <Compile Include="Controllers\TerritoireController.cs" />
     <Compile Include="Controllers\TypeCollegeController.cs" />
     <Compile Include="Global.asax.cs">
@@ -183,7 +182,6 @@
     <Compile Include="Models\TerritoireViewModel.cs" />
     <Compile Include="Models\TypeCollegeViewModel.cs" />
     <Compile Include="Models\ActionEduViewModel.cs" />
-    <Compile Include="Models\IdentiteViewModel.cs" />
     <Compile Include="Models\CollegeViewModel.cs" />
     <Compile Include="Models\AnneeViewModel.cs" />
     <Compile Include="Models\ContactViewModel.cs" />
@@ -415,8 +413,6 @@
     <Content Include="Views\Territoire\Index.cshtml" />
     <Content Include="Views\Colleges\Details.cshtml" />
     <Content Include="Views\Colleges\Edit.cshtml" />
-    <Content Include="Views\Identites\Details.cshtml" />
-    <Content Include="Views\Identites\Edit.cshtml" />
     <Content Include="Views\Annees\Details.cshtml" />
     <Content Include="Views\Annees\Index.cshtml" />
     <Content Include="Views\Colleges\Index.cshtml" />

+ 6 - 3
CD67.FicheCollege.MVC/Controllers/CollegesController.cs

@@ -38,6 +38,7 @@ namespace CD67.FicheCollege.MVC.Controllers
                 return HttpNotFound();
             }
 
+            college.hydrate();
             CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Lecture);
 
             return View(model);
@@ -54,6 +55,7 @@ namespace CD67.FicheCollege.MVC.Controllers
             college.Annee_Id = annee_id.Value;
             AnneeFactory fact = new AnneeFactory(db);
             college.Annee = fact.getById(annee_id);
+            college.hydrate();
 
             CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Creation);
 
@@ -74,6 +76,7 @@ namespace CD67.FicheCollege.MVC.Controllers
                 return RedirectToAction("Details", new { id = college.Id });
             }
 
+            college.hydrate();
             CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Creation);
 
             return View("Edit", model);
@@ -88,7 +91,7 @@ namespace CD67.FicheCollege.MVC.Controllers
             {
                 return HttpNotFound();
             }
-
+            college.hydrate();
             CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Modification);
 
             return View(model);
@@ -107,7 +110,7 @@ namespace CD67.FicheCollege.MVC.Controllers
                 collegeFactory.update(ref college);
                 return RedirectToAction("Details", new { Id = college.Id });
             }
-
+            college.hydrate();
             CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Modification);
 
             return View(model);
@@ -126,7 +129,7 @@ namespace CD67.FicheCollege.MVC.Controllers
             {
                 return HttpNotFound();
             }
-
+            college.hydrate();
             CollegeViewModel model = new CollegeViewModel(college, db, ModeAcces.Suppression);
 
             return View("Details", model);

+ 0 - 83
CD67.FicheCollege.MVC/Controllers/IdentitesController.cs

@@ -1,83 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Data.Entity;
-using System.Linq;
-using System.Net;
-using System.Web;
-using System.Web.Mvc;
-using CD67.FicheCollege.Entity;
-using CD67.FicheCollege.Factory;
-using CD67.FicheCollege.MVC.Models;
-
-namespace CD67.FicheCollege.MVC.Controllers
-{
-    public class IdentitesController : Controller
-    {
-        private Entities db = new Entities();
-
-        // GET: Identite/Details/5
-        public ActionResult Details(int? id)
-        {
-            if (id == null)
-            {
-                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
-            }
-            IdentiteFactory identiteFactory = new IdentiteFactory(db);
-            Entity.Identite identite = identiteFactory.getById(id);
-            if (identite == null)
-            {
-                return HttpNotFound();
-            }
-
-            IdentiteViewModel model = new IdentiteViewModel(identite);
-
-            return View(model);
-        }
-
-        // GET: Identite/Edit/5
-        public ActionResult Edit(int? id)
-        {
-            if (id == null)
-            {
-                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
-            }
-            IdentiteFactory identiteFactory = new IdentiteFactory(db);
-            Entity.Identite identite = identiteFactory.getById(id);
-            if (identite == null)
-            {
-                return HttpNotFound();
-            }
-
-            IdentiteViewModel model = new IdentiteViewModel(identite, ModeAcces.Modification);
-            return View(model);
-        }
-
-        // POST: Identite/Edit/5
-        // Afin de déjouer les attaques par sur-validation, activez les propriétés spécifiques que vous voulez lier. Pour 
-        // plus de détails, voir  http://go.microsoft.com/fwlink/?LinkId=317598.
-        [HttpPost]
-        [ValidateAntiForgeryToken]
-        public ActionResult Edit(Entity.Identite identite)
-        {
-            if (ModelState.IsValid)
-            {
-                IdentiteFactory identiteFactory = new IdentiteFactory(db);
-                identiteFactory.update(ref identite);
-                return RedirectToAction("Details", new { Id = identite.College_Id });
-            }
-
-            IdentiteViewModel model = new IdentiteViewModel(identite, ModeAcces.Modification);
-            return View(model);
-        }
-
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing)
-            {
-                db.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-    }
-}

+ 0 - 25
CD67.FicheCollege.MVC/Models/IdentiteViewModel.cs

@@ -1,25 +0,0 @@
-using CD67.FicheCollege.Entity;
-using System.Collections.Generic;
-
-namespace CD67.FicheCollege.MVC.Models
-{
-    public class IdentiteViewModel : BaseViewModel<Identite>
-    {
-        public List<ContactViewModel> Contacts;
-
-        public IdentiteViewModel(Identite model, ModeAcces acces = ModeAcces.Lecture, Dictionary<string, object> bag = null) : base(model, acces, bag)
-        {
-            Contacts = new List<ContactViewModel>();
-            if (Obj.Principal_SID != null)
-                Contacts.Add(new ContactViewModel("Principal", Obj.Principal_SID, Obj.Principal_Login, Obj.Principal_Nom, Obj.Principal_Prenom, Obj.Principal_Email, Obj.Principal_Tel, Obj.Principal_Structure));
-            if (Obj.Adjoint_SID != null)
-                Contacts.Add(new ContactViewModel("Principal adjoint", Obj.Adjoint_SID, Obj.Adjoint_Login, Obj.Adjoint_Nom, Obj.Adjoint_Prenom, Obj.Adjoint_Email, Obj.Adjoint_Tel, Obj.Adjoint_Structure));
-            if (Obj.Gestionnaire_SID != null)
-                Contacts.Add(new ContactViewModel("Gestionnaire", Obj.Gestionnaire_SID, Obj.Gestionnaire_Login, Obj.Gestionnaire_Nom, Obj.Gestionnaire_Prenom, Obj.Gestionnaire_Email, Obj.Gestionnaire_Tel, Obj.Gestionnaire_Structure));
-            if (Obj.Gestionnaire2_SID != null)
-                Contacts.Add(new ContactViewModel("Gestionnaire n°2", Obj.Gestionnaire2_SID, Obj.Gestionnaire2_Login, Obj.Gestionnaire2_Nom, Obj.Gestionnaire2_Prenom, Obj.Gestionnaire2_Email, Obj.Gestionnaire2_Tel, Obj.Gestionnaire2_Structure));
-        }
-
-        public override string Annee_Lib { get { return Obj.College.Annee.Libelle; } }
-    }
-}

+ 91 - 0
CD67.FicheCollege.MVC/Views/Colleges/Details.cshtml

@@ -108,6 +108,97 @@
     </dl>
 </fieldset>
 
+<legend>
+    Personnel
+</legend>
+<div class="flex-list">
+    @if (!String.IsNullOrEmpty(college.PrincipalSid))
+    {
+        <div style="width:400px !important">
+            <div class="panel panel-default" style="overflow: hidden;">
+                <div class="panel-heading clearfix">
+                    <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
+                        <i class="fa fa-user color1" aria-hidden="true"></i>
+                        @Html.LabelFor(model => college.PrincipalSid)
+                    </h4>
+                </div>
+                <div class="panel-body" style="text-align: center;">
+                    <b>@Html.DisplayFor(model => college.principal.Prenom) @Html.DisplayFor(model => college.principal.Nom)</b><br />
+                    @Html.DisplayFor(model => college.principal.Organisation)<br />
+                    @Html.DisplayFor(model => college.principal.Mail)<br />
+                    Tel : @Html.DisplayFor(model => college.principal.Telephone)<br />
+                </div>
+            </div>
+        </div>
+    }
+    @if (!String.IsNullOrEmpty(college.AdjointSid))
+    {
+        <div style="width:400px !important">
+            <div class="panel panel-default" style="overflow: hidden;">
+                <div class="panel-heading clearfix">
+                    <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
+                        <i class="fa fa-user color1" aria-hidden="true"></i>
+                        @Html.LabelFor(model => college.AdjointSid)
+                    </h4>
+                </div>
+                <div class="panel-body" style="text-align: center;">
+                    <b>@Html.DisplayFor(model => college.adjoint.Prenom) @Html.DisplayFor(model => college.adjoint.Nom)</b><br />
+                    @Html.DisplayFor(model => college.adjoint.Organisation)<br />
+                    @Html.DisplayFor(model => college.adjoint.Mail)<br />
+                    Tel : @Html.DisplayFor(model => college.adjoint.Telephone)<br />
+                </div>
+            </div>
+        </div>
+    }
+    @if (!String.IsNullOrEmpty(college.Gestionnaire1Sid))
+    {
+        <div style="width:400px !important">
+            <div class="panel panel-default" style="overflow: hidden;">
+                <div class="panel-heading clearfix">
+                    <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
+                        <i class="fa fa-user color1" aria-hidden="true"></i>
+                        @Html.LabelFor(model => college.Gestionnaire1Sid)
+                    </h4>
+                </div>
+                <div class="panel-body" style="text-align: center;">
+                    <b>@Html.DisplayFor(model => college.gestionnaire1.Prenom) @Html.DisplayFor(model => college.gestionnaire1.Nom)</b><br />
+                    @Html.DisplayFor(model => college.gestionnaire1.Organisation)<br />
+                    @Html.DisplayFor(model => college.gestionnaire1.Mail)<br />
+                    Tel : @Html.DisplayFor(model => college.gestionnaire1.Telephone)<br />
+                </div>
+            </div>
+        </div>
+    }
+    @if (!String.IsNullOrEmpty(college.Gestionnaire2Sid))
+    {
+        <div style="width:400px !important">
+            <div class="panel panel-default" style="overflow: hidden;">
+                <div class="panel-heading clearfix">
+                    <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
+                        <i class="fa fa-user color1" aria-hidden="true"></i>
+                        @Html.LabelFor(model => college.Gestionnaire2Sid)
+                    </h4>
+                </div>
+                <div class="panel-body" style="text-align: center;">
+                    <b>@Html.DisplayFor(model => college.gestionnaire2.Prenom) @Html.DisplayFor(model => college.gestionnaire2.Nom)</b><br />
+                    @Html.DisplayFor(model => college.gestionnaire2.Organisation)<br />
+                    @Html.DisplayFor(model => college.gestionnaire2.Mail)<br />
+                    Tel : @Html.DisplayFor(model => college.gestionnaire2.Telephone)<br />
+                </div>
+            </div>
+        </div>
+    }
+</div>
+
+
+
+
+
+
+
+
+
+
 @if (Model.Acces == ModeAcces.Suppression)
 {
     using (Html.BeginForm())

+ 131 - 8
CD67.FicheCollege.MVC/Views/Colleges/Edit.cshtml

@@ -151,20 +151,127 @@
                 </div>
             </div>
 
+        </div>
+
+        <legend>
+            Personnel
+        </legend>
+        <div class="form-horizontal">
+
             <div class="form-group">
-                <div class="col-md-offset-2 col-md-10">
-                    <input type="submit" value="Enregistrer" class="btn btn-default" />
+
+                <div class="col-md-offset-2 col-md-4" data-picker-type="principal">
+                    @Html.HiddenFor(model => college.PrincipalSid, new { data_picker = "agent.id" })
+                    <a class='modal-window' href="http://referentiel.bas-rhin.fr/picker/cd67/ad67/?type=principal" title="Selection du principal (nouvelle fenetre)">Sélectionner un principal</a>
+                    <br />
+                    <div class="panel panel-default" id="Principal_Panel" name="Principal_Panel" style="@if (college.PrincipalSid == null) { <text>display: none;</text> }">
+                        <div class="panel-heading clearfix">
+                            <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
+                                <i class="fa fa-user color1" aria-hidden="true"></i>
+                                @Html.LabelFor(model => college.PrincipalSid)
+                            </h4>
+                            <div class="pull-right">
+                                <span class="glyphicon glyphicon-trash removeItem btn btn-danger btn-sm" aria-hidden="true" data-type="principal"></span>
+                            </div>
+                        </div>
+                        <div class="panel-body" style="text-align: center;">
+                            <b><span data-picker="agent.prenom">@Html.DisplayFor(model => college.principal.Prenom)</span> <span data-picker="agent.nom">@Html.DisplayFor(model => college.principal.Nom)</span></b><br />
+                            <span data-picker="agent.chemin">@Html.DisplayFor(model => college.principal.Organisation)</span><br />
+                            <span data-picker="agent.mail">@Html.DisplayFor(model => college.principal.Mail)</span><br />
+                            <span data-picker="agent.telephone">@Html.DisplayFor(model => college.principal.Telephone)</span>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="col-md-4" data-picker-type="adjoint">
+                    @Html.HiddenFor(model => college.AdjointSid, new { data_picker = "agent.id" })
+                    <a class='modal-window' href="http://referentiel.bas-rhin.fr/picker/cd67/ad67/?type=adjoint" title="Selection du principal adjoint (nouvelle fenetre)">Sélectionner un principal adjoint</a>
+                    <br />
+                    <div class="panel panel-default" id="Adjoint_Panel" name="Adjoint_Panel" style="@if (college.AdjointSid == null) { <text>display: none;</text> }">
+                        <div class="panel-heading clearfix">
+                            <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
+                                <i class="fa fa-user color1" aria-hidden="true"></i>
+                                @Html.LabelFor(model => college.AdjointSid)
+                            </h4>
+                            <div class="pull-right">
+                                <span class="glyphicon glyphicon-trash removeItem btn btn-danger btn-sm" aria-hidden="true" data-type="adjoint"></span>
+                            </div>
+                        </div>
+                        <div class="panel-body" style="text-align: center;">
+                            <b><span data-picker="agent.prenom">@Html.DisplayFor(model => college.adjoint.Prenom)</span> <span data-picker="agent.nom">@Html.DisplayFor(model => college.adjoint.Nom)</span></b><br />
+                            <span data-picker="agent.chemin">@Html.DisplayFor(model => college.adjoint.Organisation)</span><br />
+                            <span data-picker="agent.mail">@Html.DisplayFor(model => college.adjoint.Mail)</span><br />
+                            <span data-picker="agent.telephone">@Html.DisplayFor(model => college.adjoint.Telephone)</span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+
+            <div class="form-group">
+                <div class="col-md-offset-2 col-md-4" data-picker-type="gestionnaire">
+                    @Html.HiddenFor(model => college.Gestionnaire1Sid, new { data_picker = "agent.id" })
+                    <a class='modal-window' href="http://referentiel.bas-rhin.fr/picker/cd67/ad67/?type=gestionnaire" title="Selection du gestionnaire (nouvelle fenetre)">Sélectionner un gestionnaire</a>
+                    <br />
+                    <div class="panel panel-default" id="Gestionnaire_Panel" name="Gestionnaire_Panel" style="@if (college.Gestionnaire1Sid == null) { <text>display: none;</text> }">
+                        <div class="panel-heading clearfix">
+                            <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
+                                <i class="fa fa-user color1" aria-hidden="true"></i>
+                                @Html.LabelFor(model => college.Gestionnaire1Sid)
+                            </h4>
+                            <div class="pull-right">
+                                <span class="glyphicon glyphicon-trash removeItem btn btn-danger btn-sm" aria-hidden="true" data-type="gestionnaire"></span>
+                            </div>
+                        </div>
+                        <div class="panel-body" style="text-align: center;">
+                            <b><span data-picker="agent.prenom">@Html.DisplayFor(model => college.gestionnaire1.Prenom)</span> <span data-picker="agent.nom">@Html.DisplayFor(model => college.gestionnaire1.Nom)</span></b><br />
+                            <span data-picker="agent.chemin">@Html.DisplayFor(model => college.gestionnaire1.Organisation)</span><br />
+                            <span data-picker="agent.mail">@Html.DisplayFor(model => college.gestionnaire1.Mail)</span><br />
+                            <span data-picker="agent.telephone">@Html.DisplayFor(model => college.gestionnaire1.Telephone)</span>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="col-md-4" data-picker-type="gestionnaire2">
+                    @Html.HiddenFor(model => college.Gestionnaire2Sid, new { data_picker = "agent.id" })
+                    <a class='modal-window' href="http://referentiel.bas-rhin.fr/picker/cd67/ad67/?type=gestionnaire2" title="Selection du gestionnaire n°2 (nouvelle fenetre)">Sélectionner un gestionnaire</a>
+                    <br />
+                    <div class="panel panel-default" id="Gestionnaire2_Panel" name="Gestionnaire2_Panel" style="@if (college.Gestionnaire2Sid == null) { <text>display: none;</text> }">
+                        <div class="panel-heading clearfix">
+                            <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
+                                <i class="fa fa-user color1" aria-hidden="true"></i>
+                                @Html.LabelFor(model => college.Gestionnaire2Sid)
+                            </h4>
+                            <div class="pull-right">
+                                <span class="glyphicon glyphicon-trash removeItem btn btn-danger btn-sm" aria-hidden="true" data-type="gestionnaire2"></span>
+                            </div>
+                        </div>
+                        <div class="panel-body" style="text-align: center;">
+                            <b><span data-picker="agent.prenom">@Html.DisplayFor(model => college.gestionnaire2.Prenom)</span> <span data-picker="agent.nom">@Html.DisplayFor(model => college.gestionnaire2.Nom)</span></b><br />
+                            <span data-picker="agent.chemin">@Html.DisplayFor(model => college.gestionnaire2.Organisation)</span><br />
+                            <span data-picker="agent.mail">@Html.DisplayFor(model => college.gestionnaire2.Mail)</span><br />
+                            <span data-picker="agent.telephone">@Html.DisplayFor(model => college.gestionnaire2.Telephone)</span>
+                        </div>
+                    </div>
                 </div>
             </div>
         </div>
-    </fieldset>
 
-    <br/>
+        <br/>
 
-    if (Model.Acces == ModeAcces.Creation)
-    { @Html.ActionLink("Annuler", "Index", new { annee_id = college.Annee_Id }) }
-    else
-    { @Html.ActionLink("Annuler", "Details", new { Id = college.Id }) }
+        <div class="form-group">
+            <span style="margin-right:20px;">
+                <input type="submit" value="Enregistrer" class="btn btn-default" />
+            </span>
+            <span>
+                @if (Model.Acces == ModeAcces.Creation)
+                { @Html.ActionLink("Annuler", "Index", new { annee_id = college.Annee_Id }) }
+                else
+                { @Html.ActionLink("Annuler", "Details", new { Id = college.Id }) }
+            </span>
+        </div>
+
+    </fieldset>
 
 }
 
@@ -187,6 +294,22 @@
                     $('#contenu_Code_Postal').empty();
                     $('#CP-warning').hide();
                     break;
+                case 'principal':
+                    $('#college_PrincipalSid').val(null);
+                    $('#Principal_Panel').hide();
+                    break;
+                case 'adjoint':
+                    $('#college_AdjointSid').val(null);
+                    $('#Adjoint_Panel').hide();
+                    break;
+                case 'gestionnaire':
+                    $('#college_Gestionnaire1Sid').val(null);
+                    $('#Gestionnaire_Panel').hide();
+                    break;
+                case 'gestionnaire2':
+                    $('#college_Gestionnaire2Sid').val(null);
+                    $('#Gestionnaire2_Panel').hide();
+                    break;
                 default:
                     return false;
             }

+ 0 - 54
CD67.FicheCollege.MVC/Views/Identites/Details.cshtml

@@ -1,54 +0,0 @@
-@using CD67.FicheCollege.MVC.Models
-@model IdentiteViewModel
-
-@{
-    ViewBag.Title = "Details";
-    Layout = "~/Views/Shared/_Layout.cshtml";
-    Identite identite = Model.Obj;
-}
-
-<h1>
-    Indentité
-    <br /><span>du @identite.College.Libelle</span>
-</h1>
-
-<fieldset>
-    <legend>
-        Les contacts
-        @if (Model.Acces == ModeAcces.Lecture)
-        {
-            <div class="pull-right">
-                @Html.ActionLink("Modifier", "Edit", "Identites", new { Id = identite.College.Id }, new { @class = "btn btn-default" })
-            </div>
-        }
-    </legend>
-
-    @if (Model.Contacts.Count == 0)
-    {
-        <text>Aucun contact défini</text>
-    }
-    else
-    {
-        <div class="flex-list">
-            @foreach (var item in Model.Contacts)
-            {
-                <div style="width:400px !important">
-                    <div class="panel panel-default" style="overflow: hidden;">
-                        <div class="panel-heading clearfix">
-                            <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
-                                <i class="fa fa-user color1" aria-hidden="true"></i>
-                                @Html.DisplayFor(model => item.Role)
-                            </h4>
-                        </div>
-                        <div class="panel-body" style="text-align: center;">
-                            <b>@Html.DisplayFor(model => item.Prenom) @Html.DisplayFor(model => item.Nom)</b><br />
-                            @Html.DisplayFor(model => item.Structure)<br />
-                            @Html.DisplayFor(model => item.Email)<br />
-                            Tel : @Html.DisplayFor(model => item.Tel)<br />
-                        </div>
-                    </div>
-                </div>
-            }
-        </div>
-    }
-</fieldset>

+ 0 - 207
CD67.FicheCollege.MVC/Views/Identites/Edit.cshtml

@@ -1,207 +0,0 @@
-@using CD67.FicheCollege.MVC.Models
-@model IdentiteViewModel
-
-@{
-    ViewBag.Title = "Edit";
-    Layout = "~/Views/Shared/_Layout.cshtml";
-    Identite identite = Model.Obj;
-}
-
-<h1>@identite.College.Libelle</h1>
-
-@using (Html.BeginForm())
-{
-    @Html.AntiForgeryToken()
-    
-    <fieldset>
-        <legend>
-            Identité du collège - @Model.Acces.ToString()
-        </legend>
-        <div class="form-horizontal">
-            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
-            @Html.HiddenFor(model => identite.College_Id)
-
-            <div class="form-group">
-                @Html.Label("Principal et ajoint", htmlAttributes: new { @class = "control-label col-md-2" })
-
-                <div class="col-md-4" data-picker-type="principal">
-                    @Html.HiddenFor(model => identite.Principal_SID, new { data_picker = "agent.id" })
-                    @Html.HiddenFor(model => identite.Principal_Login, new { data_picker = "agent.login" })
-                    @Html.HiddenFor(model => identite.Principal_Nom, new { data_picker = "agent.nom" })
-                    @Html.HiddenFor(model => identite.Principal_Prenom, new { data_picker = "agent.prenom" })
-                    @Html.HiddenFor(model => identite.Principal_Email, new { data_picker = "agent.mail" })
-                    @Html.HiddenFor(model => identite.Principal_Structure, new { data_picker = "agent.chemin" })
-                    @Html.HiddenFor(model => identite.Principal_Tel, new { data_picker = "agent.telephone" })
-                    <a class='modal-window' href="http://referentiel.bas-rhin.fr/picker/cd67/ad67/?type=principal" title="Selection du principal (nouvelle fenetre)">Sélectionner un principal</a>
-                    <br />
-                    <div class="panel panel-default" id="Principal_Panel" name="Principal_Panel" style="@if (identite.Principal_SID == null) { <text>display: none;</text> }">
-                        <div class="panel-heading clearfix">
-                            <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
-                                <i class="fa fa-user color1" aria-hidden="true"></i>
-                                Principal
-                            </h4>
-                            <div class="pull-right">
-                                <span class="glyphicon glyphicon-trash removeItem btn btn-danger btn-sm" aria-hidden="true" data-type="principal"></span>
-                            </div>
-                        </div>
-                        <div class="panel-body" style="text-align: center;">
-                            <b><span data-picker="agent.prenom">@identite.Principal_Prenom</span> <span data-picker="agent.nom">@identite.Principal_Nom</span></b>
-                            <br /><span data-picker="agent.chemin">@identite.Principal_Structure</span>
-                            <br /><span data-picker="agent.mail">@identite.Principal_Email</span>
-                            <br />Tel : <span data-picker="agent.telephone">@identite.Principal_Tel</span>
-                        </div>
-                    </div>
-                </div>
-
-                <div class="col-md-4" data-picker-type="adjoint">
-                    @Html.HiddenFor(model => identite.Adjoint_SID, new { data_picker = "agent.id" })
-                    @Html.HiddenFor(model => identite.Adjoint_Login, new { data_picker = "agent.login" })
-                    @Html.HiddenFor(model => identite.Adjoint_Nom, new { data_picker = "agent.nom" })
-                    @Html.HiddenFor(model => identite.Adjoint_Prenom, new { data_picker = "agent.prenom" })
-                    @Html.HiddenFor(model => identite.Adjoint_Email, new { data_picker = "agent.mail" })
-                    @Html.HiddenFor(model => identite.Adjoint_Structure, new { data_picker = "agent.chemin" })
-                    @Html.HiddenFor(model => identite.Adjoint_Tel, new { data_picker = "agent.telephone" })
-                    <a class='modal-window' href="http://referentiel.bas-rhin.fr/picker/cd67/ad67/?type=adjoint" title="Selection du principal adjoint (nouvelle fenetre)">Sélectionner un principal adjoint</a>
-                    <br />
-                    <div class="panel panel-default" id="Adjoint_Panel" name="Adjoint_Panel" style="@if (identite.Adjoint_SID == null) { <text>display: none;</text> }">
-                        <div class="panel-heading clearfix">
-                            <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
-                                <i class="fa fa-user color1" aria-hidden="true"></i>
-                                Principal adjoint
-                            </h4>
-                            <div class="pull-right">
-                                <span class="glyphicon glyphicon-trash removeItem btn btn-danger btn-sm" aria-hidden="true" data-type="adjoint"></span>
-                            </div>
-                        </div>
-                        <div class="panel-body" style="text-align: center;">
-                            <b><span data-picker="agent.prenom">@identite.Adjoint_Prenom</span> <span data-picker="agent.nom">@identite.Adjoint_Nom</span></b>
-                            <br /><span data-picker="agent.chemin">@identite.Adjoint_Structure</span>
-                            <br /><span data-picker="agent.mail">@identite.Adjoint_Email</span>
-                            <br />Tel : <span data-picker="agent.telephone">@identite.Adjoint_Tel</span>
-                        </div>
-                    </div>
-                </div>
-            </div>
-
-            <div class="form-group">
-                @Html.Label("Gestionnaire et ajoint", htmlAttributes: new { @class = "control-label col-md-2" })
-
-                <div class="col-md-4" data-picker-type="gestionnaire">
-                    @Html.HiddenFor(model => identite.Gestionnaire_SID, new { data_picker = "agent.id" })
-                    @Html.HiddenFor(model => identite.Gestionnaire_Login, new { data_picker = "agent.login" })
-                    @Html.HiddenFor(model => identite.Gestionnaire_Nom, new { data_picker = "agent.nom" })
-                    @Html.HiddenFor(model => identite.Gestionnaire_Prenom, new { data_picker = "agent.prenom" })
-                    @Html.HiddenFor(model => identite.Gestionnaire_Email, new { data_picker = "agent.mail" })
-                    @Html.HiddenFor(model => identite.Gestionnaire_Structure, new { data_picker = "agent.chemin" })
-                    @Html.HiddenFor(model => identite.Gestionnaire_Tel, new { data_picker = "agent.telephone" })
-                    <a class='modal-window' href="http://referentiel.bas-rhin.fr/picker/cd67/ad67/?type=gestionnaire" title="Selection du gestionnaire (nouvelle fenetre)">Sélectionner un gestionnaire</a>
-                    <br />
-                    <div class="panel panel-default" id="Gestionnaire_Panel" name="Gestionnaire_Panel" style="@if (identite.Gestionnaire_SID == null) { <text>display: none;</text> }">
-                        <div class="panel-heading clearfix">
-                            <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
-                                <i class="fa fa-user color1" aria-hidden="true"></i>
-                                Gestionnaire
-                            </h4>
-                            <div class="pull-right">
-                                <span class="glyphicon glyphicon-trash removeItem btn btn-danger btn-sm" aria-hidden="true" data-type="gestionnaire"></span>
-                            </div>
-                        </div>
-                        <div class="panel-body" style="text-align: center;">
-                            <b><span data-picker="agent.prenom">@identite.Gestionnaire_Prenom</span> <span data-picker="agent.nom">@identite.Gestionnaire_Nom</span></b>
-                            <br /><span data-picker="agent.chemin">@identite.Gestionnaire_Structure</span>
-                            <br /><span data-picker="agent.mail">@identite.Gestionnaire_Email</span>
-                            <br />Tel : <span data-picker="agent.telephone">@identite.Gestionnaire_Tel</span>
-                        </div>
-                    </div>
-                </div>
-
-                <div class="col-md-4" data-picker-type="gestionnaire2">
-                    @Html.HiddenFor(model => identite.Gestionnaire2_SID, new { data_picker = "agent.id" })
-                    @Html.HiddenFor(model => identite.Gestionnaire2_Login, new { data_picker = "agent.login" })
-                    @Html.HiddenFor(model => identite.Gestionnaire2_Nom, new { data_picker = "agent.nom" })
-                    @Html.HiddenFor(model => identite.Gestionnaire2_Prenom, new { data_picker = "agent.prenom" })
-                    @Html.HiddenFor(model => identite.Gestionnaire2_Email, new { data_picker = "agent.mail" })
-                    @Html.HiddenFor(model => identite.Gestionnaire2_Structure, new { data_picker = "agent.chemin" })
-                    @Html.HiddenFor(model => identite.Gestionnaire2_Tel, new { data_picker = "agent.telephone" })
-                    <a class='modal-window' href="http://referentiel.bas-rhin.fr/picker/cd67/ad67/?type=gestionnaire2" title="Selection du gestionnaire n°2 (nouvelle fenetre)">Sélectionner un gestionnaire n°2</a>
-                    <br />
-                    <div class="panel panel-default" id="Gestionnaire2_Panel" name="Gestionnaire2_Panel" style="@if (identite.Gestionnaire2_SID == null) { <text>display: none;</text> }">
-                        <div class="panel-heading clearfix">
-                            <h4 class="panel-title pull-left" style="padding-top: 7.5px;">
-                                <i class="fa fa-user color1" aria-hidden="true"></i>
-                                Gestionnaire n°2
-                            </h4>
-                            <div class="pull-right">
-                                <span class="glyphicon glyphicon-trash removeItem btn btn-danger btn-sm" aria-hidden="true" data-type="gestionnaire2"></span>
-                            </div>
-                        </div>
-                        <div class="panel-body" style="text-align: center;">
-                            <b><span data-picker="agent.prenom">@identite.Gestionnaire2_Prenom</span> <span data-picker="agent.nom">@identite.Gestionnaire2_Nom</span></b>
-                            <br /><span data-picker="agent.chemin">@identite.Gestionnaire2_Structure</span>
-                            <br /><span data-picker="agent.mail">@identite.Gestionnaire2_Email</span>
-                            <br />Tel : <span data-picker="agent.telephone">@identite.Gestionnaire2_Tel</span>
-                        </div>
-                    </div>
-                </div>
-            </div>
-
-            <div class="form-group">
-                <div class="col-md-offset-2 col-md-10">
-                    <input type="submit" value="@Model.Acces.EnumDisplayNameFor(MvcHtmlHelpers.DisplayValue.Prompt)" class="btn btn-default" /> |
-                    @Html.ActionLink("Annuler", "Details", new { Id = identite.College.Id })
-                </div>
-            </div>
-        </div>
-    </fieldset>
-}
-
-@section Scripts {
-    <script type="text/javascript">
-        $(".removeItem").click(function () {
-            switch ($(this).data("type")) {
-                case 'principal':
-                    $('#contenu_Principal_SID').val(null);
-                    $('#contenu_Principal_Login').val(null);
-                    $('#contenu_Principal_Nom').val(null);
-                    $('#contenu_Principal_Prenom').val(null);
-                    $('#contenu_Principal_Email').val(null);
-                    $('#contenu_Principal_Structure').val(null);
-                    $('#contenu_Principal_Tel').val(null);
-                    $('#Principal_Panel').hide();
-                    break;
-                case 'adjoint':
-                    $('#contenu_Adjoint_SID').val(null);
-                    $('#contenu_Adjoint_Login').val(null);
-                    $('#contenu_Adjoint_Nom').val(null);
-                    $('#contenu_Adjoint_Prenom').val(null);
-                    $('#contenu_Adjoint_Email').val(null);
-                    $('#contenu_Adjoint_Structure').val(null);
-                    $('#contenu_Adjoint_Tel').val(null);
-                    $('#Adjoint_Panel').hide();
-                    break;
-                case 'gestionnaire':
-                    $('#contenu_Gestionnaire_SID').val(null);
-                    $('#contenu_Gestionnaire_Login').val(null);
-                    $('#contenu_Gestionnaire_Nom').val(null);
-                    $('#contenu_Gestionnaire_Prenom').val(null);
-                    $('#contenu_Gestionnaire_Email').val(null);
-                    $('#contenu_Gestionnaire_Structure').val(null);
-                    $('#contenu_Gestionnaire_Tel').val(null);
-                    $('#Gestionnaire_Panel').hide();
-                    break;
-                case 'gestionnaire2':
-                    $('#contenu_Gestionnaire2_SID').val(null);
-                    $('#contenu_Gestionnaire2_Login').val(null);
-                    $('#contenu_Gestionnaire2_Nom').val(null);
-                    $('#contenu_Gestionnaire2_Prenom').val(null);
-                    $('#contenu_Gestionnaire2_Email').val(null);
-                    $('#contenu_Gestionnaire2_Structure').val(null);
-                    $('#contenu_Gestionnaire2_Tel').val(null);
-                    $('#Gestionnaire2_Panel').hide();
-                    break;
-                default:
-                    return false;
-            }
-        });
-    </script>
-}