Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Data.SqlClient;
- using System.Linq;
- using System.Web;
- using AlwaysHomemade.Models;
- using AlwaysHomemade.Models.Domain;
- using WikiDataProvider.Data;
- using WikiDataProvider.Data.Interfaces;
- using AlwaysHomemade.Services.Interfaces;
- namespace AlwaysHomemade.Services
- {
- public class UsersService : BaseService, IUsersService
- {
- //CREATE
- public int Create(UsersCreateRequest model)
- {
- int id = 0;
- Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
- {
- parameters.AddWithValue("@Username", model.Username);
- parameters.AddWithValue("@Email", model.Email);
- parameters.AddWithValue("@LastName", model.LastName);
- parameters.AddWithValue("@FirstName", model.FirstName);
- parameters.AddWithValue("@Password", model.Password);
- SqlParameter idParam = new SqlParameter("@Id", id);
- idParam.Direction = ParameterDirection.Output;
- parameters.Add(idParam);
- };
- Action<SqlParameterCollection> returnMapper = delegate (SqlParameterCollection parameters)
- {
- id = (int)parameters["@Id"].Value;
- };
- DataProvider.ExecuteNonQuery(GetConnection, "Users_Insert", inputMapper, returnMapper);
- return id;
- }
- //UPDATE
- public void Update(UsersUpdateRequest model)
- {
- Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
- {
- parameters.AddWithValue("@Id", model.Id);
- parameters.AddWithValue("@Username", model.Username);
- parameters.AddWithValue("@Email", model.Email);
- parameters.AddWithValue("@LastName", model.LastName);
- parameters.AddWithValue("@FirstName", model.FirstName);
- parameters.AddWithValue("@Password", model.Password);
- };
- DataProvider.ExecuteNonQuery(GetConnection, "Users_Update", inputMapper);
- }
- //GET-ALL
- public List<User> GetAll()
- {
- List<User> usersList = null;
- Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
- {
- //no data inputted
- };
- Action<IDataReader, short> resultMapper = delegate (IDataReader reader, short set)
- {
- if (usersList == null)
- {
- usersList = new List<User>();
- }
- User user = MapToReader(reader);
- usersList.Add(user);
- };
- DataProvider.ExecuteCmd(GetConnection, "Users_SelectAll", inputMapper, resultMapper);
- return usersList;
- }
- //GET-BY-ID
- public User GetById(int id)
- {
- User user = null;
- Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
- {
- parameters.AddWithValue("@Id", id);
- };
- Action<IDataReader, short> resultMapper = delegate (IDataReader reader, short set)
- {
- user = MapToReader(reader);
- };
- DataProvider.ExecuteCmd(GetConnection, "Users_SelectById", inputMapper, resultMapper);
- return user;
- }
- public void Delete(int id)
- {
- Action<SqlParameterCollection> inputMapper = delegate (SqlParameterCollection parameters)
- {
- parameters.AddWithValue("@Id", id);
- };
- DataProvider.ExecuteNonQuery(GetConnection, "Users_Delete", inputMapper);
- }
- //READER-METHOD
- private static User MapToReader(IDataReader reader)
- {
- User modelUser = new User();
- int startingIndex = 0;
- modelUser.Id = reader.GetInt32(startingIndex++);
- modelUser.Username = reader.GetString(startingIndex++);
- modelUser.Email = reader.GetString(startingIndex++);
- modelUser.FirstName = reader.GetString(startingIndex++);
- modelUser.LastName = reader.GetString(startingIndex++);
- modelUser.Password = reader.GetString(startingIndex++);
- return modelUser;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement