public async Task <IHttpActionResult> ChangeStatus(int id)
        {
            try
            {
                var account = db.accounts.Where(acc => acc.id == id).FirstOrDefault();
                if (account != null)
                {
                    account.status = !account.status;
                    int val = await db.SaveChangesAsync();

                    if (val > 0)
                    {
                        //refesh account
                        return(Ok(await FetchDetailsAccount.GetDetailsAccount(id)));
                    }
                    else
                    {
                        return(BadRequest("Register fails."));
                    }
                }
                else
                {
                    return(BadRequest("Not found."));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> Post()
        {
            try
            {
                var identity = (ClaimsIdentity)User.Identity;
                var username = identity.Claims.Where(a => a.Type == ClaimTypes.Name).Select(c => c.Value).FirstOrDefault();
                var findUser = db.accounts.Where(a => a.username == username).FirstOrDefault();
                if (findUser != null)
                {
                    var httpRequest = HttpContext.Current.Request;
                    if (httpRequest.Files.Count > 0)
                    {
                        var docfiles = "";
                        foreach (string file in httpRequest.Files)
                        {
                            var postedFile = httpRequest.Files[file];
                            //check image file
                            if (postedFile.ContentType == "image/jpeg" || postedFile.ContentType == "image/jpg" ||
                                postedFile.ContentType == "image/png" || postedFile.ContentType == "image/gif")
                            {
                                // post to cloud service return path
                                bool check = await UpdateAvatar(postedFile, findUser.id);

                                if (check)
                                {
                                    return(Ok(await FetchDetailsAccount.GetDetailsAccount(findUser.id)));
                                }
                                else
                                {
                                    return(BadRequest("Update avatar fails."));
                                }
                            }
                            else
                            {
                                return(BadRequest("file is not image type."));
                            }
                        }
                        return(Created("Success", docfiles));
                    }
                    else
                    {
                        return(BadRequest("Upload file error."));
                    }
                }
                else
                {
                    return(BadRequest("Account not found."));
                }
            }
            catch
            {
                return(BadRequest("Error code."));
            }
        }
        public async Task <IHttpActionResult> ResetPassword(int id, [FromBody] ResetAccount form)
        {
            try
            {
                var account = (from a in db.accounts where a.id == id select a).FirstOrDefault();
                if (account != null)
                {
                    //check same password
                    var pass1 = HashPassword.hashPassword(form.password);
                    var pass2 = HashPassword.hashPassword(form.pre_password);
                    if (pass1 == pass2)
                    {
                        account.password  = pass1;
                        account.password2 = pass2;
                        int val = await db.SaveChangesAsync();

                        //search  from list report
                        var findListReport = db.report_account.Where(a => a.account_id == account.id).FirstOrDefault();
                        if (findListReport != null)
                        {
                            db.Entry(findListReport).State = System.Data.Entity.EntityState.Deleted;
                            await db.SaveChangesAsync();
                        }
                        if (val > 0)
                        {
                            return(Ok(await FetchDetailsAccount.GetDetailsAccount(id)));
                        }
                        else
                        {
                            return(BadRequest("Reset password error."));
                        }
                    }
                    else
                    {
                        return(BadRequest("Passwords are not the same."));
                    }
                }
                else
                {
                    return(BadRequest("Not found accounts."));
                }
            }catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public async Task <IHttpActionResult> CreateAccountInfo([FromBody] detail form)
        {
            try
            {
                var identity  = (ClaimsIdentity)User.Identity;
                var username  = identity.Claims.Where(a => a.Type == ClaimTypes.Name).Select(c => c.Value).FirstOrDefault();
                var findIDAcc = db.accounts.Where(a => a.username == username).FirstOrDefault();
                if (findIDAcc != null)
                {
                    var details = db.details.Where(a => a.account_id == findIDAcc.id).FirstOrDefault();
                    if (details != null)
                    {
                        details.classroom_id = form.classroom_id;
                        details.birthday     = form.birthday;
                        details.first_name   = form.first_name;
                        details.last_name    = form.last_name;
                        details.phone_number = form.phone_number;
                        details.description  = form.description;
                        details.gender       = form.gender;
                        details.modify_date  = DateTime.Now;
                        int check = await db.SaveChangesAsync();

                        if (check > 0)
                        {
                            return(Ok(await FetchDetailsAccount.GetDetailsAccount(findIDAcc.id)));
                        }
                        else
                        {
                            return(BadRequest("Update profile error."));
                        }
                    }
                    else
                    {
                        return(BadRequest("Dont find details."));
                    }
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch
            {
                return(BadRequest("Error request."));
            }
        }
        public async Task <IHttpActionResult> ResetPasswordUser([FromBody] account form)
        {
            try
            {
                var identity = (ClaimsIdentity)User.Identity;
                var username = identity.Claims.Where(a => a.Type == ClaimTypes.Name).Select(c => c.Value).FirstOrDefault();
                var account  = (from a in db.accounts where a.username == username select a).FirstOrDefault();
                if (account != null)
                {
                    //check same password
                    var pass1 = HashPassword.hashPassword(form.password);
                    var pass2 = HashPassword.hashPassword(form.password2);
                    if (pass1 == pass2)
                    {
                        account.password  = pass1;
                        account.password2 = pass2;
                        int val = await db.SaveChangesAsync();

                        if (val > 0)
                        {
                            return(Ok(await FetchDetailsAccount.GetDetailsAccount(account.id)));
                        }
                        else
                        {
                            return(BadRequest("Reset password error."));
                        }
                    }
                    else
                    {
                        return(BadRequest("Passwords are not the same."));
                    }
                }
                else
                {
                    return(BadRequest("Not found accounts."));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
 public async Task <IHttpActionResult> GetAccountInfo()
 {
     try
     {
         var identity = (ClaimsIdentity)User.Identity;
         var username = identity.Claims.Where(a => a.Type == ClaimTypes.Name).Select(c => c.Value).FirstOrDefault();
         //find id account vs username
         var find = db.accounts.Where(e => e.username == username).Select(e => e.id).FirstOrDefault();
         if (find != null)
         {
             return(Ok(await FetchDetailsAccount.GetDetailsAccount(find)));
         }
         else
         {
             return(BadRequest("Not found account."));
         }
     }catch (Exception e)
     {
         return(BadRequest("Error fetch my profile."));
     }
 }
        public async Task <IHttpActionResult> GetDetailsAccount(int id)
        {
            try
            {
                var account = await FetchDetailsAccount.GetDetailsAccount(id);

                if (account != null)
                {
                    return(Ok(account));
                }
                else
                {
                    return(BadRequest("Dont find account."));
                }
                //refesh account
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }