public async Task <IHttpActionResult> DeleteAskChoice(int idQuestion, int idAnswer)
        {
            var findQuestion = (from a in db.questions
                                where a.id == idQuestion
                                select a).FirstOrDefault();

            if (findQuestion != null)
            {
                var ask = db.question_choice.Where(a => a.id == idAnswer && a.question_id == findQuestion.id).FirstOrDefault();
                if (ask != null)
                {
                    db.Entry(ask).State = System.Data.Entity.EntityState.Deleted;
                    int check = await db.SaveChangesAsync();

                    if (check > 0)
                    {
                        return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(Convert.ToInt32(findQuestion.surveys_id))));
                    }
                    else
                    {
                        return(BadRequest("Delete ask error."));
                    }
                }
                else
                {
                    return(BadRequest("Asks for question not found."));
                }
            }
            else
            {
                return(BadRequest("Question not found."));
            }
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> PublishSurveys(int id)
        {
            try
            {
                survey findSurvey = (from a in db.surveys where a.id == id select a).FirstOrDefault();
                if (findSurvey != null)
                {
                    findSurvey.publish = !findSurvey.publish;
                    var check = await db.SaveChangesAsync();

                    if (check > 0)
                    {
                        return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(id)));
                    }
                    else
                    {
                        return(BadRequest("Publish/unpublish fails."));
                    }
                }
                else
                {
                    return(BadRequest("Surveys not found."));
                }
            }
            catch
            {
                return(BadRequest("Error."));
            }
        }
        public async Task <IHttpActionResult> DetailsSurveysResponse(int idSurvey)
        {
            var findSurvey = (from a in db.surveys
                              where a.id == idSurvey && a.deleted == false && a.publish == true
                              select a).FirstOrDefault();

            if (findSurvey != null)
            {
                if (findSurvey.surveys_type_id == 0)
                {
                    return(Ok(await FetchDetailsSurvey.DetailsSurveysResponseText(findSurvey.id)));
                }
                else if (findSurvey.surveys_type_id == 1)
                {
                    return(Ok(await FetchDetailsSurvey.DetailsSurveysResponseChoice(findSurvey.id)));
                }
                else
                {
                    return(BadRequest("Surveys not found."));
                }
            }
            else
            {
                return(BadRequest("Surveys not found."));
            }
        }
Ejemplo n.º 4
0
        public async Task <IHttpActionResult> GetSurveyDetailsForUser(int id)
        {
            var surveys = db.surveys.Where(a => a.date_start <= DateTime.Now && a.publish == true &&
                                           a.deleted == false && a.id == id).FirstOrDefault();

            if (surveys != null)
            {
                return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(surveys.id)));
            }
            else
            {
                return(BadRequest("Surveys not found."));
            }
        }
        public async Task <IHttpActionResult> CreateQuestion([FromBody] question form)
        {
            try
            {
                var findSurvey = db.surveys.Where(a => a.id == form.surveys_id).FirstOrDefault();
                if (findSurvey != null)
                {
                    //check title duplicate
                    var check_title = db.questions
                                      .Where(a => a.text.ToString().ToLower() == form.text.ToString().ToLower() && a.surveys_id == findSurvey.id).FirstOrDefault();
                    if (check_title == null)
                    {
                        if (form.priority <= 0)
                        {
                            form.priority = 1;
                        }

                        form.create_at = DateTime.Now;
                        db.questions.Add(form);
                        int check = await db.SaveChangesAsync();

                        if (check > 0)
                        {
                            return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(findSurvey.id)));
                        }
                        else
                        {
                            return(BadRequest("Create question error."));
                        }
                    }
                    else
                    {
                        return(BadRequest("Title question dupticate"));
                    }
                }
                else
                {
                    return(BadRequest("Survey not found."));
                }
            }
            catch
            {
                return(BadRequest("Error question."));
            }
        }
        public async Task <IHttpActionResult> CreateAskChoice(int idQuestion, [FromBody] question_choice form)
        {
            try
            {
                //find question null or not null
                var findQuestion = (from a in db.questions from b in db.surveys
                                    where a.surveys_id == b.id && a.id == idQuestion && b.surveys_type_id == 1 select a).FirstOrDefault();
                if (findQuestion != null)
                {
                    //find check answer duplicate
                    var answer_title = db.question_choice
                                       .Where(a => a.description.ToString().ToLower() == form.description.ToString().ToLower()).FirstOrDefault();
                    if (answer_title == null)
                    {
                        form.question_id = findQuestion.id;
                        form._checked    = false;
                        form.create_at   = DateTime.Now;
                        db.question_choice.Add(form);
                        int check = await db.SaveChangesAsync(); //save

                        if (check > 0)
                        {
                            return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(Convert.ToInt32(findQuestion.surveys_id))));
                        }
                        else
                        {
                            return(BadRequest("Create Answer fails"));
                        }
                    }
                    else
                    {
                        return(BadRequest("Answer duplicate."));
                    }
                }
                else
                {
                    return(BadRequest("Question not found."));
                }
            }
            catch
            {
                return(BadRequest("Error"));
            }
        }
        public async Task <IHttpActionResult> UpdateAskChoice(int idQuestion, int idAnswer, [FromBody] question_choice form)
        {
            var findQuestion = (from a in db.questions
                                where a.id == idQuestion
                                select a).FirstOrDefault();

            if (findQuestion != null)
            {
                var answers = db.question_choice.Where(a => a.id == idAnswer && a.question_id == findQuestion.id).FirstOrDefault();
                if (answers != null)
                {
                    var answer_title = db.question_choice
                                       .Where(a => a.description.ToString().ToLower() == form.description.ToString().ToLower() && a.id != idAnswer).FirstOrDefault();
                    if (answer_title == null)
                    {
                        answers.description     = form.description;
                        db.Entry(answers).State = System.Data.Entity.EntityState.Modified;
                        int check = await db.SaveChangesAsync();

                        if (check > 0)
                        {
                            return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(Convert.ToInt32(findQuestion.surveys_id))));
                        }
                        else
                        {
                            return(BadRequest("Update ask error."));
                        }
                    }
                    else
                    {
                        return(BadRequest("Answer duplicate"));
                    }
                }
                else
                {
                    return(BadRequest("Asks for question not found."));
                }
            }
            else
            {
                return(BadRequest("Question not found."));
            }
        }
        public async Task <IHttpActionResult> UpdateQuestion(int id, [FromBody] question form)
        {
            var todo = db.questions.Where(a => a.id == id).FirstOrDefault();

            if (todo != null)
            {
                var otherQuestion = db.questions.Where(a => a.text.ToString().ToLower() == form.text.ToString().ToLower() && a.id != id).FirstOrDefault();
                if (otherQuestion == null)
                {
                    if (form.priority <= 0)
                    {
                        todo.priority = 1;
                    }
                    else
                    {
                        todo.priority = form.priority;
                    }
                    todo.text      = form.text;
                    todo.create_at = DateTime.Now;

                    int check = await db.SaveChangesAsync();

                    if (check > 0)
                    {
                        return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(Convert.ToInt32(todo.surveys_id))));
                    }
                    else
                    {
                        return(BadRequest("Update fails."));
                    }
                }
                else
                {
                    return(BadRequest("Title question dupticate"));
                }
            }

            else
            {
                return(BadRequest("Question not found!"));
            }
        }
Ejemplo n.º 9
0
        public async Task <IHttpActionResult> UpdateSurvey([FromBody] survey form, int id)
        {
            try
            {
                var findSurvey = db.surveys.Where(a => a.id == id).FirstOrDefault();
                if (findSurvey != null)
                {
                    var checkTitle = db.surveys
                                     .Where(a => a.title.ToString().ToLower() == form.title.ToString().ToLower() && a.id != id).FirstOrDefault();
                    if (checkTitle == null)
                    {
                        findSurvey.title       = form.title;
                        findSurvey.description = form.description;
                        findSurvey.date_start  = form.date_start;
                        int check = await db.SaveChangesAsync();

                        if (check > 0)
                        {
                            return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(id)));
                        }
                        else
                        {
                            return(BadRequest("Edit survey fails."));
                        }
                    }
                    else
                    {
                        return(BadRequest("Survey title duplicate."));
                    }
                }
                else
                {
                    return(BadRequest("Survey not found."));
                }
            }
            catch
            {
                return(BadRequest("Error request."));
            }
        }
        public async Task <IHttpActionResult> CreateAskText(int idQuestion)
        {
            try
            {
                //check question found and survey type is text
                var findQuestion = (from a in db.questions
                                    from b in db.surveys
                                    where a.surveys_id == b.id && a.id == idQuestion && b.surveys_type_id == 0
                                    select a).FirstOrDefault();
                //if != null insert to db
                if (findQuestion != null)
                {
                    //this is placeholder in frontend. value default
                    question_text form = new question_text();
                    form.text        = "Let me know your opinion!";
                    form.question_id = findQuestion.id;
                    form.create_at   = DateTime.Now;
                    db.question_text.Add(form);
                    int check = await db.SaveChangesAsync(); //save

                    if (check > 0)
                    {
                        return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(Convert.ToInt32(findQuestion.surveys_id))));
                    }
                    else
                    {
                        return(BadRequest("Create answer fails"));
                    }
                }
                else
                {
                    return(BadRequest("Question not found."));
                }
            }
            catch
            {
                return(BadRequest("Error"));
            }
        }
Ejemplo n.º 11
0
        public async Task <IHttpActionResult> PostThumb(int id)
        {
            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 UpdateThumb(postedFile, id);

                        if (check)
                        {
                            return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(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."));
            }
        }
        public async Task <IHttpActionResult> DetailsSurveyResponse(int idSurveyResponse)
        {
            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 findSurvey = (from a in db.surveys
                                  from b in db.surveys_response
                                  where a.id == b.surveys_id && b.id == idSurveyResponse && b.username == username
                                  select a).FirstOrDefault();
                if (findSurvey != null)
                {
                    if (findSurvey.surveys_type_id == 0)
                    {
                        return(Ok(await FetchDetailsSurvey.DetailsSurveyUserText(idSurveyResponse, username)));
                    }
                    else if (findSurvey.surveys_type_id == 1)
                    {
                        return(Ok(await FetchDetailsSurvey.DetailsSurveyUserChoice(idSurveyResponse, username)));
                    }
                    else
                    {
                        return(BadRequest("Survey not found"));
                    }
                }
                else
                {
                    return(BadRequest("Not found."));
                }
            }
            else
            {
                return(BadRequest("Account not found."));
            }
        }
Ejemplo n.º 13
0
 public async Task <IHttpActionResult> GetSurveyDetails(int id)
 {
     return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(id)));
 }
        public async Task <IHttpActionResult> CreateSurveysResponse(int idSurvey)
        {
            //find and check username
            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)
            {
                //find survey with date start less than current date
                var findSurvey = db.surveys.Where(a => a.id == idSurvey &&
                                                  a.date_start <= DateTime.Now &&
                                                  a.deleted == false && a.publish == true).FirstOrDefault();
                if (findSurvey != null)
                {
                    //find this user joined if not join create else update
                    var findMessage = db.surveys_response.Where(a => a.surveys_id == idSurvey && a.accounts_id == findUser.id).FirstOrDefault();
                    if (findMessage == null)
                    {
                        surveys_response form = new surveys_response();
                        form.surveys_id  = findSurvey.id;
                        form.accounts_id = findUser.id;
                        form.create_at   = DateTime.Now;
                        form.username    = username;
                        db.surveys_response.Add(form);
                        int check = await db.SaveChangesAsync();

                        if (check > 0)
                        {
                            return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(findSurvey.id)));
                        }
                        else
                        {
                            return(BadRequest("Create fails."));
                        }
                    }
                    else
                    {
                        findMessage.create_at       = DateTime.Now;
                        db.Entry(findMessage).State = System.Data.Entity.EntityState.Modified;
                        int check = await db.SaveChangesAsync();

                        if (check > 0)
                        {
                            return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(findSurvey.id)));
                        }
                        else
                        {
                            return(BadRequest("update fails."));
                        }
                    }
                }
                else
                {
                    return(BadRequest("Survey not found."));
                }
            }
            else
            {
                return(BadRequest("Account not found."));
            }
        }
        public async Task <IHttpActionResult> Deletequestion(int id)
        {
            // get survey
            var findSurvey = (from a in db.questions from b in db.surveys
                              where a.surveys_id == b.id && a.id == id select b).FirstOrDefault();

            if (findSurvey != null)
            {
                if (findSurvey.surveys_type_id == 0)
                {
                    //find question
                    var question = db.questions.Where(a => a.id == id).FirstOrDefault();
                    //find answers for question
                    var ask          = db.question_text.Where(a => a.question_id == question.id).FirstOrDefault();
                    var findResponse = (from a in db.question_text_response
                                        where a.question_id == question.id
                                        select a).ToList();
                    if (findResponse.Count() > 0)
                    {
                        db.question_text_response.RemoveRange(findResponse);
                        await db.SaveChangesAsync();
                    }
                    if (ask != null)
                    {
                        db.question_text.Remove(ask);
                        int check = await db.SaveChangesAsync();

                        if (check > 0)
                        {
                            db.questions.Remove(question);
                            int check2 = await db.SaveChangesAsync();

                            if (check2 > 0)
                            {
                                return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(Convert.ToInt32(findSurvey.id))));
                            }
                            else
                            {
                                return(BadRequest("Remove fails."));
                            }
                        }
                        else
                        {
                            return(BadRequest("Remove fails."));
                        }
                    }
                    else if (question != null)
                    {
                        db.questions.Remove(question);
                        int check2 = await db.SaveChangesAsync();

                        if (check2 > 0)
                        {
                            return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(Convert.ToInt32(findSurvey.id))));
                        }
                        else
                        {
                            return(BadRequest("Remove fails."));
                        }
                    }
                    else
                    {
                        return(BadRequest("Question not found."));
                    }
                }
                else if (findSurvey.surveys_type_id == 1)
                {
                    //find question
                    var question = db.questions.Where(a => a.surveys_id == findSurvey.id && a.id == id).FirstOrDefault();
                    //tim cau hoi lien quan
                    var ask          = db.question_choice.Where(a => a.question_id == question.id).ToList();
                    var findResponse = (from a in db.question_choice_response
                                        where a.question_id == question.id
                                        select a).ToList();
                    if (findResponse.Count() > 0)
                    {
                        db.question_choice_response.RemoveRange(findResponse);
                        await db.SaveChangesAsync();
                    }
                    if (ask.Count() > 0)
                    {
                        db.question_choice.RemoveRange(ask);
                        int check = await db.SaveChangesAsync();

                        if (check > 0)
                        {
                            db.questions.Remove(question);
                            int check2 = await db.SaveChangesAsync();

                            if (check2 > 0)
                            {
                                return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(Convert.ToInt32(findSurvey.id))));
                            }
                            else
                            {
                                return(BadRequest("Remove failszxczxc."));
                            }
                        }
                        else
                        {
                            return(BadRequest("Remove failsss."));
                        }
                    }
                    else if (question != null && ask.Count() == 0)
                    {
                        db.questions.Remove(question);
                        int check2 = await db.SaveChangesAsync();

                        if (check2 > 0)
                        {
                            return(Ok(await FetchDetailsSurvey.GetDetailsSurvey(Convert.ToInt32(findSurvey.id))));
                        }
                        else
                        {
                            return(BadRequest("Remove fails."));
                        }
                    }
                    else
                    {
                        return(BadRequest("Question not found."));
                    }
                }
                else
                {
                    return(BadRequest("Surveys not found"));
                }
            }
            else
            {
                return(BadRequest("Survey not found"));
            }
        }