コード例 #1
0
        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));
        }
コード例 #2
0
        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
            }
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        public async Task <IHttpActionResult> GetUserBio(string id)
        {
            UserBio userBio = await db.UserBios.FindAsync(id);

            if (userBio == null)
            {
                return(NotFound());
            }

            return(Ok(userBio));
        }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
 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
 }
コード例 #7
0
        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));
        }
コード例 #8
0
        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();
        }
コード例 #10
0
        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"
                 *          }
                 *      ]
                 *  }
                 * ]
                 */
            }
        }
コード例 #11
0
        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"));
        }
コード例 #12
0
 public async Task <IActionResult> UploadNewBio(int userid, [FromBody] UserBio bio)
 {
     return(Ok(await new UserTasks().UploadNewBioForUser(userid, bio)));
 }