public async Task <IHttpActionResult> PostUserBio(UserBio userBio) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //userBio.AspNetUser = this.LoggedInAspNetUser; userBio.Id = this.LoggedInUserId; db.UserBios.Add(userBio); try { await db.SaveChangesAsync(); } catch (DbUpdateException dbex) { Logger.Error(dbex); if (UserBioExists(userBio.Id)) { return(Conflict()); } else { throw; } } return(CreatedAtRoute("DefaultApi", new { id = userBio.Id }, userBio)); }
public IHttpActionResult PostEditUser(int id_user, [FromBody] UserBio updatedUser)// = modified existing appointment { /* * //chk if appoint time has another appoint within 30 min before it * DateTime timeFrom, timeTo; * timeTo = DateTime.Parse(appoint.AppointmentTime); * timeFrom = timeTo.AddMinutes(-30); */ using (var db = new ModelContainer()) { //find a user by id var existingUser = db.Users.SingleOrDefault(a => a.Id_User == id_user); if (null != existingUser) { //chk if uName already in use && don't try to compare w one's own loginName if (existingUser.loginName != updatedUser.loginName && db.Users.Any(x => x.loginName == updatedUser.loginName))//loginName already exists { return(Ok("User-Name Not Available")); } existingUser.loginName = updatedUser.loginName; existingUser.pw = updatedUser.pw; existingUser.nameOfUser = updatedUser.nameOfUser; existingUser.phone = updatedUser.phone; existingUser.email = updatedUser.email; existingUser.address = updatedUser.address; db.SaveChanges(); return(Ok(existingUser.Id_User + " updated successfully")); } return(Ok("Could not update user! - Please call clinic"));//fail } }
public IHttpActionResult GetUserDetails(string id) { int Id_User = 0; bool isIdAnInt = int.TryParse(id, out Id_User); if (!isIdAnInt) { return(Ok("")); } UserBio user = new UserBio(); using (var db = new ModelContainer()) { var u = db.Users.Where(x => x.Id_User == Id_User).FirstOrDefault(); user = Mapper.Map <DrAppAPI.User, DrAppAPI.Models.UserBio>(u); } if (user == null) { return(Ok("")); } return(Ok(user)); }
public async Task <IHttpActionResult> GetUserBio(string id) { UserBio userBio = await db.UserBios.FindAsync(id); if (userBio == null) { return(NotFound()); } return(Ok(userBio)); }
public async Task <string> UploadNewBioForUser(int userid, UserBio bio) { using (var conn = new MySqlConnection(connString)) { await conn.OpenAsync(); using (var rewriteCmd = new MySqlCommand($"UPDATE user_bio SET `IsCurrent`={false} WHERE `UserId`={userid};", conn)) await rewriteCmd.ExecuteNonQueryAsync(); using (var cmd = new MySqlCommand($"INSERT INTO user_bio VALUES ('{0}', {userid}, '{bio.Bio}', {bio.IsCurrent}, '{bio.DateCreated.ToString("yyyy-MM-dd hh:mm:ss")}');", conn)) await cmd.ExecuteNonQueryAsync(); return(bio.Bio); } }
public IHttpActionResult PostLogin([FromBody] UserBio userBio)//(string login, string pw) doesn't work coz [FromBody] can b applied to only 1 arg. Must have a complex type { using (ModelContainer db = new ModelContainer()) { var u = db.Users.Where(x => x.loginName == userBio.loginName && x.pw == userBio.pw).FirstOrDefault(); var user_id = u.Id_User; //db.Users.Where(x => x.loginName == userBio.loginName && x.pw == userBio.pw).Select(a => a.Id_User).FirstOrDefault();//.Any(x => x.loginName == loginPw.login && x.pw == loginPw.pw); UserBio userToBeReturned = new UserBio() { Id_User = u.Id_User, address = u.address, email = u.email, loginName = u.loginName, nameOfUser = u.nameOfUser, phone = u.phone, pw = u.pw, role = u.role }; if (user_id > 0) { //navigation property interferes w serialization return(Ok(userToBeReturned));//login success } } return(Ok(0));//login fail }
public async Task <IHttpActionResult> DeleteUserBio(string id) { UserBio userBio = await db.UserBios.FindAsync(id); if (userBio == null) { return(NotFound()); } if (userBio.AspNetUser.Id != this.LoggedInUserId) { ModelState.AddModelError("Invalide Access", "You do not have permission to delete this record"); return(BadRequest(ModelState)); } db.UserBios.Remove(userBio); await db.SaveChangesAsync(); return(Ok(userBio)); }
public IHttpActionResult PostNewUser([FromBody] UserBio u) { using (ModelContainer db = new ModelContainer()) { if (db.Users.Any(x => x.loginName == u.loginName))//loginName already exists { return(Ok(0)); } else { User newUser = new DrAppAPI.User() { loginName = u.loginName, address = u.address, email = u.email, nameOfUser = u.nameOfUser, phone = u.phone, pw = u.pw, role = u.role }; db.Users.Add(newUser); db.SaveChanges(); return(Ok(newUser.Id_User));//EF track newly inserted entity's auto-generated ID : https://stackoverflow.com/questions/5212751/how-can-i-get-id-of-inserted-entity-in-entity-framework } } }
public async Task CreateUserBioAsync(UserBio Bio) { await _context.UserBios.AddAsync(Bio); await _context.SaveChangesAsync(); }
public IHttpActionResult GetSearchUsersByName(string uNameContains) { DrAppAPI.Models.UserBio aUserBio = new UserBio(); UsersSearched usersFoundList = new UsersSearched();//a list of many users found as result od search usersFoundList.UsersFound = new List <UserBio>(); using (ModelContainer db = new ModelContainer()) { //loginName contains this string var matchingUsers = db.Users.Where(x => x.loginName.Contains(uNameContains)).ToList(); foreach (var u in matchingUsers) { aUserBio = Mapper.Map <DrAppAPI.User, DrAppAPI.Models.UserBio>(u); usersFoundList.UsersFound.Add(aUserBio); } return(Ok(/*usersFoundList.UsersFound*/ new UsersSearched[] { usersFoundList })); /*Returns array of UserBio objects e.g. * [ * {//obj of class "UsersSearched" * "UsersFound": //a prop inside obj of "UsersSearched" * [ * { * "Id_User": 1, * "nameOfUser": "******", * "loginName": "name", * "pw": "DnVELRcAZH97k+lj5ivzYQ==", * "address": "name", * "email": "[email protected]", * "phone": "111", * "role": "1" * }, * { * "Id_User": 2, * "nameOfUser": "******", * "loginName": "Name1", * "pw": "Name1", * "address": "Name1", * "email": "[email protected]", * "phone": "111", * "role": "1" * }, * { * "Id_User": 3, * "nameOfUser": "******", * "loginName": "Name2", * "pw": "Name2", * "address": "Name2", * "email": "[email protected]", * "phone": "222", * "role": "1" * }, * { * "Id_User": 4, * "nameOfUser": "******", * "loginName": "Name3", * "pw": "Name3", * "address": "Name3", * "email": "[email protected]", * "phone": "333", * "role": "1" * }, * { * "Id_User": 5, * "nameOfUser": "******", * "loginName": "Name4", * "pw": "Name4", * "address": "Name", * "email": "[email protected]", * "phone": "Name", * "role": "1" * } * ] * } * ] */ } }
public async Task <IHttpActionResult> AddUpdateUserBio(UserBio userBio) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //if (id != userBio.Id) //{ // return BadRequest(); //} bool isEdit = false; //userBio.Id = this.LoggedInUserId; if (this.LoggedInUserId != userBio.Id) { return(BadRequest()); } if (this.LoggedInAspNetUser.UserBio == null) { //ModelState.AddModelError("UserBioNotFound", "No record found to be updated"); //return BadRequest(ModelState); isEdit = false; db.UserBios.Add(userBio); } if (this.LoggedInAspNetUser.UserBio != null) { isEdit = true; db.Entry(userBio).State = EntityState.Modified; } try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException ex) { Logger.Error(ex); throw; } catch (DbUpdateException dbex) { Logger.Error(dbex); if (UserBioExists(userBio.Id)) { return(Conflict()); } else { throw; } } if (!isEdit) { return(CreatedAtRoute("DefaultApi", new { id = userBio.Id }, userBio)); } db.Dispose(); HttpResponseMessage Updateresponse = new HttpResponseMessage(HttpStatusCode.OK); Updateresponse.Content = new StringContent("Record Updated Successfully"); return(Ok("Record Updated Successfully")); }
public async Task <IActionResult> UploadNewBio(int userid, [FromBody] UserBio bio) { return(Ok(await new UserTasks().UploadNewBioForUser(userid, bio))); }