TypeCollegeFactory.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using CD67.FicheCollege.Entity;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Data.Entity;
  7. namespace CD67.FicheCollege.Factory
  8. {
  9. public partial class TypeCollegeFactory : Internal.BaseFactory<Entity.TypeCollege>
  10. {
  11. public override IQueryable<Entity.TypeCollege> getAll()
  12. {
  13. return base.getAll("Ordre");
  14. }
  15. public void Up(ref Entity.TypeCollege item)
  16. {
  17. int ordre = item.Ordre;
  18. //Cas de sortie immédiate
  19. if (item.Ordre == 1) return;
  20. Entity.TypeCollege itemToSubstitute = dbContext.TypesCollege.Where(i => i.Ordre == ordre - 1).First();
  21. itemToSubstitute.Ordre += 1;
  22. item.Ordre -= 1;
  23. dbContext.SaveChanges();
  24. }
  25. public void Down(ref Entity.TypeCollege item)
  26. {
  27. int ordre = item.Ordre;
  28. //Cas de sortie immédiate
  29. if (item.Ordre == dbContext.TypesCollege.Max(i => i.Ordre)) return;
  30. Entity.TypeCollege itemToSubstitute = dbContext.TypesCollege.Where(i => i.Ordre == ordre + 1).First();
  31. itemToSubstitute.Ordre -= 1;
  32. item.Ordre += 1;
  33. dbContext.SaveChanges();
  34. }
  35. private void Sort()
  36. {
  37. int ordre = 1;
  38. foreach (Entity.TypeCollege statut in dbContext.TypesCollege.OrderBy(i => i.Ordre))
  39. {
  40. statut.Ordre = ordre++;
  41. }
  42. dbContext.SaveChanges();
  43. }
  44. public override void add(ref Entity.TypeCollege entity)
  45. {
  46. //Initialisation de l'ordre
  47. if (dbContext.TypesCollege.Count() == 0) entity.Ordre = 1;
  48. else entity.Ordre = dbContext.TypesCollege.Max(i => i.Ordre) + 1;
  49. base.add(ref entity);
  50. }
  51. public override void delete(ref Entity.TypeCollege entity)
  52. {
  53. base.delete(ref entity);
  54. Sort();
  55. }
  56. }
  57. }