Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Data.SqlClient;
  5. using System.Linq;
  6. using System.Web;
  7. using AlwaysHomemade.Models;
  8. using AlwaysHomemade.Models.Domain;
  9. using WikiDataProvider.Data;
  10. using WikiDataProvider.Data.Interfaces;
  11. using AlwaysHomemade.Services.Interfaces;
  12.  
  13.  
  14. namespace AlwaysHomemade.Services
  15. {
  16. public class UsersService : BaseService, IUsersService
  17. {
  18. //CREATE
  19.  
  20. public int Create(UsersCreateRequest model)
  21. {
  22. int id = 0;
  23.  
  24. Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
  25. {
  26. parameters.AddWithValue("@Username", model.Username);
  27. parameters.AddWithValue("@Email", model.Email);
  28. parameters.AddWithValue("@LastName", model.LastName);
  29. parameters.AddWithValue("@FirstName", model.FirstName);
  30. parameters.AddWithValue("@Password", model.Password);
  31.  
  32. SqlParameter idParam = new SqlParameter("@Id", id);
  33. idParam.Direction = ParameterDirection.Output;
  34. parameters.Add(idParam);
  35. };
  36.  
  37. Action<SqlParameterCollection> returnMapper = delegate (SqlParameterCollection parameters)
  38. {
  39. id = (int)parameters["@Id"].Value;
  40. };
  41.  
  42. DataProvider.ExecuteNonQuery(GetConnection, "Users_Insert", inputMapper, returnMapper);
  43.  
  44. return id;
  45. }
  46.  
  47. //UPDATE
  48.  
  49. public void Update(UsersUpdateRequest model)
  50. {
  51. Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
  52. {
  53. parameters.AddWithValue("@Id", model.Id);
  54. parameters.AddWithValue("@Username", model.Username);
  55. parameters.AddWithValue("@Email", model.Email);
  56. parameters.AddWithValue("@LastName", model.LastName);
  57. parameters.AddWithValue("@FirstName", model.FirstName);
  58. parameters.AddWithValue("@Password", model.Password);
  59. };
  60.  
  61. DataProvider.ExecuteNonQuery(GetConnection, "Users_Update", inputMapper);
  62. }
  63.  
  64. //GET-ALL
  65.  
  66. public List<User> GetAll()
  67. {
  68. List<User> usersList = null;
  69.  
  70. Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
  71. {
  72. //no data inputted
  73. };
  74.  
  75. Action<IDataReader, short> resultMapper = delegate (IDataReader reader, short set)
  76. {
  77. if (usersList == null)
  78. {
  79. usersList = new List<User>();
  80. }
  81.  
  82. User user = MapToReader(reader);
  83. usersList.Add(user);
  84. };
  85.  
  86. DataProvider.ExecuteCmd(GetConnection, "Users_SelectAll", inputMapper, resultMapper);
  87.  
  88. return usersList;
  89. }
  90.  
  91. //GET-BY-ID
  92.  
  93. public User GetById(int id)
  94. {
  95. User user = null;
  96.  
  97. Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
  98. {
  99. parameters.AddWithValue("@Id", id);
  100. };
  101.  
  102. Action<IDataReader, short> resultMapper = delegate (IDataReader reader, short set)
  103. {
  104. user = MapToReader(reader);
  105. };
  106.  
  107. DataProvider.ExecuteCmd(GetConnection, "Users_SelectById", inputMapper, resultMapper);
  108.  
  109. return user;
  110. }
  111.  
  112. public void Delete(int id)
  113. {
  114. Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
  115. {
  116. parameters.AddWithValue("@Id", id);
  117. };
  118.  
  119. DataProvider.ExecuteNonQuery(GetConnection, "Users_Delete", inputMapper);
  120. }
  121.  
  122. //READER-METHOD
  123.  
  124. private static User MapToReader(IDataReader reader)
  125. {
  126. User modelUser = new User();
  127. int startingIndex = 0;
  128. modelUser.Id = reader.GetInt32(startingIndex++);
  129. modelUser.Username = reader.GetString(startingIndex++);
  130. modelUser.Email = reader.GetString(startingIndex++);
  131. modelUser.FirstName = reader.GetString(startingIndex++);
  132. modelUser.LastName = reader.GetString(startingIndex++);
  133. modelUser.Password = reader.GetString(startingIndex++);
  134.  
  135. return modelUser;
  136. }
  137. }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement