PageRenderTime 53ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/Source/Bifrost.Web.Mvc/Sagas/SagaLibrarian.cs

#
C# | 73 lines | 44 code | 10 blank | 19 comment | 2 complexity | 3ff7b0b70efdc239536443c786b8a8f3 MD5 | raw file
Possible License(s): CC-BY-SA-3.0
  1. #region License
  2. //
  3. // Copyright (c) 2008-2012, DoLittle Studios and Komplett ASA
  4. //
  5. // Licensed under the Microsoft Permissive License (Ms-PL), Version 1.1 (the "License")
  6. // With one exception :
  7. // Commercial libraries that is based partly or fully on Bifrost and is sold commercially,
  8. // must obtain a commercial license.
  9. //
  10. // You may not use this file except in compliance with the License.
  11. // You may obtain a copy of the license at
  12. //
  13. // http://bifrost.codeplex.com/license
  14. //
  15. // Unless required by applicable law or agreed to in writing, software
  16. // distributed under the License is distributed on an "AS IS" BASIS,
  17. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18. // See the License for the specific language governing permissions and
  19. // limitations under the License.
  20. //
  21. #endregion
  22. using System;
  23. using System.Collections.Generic;
  24. using System.Web;
  25. using Bifrost.Sagas;
  26. namespace Bifrost.Web.Mvc.Sagas
  27. {
  28. public class SagaLibrarian : ISagaLibrarian
  29. {
  30. readonly ISagaConverter _sagaConverter;
  31. public SagaLibrarian(ISagaConverter sagaConverter)
  32. {
  33. _sagaConverter = sagaConverter;
  34. }
  35. public void Close(ISaga saga)
  36. {
  37. HttpContext.Current.Session.Remove(saga.Id.ToString());
  38. }
  39. public void Catalogue(ISaga saga)
  40. {
  41. var sagaHolder = _sagaConverter.ToSagaHolder(saga);
  42. HttpContext.Current.Session[saga.Id.ToString()] = sagaHolder;
  43. }
  44. public ISaga Get(Guid id)
  45. {
  46. var sagaInSession = HttpContext.Current.Session[id.ToString()];
  47. var exists = sagaInSession != null;
  48. if (!exists)
  49. return null;
  50. var sagaHolder = sagaInSession as SagaHolder;
  51. var saga = _sagaConverter.ToSaga(sagaHolder);
  52. return saga;
  53. }
  54. public ISaga Get(string partition, string key)
  55. {
  56. throw new NotImplementedException();
  57. }
  58. public IEnumerable<ISaga> GetForPartition(string partition)
  59. {
  60. throw new NotImplementedException();
  61. }
  62. }
  63. }