/// <summary> /// Insert user into Users table of DB /// </summary> /// <param name="usersInputParams">It contains emailId of users</param> /// <returns>UserId:- Unique id of user</returns> public int?InsertUsersInfo(UsersInputParams usersInputParams) { int? lastInsertedId = -1; string query = $@"insert into Users (EmailId) values (@v_emailId); select last_insert_rowid();"; var dbParams = GetDbParamsFromEmailId(usersInputParams.EmailId); using (var connection = new SQLiteConnection(_connString)) { lastInsertedId = connection.Query <int>(query, dbParams, commandType: CommandType.Text)?.FirstOrDefault(); } return(lastInsertedId); }
public IHttpActionResult Post([FromBody] UsersInputParams usersInputParams) { var usersInfo = _userBL.GetUsersInfoFromEmailId(usersInputParams.EmailId); if (usersInfo?.EmailId != null) { return(Ok(usersInfo.UserId)); } var lastInsertedId = _userBL.InsertUsersInfo(usersInputParams); if (lastInsertedId != null && lastInsertedId > 0) { return(Ok(lastInsertedId)); } else { return(BadRequest()); } }
/// <summary> /// It will insert user info into databse /// </summary> /// <param name="usersInputParams">UserInfo like emailId</param> /// <returns>UserId:- unique id of user</returns> public int?InsertUsersInfo(UsersInputParams usersInputParams) { //No need to go through cache layer as we are inserting new object(databse row) and there is nothing in cache //although we can go through cache layer, if we want to store object in cache as soon as we add data into database return(_usersRepository.InsertUsersInfo(usersInputParams)); }