示例#1
0
        private void btnRegister_Click(object sender, System.EventArgs e)
        {
            try
            {
                using (irQmDbContext db = new irQmDbContext())
                {
                    if (db.Lessons.Any(l => l.LessonName == txtLessonname.Text))
                    {
                        lblResult.Text      = "این درس قبلا ثبت شده است";
                        lblResult.ForeColor = Color.Red;
                        return;
                    }
                    if (string.IsNullOrEmpty(txtLessonname.Text.Trim()))
                    {
                        lblResult.Text      = "نام باید وارد شود";
                        lblResult.ForeColor = Color.Red;
                        return;
                    }

                    var lesson = new Lesson();
                    lesson.LessonName  = txtLessonname.Text.Trim();
                    lesson.Description = txtDesc.Text.Trim();
                    db.Lessons.Add(lesson);

                    db.SaveChanges();
                    lblResult.Text      = "ثبت با موفقیت انجام شد";
                    lblResult.ForeColor = Color.Green;
                }
            }
            catch
            {
                lblResult.Text      = "ایرادی در ثبت به وجود آمده است";
                lblResult.ForeColor = Color.Red;
            }
        }
示例#2
0
        private void Btnentire_Click(object sender, EventArgs e)
        {
            User user = new User();

            user.Email    = txtEmail.Text.Trim();
            user.UserName = txtusername.Text.ToLower().Trim();
            user.Password = txtpass.Text.GetHashCode().ToString();
            user.Name     = txtName.Text.Trim();
            user.Family   = txtFamily.Text;
            user.Role     = comboRole.SelectedItem.ToString() == "مدیر" ? Roles.RoleSNames.Admin: Roles.RoleSNames.limited;
            user.UserId   = Guid.NewGuid().ToString() + user.UserName.ToString().Substring(5);
            try
            {
                using (irQmDbContext db = new irQmDbContext())
                {
                    if (db.User.Any(u => u.UserName == txtusername.Text))
                    {
                        lblResult.Text      = "این نام کاربری قبلا ثبت شده است";
                        lblResult.ForeColor = Color.Red;
                        return;
                    }
                    db.User.Add(user);
                    db.SaveChanges();
                    lblResult.Text      = "ثبت انجام شد";
                    lblResult.ForeColor = Color.Green;
                    //linklogin.Visible = true;
                }
            }catch (Exception x)
            {
                lblResult.Text      = "ایرادی در ثبت به وجود آمده است";
                lblResult.ForeColor = Color.Red;
            }
        }
示例#3
0
文件: TagsBox.cs 项目: iranEdu/irQm
        protected override void OnGotFocus(EventArgs e)
        {
            if (!isInitialized)
            {
                options.Items.Clear();
                options.SelectedIndexChanged += options_SelectedIndexChanged;
                options.Visible     = false;
                options.MaximumSize = new System.Drawing.Size(this.Width, this.Height * 5);
                options.Width       = this.Width;
                options.Location    = new System.Drawing.Point(this.Location.X, this.Location.Y + this.Height);

                this.Parent.Controls.Add(options);
                this.Parent.Controls.SetChildIndex(options, 0);

                using (irQmDbContext db = new irQmDbContext())
                {
                    var t = db.Tags.ToArray();
                    foreach (var tag in t)
                    {
                        tags.Add(tag.Value);
                    }
                }
                isInitialized = true;
            }
            base.OnGotFocus(e);
        }
示例#4
0
 private void btnLogin_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrWhiteSpace(txtusername.Text) || string.IsNullOrWhiteSpace(txtpass.Text))
     {
         MessageBox.Show("نام یا رمز عبور خالی است", "ورود نادرست", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
     using (irQmDbContext db = new irQmDbContext())
     {
         var user = db.User.FirstOrDefault(u => u.UserName == txtusername.Text.ToLower().Trim() && u.Password == txtpass.Text.GetHashCode().ToString());
         if (user != null)
         {
             MasterForm main = new MasterForm();
             irQm.BaseCodes.Utilities.Globals.CurrentUser = user;
             main.Show();
             Settings.Default.passRemember = cbRemember.Checked;
             if (cbRemember.Checked)
             {
                 Settings.Default.pass     = txtpass.Text;
                 Settings.Default.username = txtusername.Text;
             }
             Settings.Default.Save();
             this.Close();
         }
         else
         {
             MessageBox.Show("نام یا رمز عبور نادرست است", "ورود نادرست", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
示例#5
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                using (irQmDbContext db = new irQmDbContext())
                {
                    var user = db.User.First(u => u.UserName == txtusername.Text);
                    user.Email  = txtEmail.Text;
                    user.Name   = txtName.Text;
                    user.Family = txtFamily.Text;
                    user.Role   = (Roles.RoleSNames)comboRole.SelectedValue;
                    if (user.Role.ToString() == "limited")
                    {
                        btnSelectUser.Visible = false;
                    }
                    else
                    {
                        btnSelectUser.Visible = true;
                    }

                    db.SaveChanges();
                    lblMessage.Text = "عملیات تغییر اطلاعات با موفقیت انجام شد";
                }
            }
            catch { lblMessage.Text = "مشکلی در تغییر اطلاعات به وجود آمده است"; }
        }
示例#6
0
        private bool RegisterMultiChoices(irQmDbContext db)
        {
            if (ucMultiOption1.Options.Count(o => o.IsTrue) < 1)
            {
                lblMessage.Text      = "گزینه یا گزینه های درست مشخص نشده است";
                lblMessage.ForeColor = Color.Red;

                return(false);
            }

            var q = new MultiChoices();

            q.Id   = Guid.NewGuid().ToString();
            q.Face = rbFace.Rtf;

            q.RegisterTime = DateTime.UtcNow;
            var tagsInBox = tagsBox1.Tags;
            var tags      = db.Tags.Select(t => t.Value).ToArray();

            foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
            {
                var tag = new Tag();
                tag.Value = tg;
                db.Tags.Add(tag);
            }
            foreach (var t in tagsInBox)
            {
                TagInQuestion <MultiChoices> tim = new TagInQuestion <MultiChoices>();
                tim.QuestionId = q.Id;
                tim.TagId      = t;
                db.TagInMultichoices.Add(tim);
            }
            var options = ucMultiOption1.Options;

            foreach (Option o in options)
            {
                o.MultiChoicesId = q.Id;
                db.Option.Add(o);
            }
            q.LessonName      = comboLesson.Text.Trim();
            q.CreatorUserId   = BaseCodes.Utilities.Globals.CurrentUser.UserId;
            q.MultiSelections = ucMultiOption1.MultiSelect;
            db.MultiChoicesQuestions.Add(q);

            db.SaveChanges();


            var newOptions = new List <Option>();

            for (var i = 0; i < ucMultiOption1.Options.Count; i++)
            {
                newOptions.Add(new Option());
            }
            ucMultiOption1.New(newOptions, ucMultiOption1.MultiSelect);
            return(true);
        }
示例#7
0
 private void ChangePassword(string password)
 {
     using (irQmDbContext db = new irQmDbContext())
     {
         var usr = db.User.First(u => u.UserId == user.UserId);
         usr.Password = password.GetHashCode().ToString();
         db.SaveChanges();
     }
     lblMessage.ForeColor = Color.LimeGreen;
     lblMessage.Text      = "عملیات تغییر رمز با موفقیت انجام شد";
 }
示例#8
0
文件: TagsBox.cs 项目: iranEdu/irQm
 public void UpdateTags()
 {
     tags.Clear();
     using (irQmDbContext db = new irQmDbContext())
     {
         var t = db.Tags.ToArray();
         foreach (var tag in t)
         {
             tags.Add(tag.Value);
         }
     }
 }
示例#9
0
        private bool RegisterTrueOrFalse(irQmDbContext db)
        {
            if (!ucTrueFalseAnswer1.isTrue && !ucTrueFalseAnswer1.isFalse)
            {
                lblMessage.Text      = "گزینه درست مشخص نشده است";
                lblMessage.ForeColor = Color.Red;

                return(false);
            }
            var q = new TFQuestion();

            q.Id   = Guid.NewGuid().ToString();
            q.Face = rbFace.Rtf;

            q.RegisterTime = DateTime.UtcNow;
            var tagsInBox = tagsBox1.Tags;
            var tags      = db.Tags.Select(t => t.Value).ToArray();

            foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
            {
                var tag = new Tag();
                tag.Value = tg;
                db.Tags.Add(tag);
            }
            foreach (var t in tagsInBox)
            {
                TagInQuestion <TFQuestion> titf = new TagInQuestion <TFQuestion>();
                titf.QuestionId = q.Id;
                titf.TagId      = t;
                db.TagInTfQuestion.Add(titf);
            }
            //var to= new TFOption();

            //to.IsTrue = ucTrueFalseAnswer1.isTrue;
            //to.Id = Guid.NewGuid().ToString();
            //var fo = new TFOption();
            //fo.IsTrue = ucTrueFalseAnswer1.isFalse;
            //fo.Id = Guid.NewGuid().ToString();
            q.TrueOption  = ucTrueFalseAnswer1.isTrue;
            q.FalseOption = ucTrueFalseAnswer1.isFalse;

            q.LessonName    = comboLesson.Text.Trim();
            q.CreatorUserId = Globals.CurrentUser.UserId;

            db.TFQuestions.Add(q);

            db.SaveChanges();


            ucTrueFalseAnswer1.New();
            ucTrueFalseAnswer1.isTrue = true;
            return(true);
        }
示例#10
0
        private bool RegisterShortAnswerQuestion(irQmDbContext db)
        {
            if (ucShortAnswer1.StringList.Count == 0)
            {
                lblMessage.Text      = "جواب مشخص نشده است";
                lblMessage.ForeColor = Color.Red;

                return(false);
            }
            var q = new ShortAnswer();

            q.Id   = Guid.NewGuid().ToString();
            q.Face = rbFace.Rtf;

            q.RegisterTime = DateTime.UtcNow;
            var tagsInBox = tagsBox1.Tags;
            var tags      = db.Tags.Select(t => t.Value).ToArray();

            foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
            {
                var tag = new Tag();
                tag.Value = tg;
                db.Tags.Add(tag);
            }
            foreach (var t in tagsInBox)
            {
                TagInQuestion <ShortAnswer> tagInQuestion = new TagInQuestion <ShortAnswer>();
                tagInQuestion.QuestionId = q.Id;
                tagInQuestion.TagId      = t;
                db.TagInShortAnswer.Add(tagInQuestion);
            }
            q.Answer = ucShortAnswer1.StringList;

            q.LessonName    = comboLesson.Text.Trim();
            q.CreatorUserId = Globals.CurrentUser.UserId;


            db.ShortAnswerQustions.Add(q);

            db.SaveChanges();


            ucShortAnswer1.New(new List <StringItem> {
                new StringItem(1), new StringItem(2), new StringItem(3)
            });


            return(true);
        }
示例#11
0
        private bool RegisterPracticalQuestion(irQmDbContext db)
        {
            var list = ucPracticalAnswer1.CheckList;

            if (list.Count == 0)
            {
                lblMessage.Text      = "چک لیست خالی است";
                lblMessage.ForeColor = Color.Red;

                return(false);
            }
            var q = new Practical();

            q.Id   = Guid.NewGuid().ToString();
            q.Face = rbFace.Rtf;

            q.RegisterTime = DateTime.UtcNow;
            var tagsInBox = tagsBox1.Tags;
            var tags      = db.Tags.Select(t => t.Value).ToArray();

            foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
            {
                var tag = new Tag();
                tag.Value = tg;
                db.Tags.Add(tag);
            }
            foreach (var t in tagsInBox)
            {
                TagInQuestion <Practical> tagInQuestion = new TagInQuestion <Practical>();
                tagInQuestion.QuestionId = q.Id;
                tagInQuestion.TagId      = t;
                db.TagInPractical.Add(tagInQuestion);
            }
            q.CheckList = list;

            q.LessonName    = comboLesson.Text.Trim();
            q.CreatorUserId = Globals.CurrentUser.UserId;

            db.PracticalQuestions.Add(q);

            db.SaveChanges();

            ucPracticalAnswer1.New(new List <StringItem>()
            {
                new StringItem(1), new StringItem(2), new StringItem(3)
            });
            return(true);
        }
示例#12
0
 public UserEditForm()
 {
     InitializeComponent();
     comboRole.DataSource    = Roles.Names;
     comboRole.DisplayMember = "Name";
     comboRole.ValueMember   = "Value";
     using (irQmDbContext db = new irQmDbContext())
     {
         var user = db.User.First(u => u.UserName == Globals.CurrentUser.UserName);
         txtusername.Text        = user.UserName;
         txtEmail.Text           = user.Email;
         txtName.Text            = user.Name;
         txtFamily.Text          = user.Family;
         comboRole.SelectedValue = user.Role;
     }
 }
示例#13
0
        private bool RegisterPuzzleQuestion(irQmDbContext db)
        {
            var pairs = ucPuzzleAnswer1.StringPairs;

            if (pairs.Count == 0)
            {
                lblMessage.Text      = "جواب مشخص نشده است";
                lblMessage.ForeColor = Color.Red;

                return(false);
            }
            var q = new Puzzle();

            q.Id   = Guid.NewGuid().ToString();
            q.Face = rbFace.Rtf;

            q.RegisterTime = DateTime.UtcNow;
            var tagsInBox = tagsBox1.Tags;
            var tags      = db.Tags.Select(t => t.Value).ToArray();

            foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
            {
                var tag = new Tag();
                tag.Value = tg;
                db.Tags.Add(tag);
            }
            foreach (var t in tagsInBox)
            {
                TagInQuestion <Puzzle> tagInQuestion = new TagInQuestion <Puzzle>();
                tagInQuestion.QuestionId = q.Id;
                tagInQuestion.TagId      = t;
                db.TagInPuzzle.Add(tagInQuestion);
            }
            q.Pairs = pairs;

            q.LessonName    = comboLesson.Text.Trim();
            q.CreatorUserId = Globals.CurrentUser.UserId;

            db.PuzzleQuestions.Add(q);

            db.SaveChanges();

            ucPuzzleAnswer1.New();
            return(true);
        }
示例#14
0
        private void Btnsendmail_Click_1(object sender, EventArgs e)
        {
            using (irQmDbContext db = new irQmDbContext())
            {
                user = db.User.FirstOrDefault(u => u.UserName == txtUsername.Text.Trim());
                if (user == null)
                {
                    lblMessage.ForeColor = Color.Red;
                    lblMessage.Text      = "این نام کاربری وجود ندارد";

                    return;
                }
                if (string.IsNullOrWhiteSpace(user.Email))
                {
                    lblMessage.ForeColor = Color.Red;
                    lblMessage.Text      = "برای این نام کاربری هیچ ایمیلی وجود ندارد";

                    return;
                }
            }
            SendWebMailMessage();
        }
示例#15
0
 private void UserEditForm_Load(object sender, EventArgs e)
 {
     if (FrmLogin.userrole == "limited")
     {
         btnSelectUser.Visible = false;
         using (irQmDbContext db = new irQmDbContext())
         {
             var user = db.User.FirstOrDefault(u => u.UserName == FrmLogin.uname);
             if (db.User.Any(u => u.UserName == FrmLogin.uname))
             {
                 txtusername.Text = FrmLogin.uname;
             }
             txtEmail.Text           = user.Email;
             txtName.Text            = user.Name;
             txtFamily.Text          = user.Family;
             comboRole.SelectedValue = (Roles.RoleSNames)user.Role;
         }
     }
     else
     {
         btnSelectUser.Visible = true;
     }
 }
示例#16
0
        private void btnSelectUser_Click(object sender, EventArgs e)
        {
            List <string> users;

            using (irQmDbContext db = new irQmDbContext())
            {
                users = db.User.Select(u => u.UserName).ToList();
            }
            FrmItems frm = new FrmItems(users, new string[] { });

            frm.ShowDialog();
            if (frm.SelectedList.Count > 0)
            {
                txtusername.Text = frm.SelectedList[0];
                using (irQmDbContext db = new irQmDbContext())
                {
                    var user = db.User.First(u => u.UserName == frm.SelectedList[0]);
                    txtEmail.Text           = user.Email;
                    txtName.Text            = user.Name;
                    txtFamily.Text          = user.Family;
                    comboRole.SelectedValue = (Roles.RoleSNames)user.Role;
                }
            }
        }
示例#17
0
        private bool RegisterTrueOrFalse(irQmDbContext db)
        {
            var saveInDb = false;

            if (!ucTrueFalseAnswer1.isTrue && !ucTrueFalseAnswer1.isFalse)
            {
                lblMessage.Text      = "گزینه درست مشخص نشده است";
                lblMessage.ForeColor = Color.Red;

                return(false);
            }
            var q = (TFQuestion)Question;

            if (db.TFQuestions.Contains(q))
            {
                saveInDb = true;
                db.TFQuestions.Remove(db.TFQuestions.First(qu => qu.Id == q.Id));
                db.SaveChanges();
            }

            q.Face = rbFace.Rtf;

            q.RegisterTime = DateTime.UtcNow;
            var tagsInBox = tagsBox1.Tags;
            var tags      = db.Tags.Select(t => t.Value).ToArray();

            //if (saveInDb)
            //{
            //    foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
            //    {
            //        var tag = new Tag();
            //        tag.Value = tg;
            //        db.Tags.Add(tag);

            //    }
            //    foreach (var t in tagsBox1.Tags)
            //    {
            //        TagInQuestion<TFQuestion> titf = new TagInQuestion<TFQuestion>();
            //        titf.QuestionId = q.Id;
            //        titf.TagId = t;
            //        db.TagInTfQuestion.Add(titf);
            //    }
            //}
            //else
            {
                var qtags = new List <TagInQuestion <TFQuestion> >();
                foreach (var t in tagsInBox)
                {
                    TagInQuestion <TFQuestion> tagInQuestion = new TagInQuestion <TFQuestion>();
                    tagInQuestion.QuestionId = q.Id;
                    tagInQuestion.TagId      = t;
                    qtags.Add(tagInQuestion);
                }
                q.Tags = qtags;
            }
            q.EditTime = DateTime.UtcNow;
            //var to= new TFOption();

            //to.IsTrue = ucTrueFalseAnswer1.isTrue;
            //to.Id = Guid.NewGuid().ToString();
            //var fo = new TFOption();
            //fo.IsTrue = ucTrueFalseAnswer1.isFalse;
            //fo.Id = Guid.NewGuid().ToString();
            q.TrueOption  = ucTrueFalseAnswer1.isTrue;
            q.FalseOption = ucTrueFalseAnswer1.isFalse;

            q.LessonName    = comboLesson.Text.Trim();
            q.CreatorUserId = Globals.CurrentUser.UserId;

            if (saveInDb)
            {
                foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
                {
                    var tag = new Tag();
                    tag.Value = tg;
                    db.Tags.Add(tag);
                }
                db.TFQuestions.Add(q);

                db.SaveChanges();
            }

            return(true);
        }
示例#18
0
        private bool RegisterMultiChoices(irQmDbContext db)
        {
            var saveInDb = false;

            if (ucMultiOption1.Options.Count(o => o.IsTrue) < 1)
            {
                lblMessage.Text      = "گزینه یا گزینه های درست مشخص نشده است";
                lblMessage.ForeColor = Color.Red;

                return(false);
            }
            var q = (MultiChoices)Question;

            if (db.MultiChoicesQuestions.Contains(q))
            {
                saveInDb = true;
                db.MultiChoicesQuestions.Remove(db.MultiChoicesQuestions.First(qu => qu.Id == q.Id));
                db.SaveChanges();
            }

            q.Face = rbFace.Rtf;

            q.RegisterTime = DateTime.UtcNow;
            var tagsInBox = tagsBox1.Tags;
            var tags      = db.Tags.Select(t => t.Value).ToArray();

            //if (saveInDb)
            //{
            //    foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
            //    {
            //        var tag = new Tag();
            //        tag.Value = tg;
            //        db.Tags.Add(tag);

            //    }
            //    foreach (var t in tagsBox1.Tags)
            //    {
            //        TagInQuestion<MultiChoices> tim = new TagInQuestion<MultiChoices>();
            //        tim.QuestionId = q.Id;
            //        tim.TagId = t;
            //        db.TagInMultichoices.Add(tim);
            //    }
            //}
            //else
            {
                var qtags = new List <TagInQuestion <MultiChoices> >();
                foreach (var t in tagsInBox)
                {
                    TagInQuestion <MultiChoices> tagInQuestion = new TagInQuestion <MultiChoices>();
                    tagInQuestion.QuestionId = q.Id;
                    tagInQuestion.TagId      = t;
                    qtags.Add(tagInQuestion);
                }
                q.Tags = qtags;
            }
            q.EditTime = DateTime.UtcNow;
            var options = ucMultiOption1.Options;

            foreach (Option o in options)
            {
                o.MultiChoicesId = q.Id;
                db.Option.Add(o);
            }
            q.LessonName    = comboLesson.Text.Trim();
            q.CreatorUserId = BaseCodes.Utilities.Globals.CurrentUser.UserId;

            if (saveInDb)
            {
                foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
                {
                    var tag = new Tag();
                    tag.Value = tg;
                    db.Tags.Add(tag);
                }
                db.MultiChoicesQuestions.Add(q);

                db.SaveChanges();
            }


            return(true);
        }
示例#19
0
        private bool RegisterLongAnswerQuestion(irQmDbContext db)
        {
            var saveInDb = false;

            if (string.IsNullOrEmpty(ucLongAnswer1.Answer))
            {
                lblMessage.Text      = "جواب مشخص نشده است";
                lblMessage.ForeColor = Color.Red;

                return(false);
            }
            var q = (LongAnswer)Question;

            if (db.LongAnswerQuestions.Contains(q))
            {
                saveInDb = true;
                db.LongAnswerQuestions.Remove(db.LongAnswerQuestions.First(qu => qu.Id == q.Id));
                db.SaveChanges();
            }
            q.Face = rbFace.Rtf;

            q.RegisterTime = DateTime.UtcNow;
            var tagsInBox = tagsBox1.Tags;
            var tags      = db.Tags.Select(t => t.Value).ToArray();

            //if (saveInDb)
            //{
            //    foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
            //    {
            //        var tag = new Tag();
            //        tag.Value = tg;
            //        db.Tags.Add(tag);

            //    }
            //    foreach (var t in tagsBox1.Tags)
            //    {
            //        TagInQuestion<LongAnswer> tagInQuestion = new TagInQuestion<LongAnswer>();
            //        tagInQuestion.QuestionId = q.Id;
            //        tagInQuestion.TagId = t;
            //        db.TagInLongAnswer.Add(tagInQuestion);
            //    }
            //}
            //else
            {
                var qtags = new List <TagInQuestion <LongAnswer> >();
                foreach (var t in tagsInBox)
                {
                    TagInQuestion <LongAnswer> tagInQuestion = new TagInQuestion <LongAnswer>();
                    tagInQuestion.QuestionId = q.Id;
                    tagInQuestion.TagId      = t;
                    qtags.Add(tagInQuestion);
                }
                q.Tags = qtags;
            }
            q.EditTime = DateTime.UtcNow;
            q.Answer   = ucLongAnswer1.Answer;

            q.LessonName    = comboLesson.Text.Trim();
            q.CreatorUserId = Globals.CurrentUser.UserId;
            if (saveInDb)
            {
                foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
                {
                    var tag = new Tag();
                    tag.Value = tg;
                    db.Tags.Add(tag);
                }
                db.LongAnswerQuestions.Add(q);

                db.SaveChanges();
            }



            return(true);
        }
示例#20
0
        private bool RegisterPracticalQuestion(irQmDbContext db)
        {
            var saveInDb = false;
            var list     = ucPracticalAnswer1.CheckList;

            if (list.Count == 0)
            {
                lblMessage.Text      = "چک لیست خالی است";
                lblMessage.ForeColor = Color.Red;

                return(false);
            }
            var q = (Practical)Question;

            if (db.PracticalQuestions.Contains(q))
            {
                saveInDb = true;
                db.PracticalQuestions.Remove(db.PracticalQuestions.First(qu => qu.Id == q.Id));
                db.SaveChanges();
            }

            q.Face = rbFace.Rtf;

            q.RegisterTime = DateTime.UtcNow;
            var tagsInBox = tagsBox1.Tags;
            var tags      = db.Tags.Select(t => t.Value).ToArray();

            //if (saveInDb)
            //{
            //    foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
            //    {
            //        var tag = new Tag();
            //        tag.Value = tg;
            //        db.Tags.Add(tag);

            //    }



            //    foreach (var t in tagsBox1.Tags)
            //    {
            //        TagInQuestion<Practical> tagInQuestion = new TagInQuestion<Practical>();
            //        tagInQuestion.QuestionId = q.Id;
            //        tagInQuestion.TagId = t;
            //        db.TagInPractical.Add(tagInQuestion);
            //    }
            //}
            //else
            {
                var qtags = new List <TagInQuestion <Practical> >();
                foreach (var t in tagsInBox)
                {
                    TagInQuestion <Practical> tagInQuestion = new TagInQuestion <Practical>();
                    tagInQuestion.QuestionId = q.Id;
                    tagInQuestion.TagId      = t;
                    qtags.Add(tagInQuestion);
                }
                q.Tags = qtags;
            }
            q.EditTime  = DateTime.UtcNow;
            q.CheckList = list;

            q.LessonName    = comboLesson.Text.Trim();
            q.CreatorUserId = Globals.CurrentUser.UserId;
            if (saveInDb)
            {
                foreach (var tg in tagsInBox.Where(t => !(tags.Contains(t))))
                {
                    var tag = new Tag();
                    tag.Value = tg;
                    db.Tags.Add(tag);
                }
                db.PracticalQuestions.Add(q);

                db.SaveChanges();
            }

            return(true);
        }
示例#21
0
文件: Bank.cs 项目: iranEdu/irQm
      public void search()
      {
          if (toDate != null)
          {
              toDate.Value.AddHours(-1 * toDate.Value.Hour).AddHours(24);
          }
          System.Diagnostics.Debug.WriteLine(PersianDateConverter.ToMiladi(fdpTo.SelectedDateTime).Year);

          using (var db = new irQmDbContext())
          {
              IQuestion[]     questions = null;
              FlowLayoutPanel target    = null;

              switch (tabControl1.SelectedIndex)
              {
              case 0:


                  questions = db.MultiChoicesQuestions.Where(q => (string.IsNullOrWhiteSpace(lessonName) ? true : q.LessonName == lessonName) && (fromDate != null ? q.RegisterTime >= fromDate : true) && (toDate != null ? q.RegisterTime <= toDate : true) &&
                                                             tags.All(tg => db.TagInMultichoices.Any(t => t.QuestionId == q.Id && t.Tag.Value == tg)) && richContains(q.Face, searchExpr)).Include(q => q.Options).Include(q => q.Tags).ToArray();
                  target = flpMultiOptionsQuestions;
                  break;

              case 1:

                  questions = db.TFQuestions.Where(q => (string.IsNullOrWhiteSpace(lessonName) ? true : q.LessonName == lessonName) && (fromDate != null ? q.RegisterTime >= fromDate : true) && (toDate != null ? q.RegisterTime <= toDate : true) &&
                                                   tags.All(tg => db.TagInTfQuestion.Any(t => t.QuestionId == q.Id && t.Tag.Value == tg)) && richContains(q.Face, searchExpr)).Include(q => q.Tags).ToArray();
                  target = flpTFQuestions;
                  break;

              case 2:

                  questions = db.PuzzleQuestions.Where(q => (string.IsNullOrWhiteSpace(lessonName) ? true : q.LessonName == lessonName) && (fromDate != null ? q.RegisterTime >= fromDate : true) && (toDate != null ? q.RegisterTime <= toDate : true) &&
                                                       tags.All(tg => db.TagInPuzzle.Any(t => t.QuestionId == q.Id && t.Tag.Value == tg)) && richContains(q.Face, searchExpr)).Include(q => q.Pairs).Include(q => q.Tags).ToArray();
                  target = flpPuzzleQuestions;
                  break;

              case 3:

                  questions = db.ShortAnswerQustions.Where(q => (string.IsNullOrWhiteSpace(lessonName) ? true : q.LessonName == lessonName) && (fromDate != null ? q.RegisterTime >= fromDate : true) && (toDate != null ? q.RegisterTime <= toDate : true) &&
                                                           tags.All(tg => db.TagInShortAnswer.Any(t => t.QuestionId == q.Id && t.Tag.Value == tg)) && richContains(q.Face, searchExpr)).Include(q => q.Answer).Include(q => q.Tags).ToArray();
                  target = flpShortQuestions;
                  break;

              case 4:

                  questions = db.LongAnswerQuestions.Where(q => (string.IsNullOrWhiteSpace(lessonName) ? true : q.LessonName == lessonName) && (fromDate != null ? q.RegisterTime >= fromDate : true) && (toDate != null ? q.RegisterTime <= toDate : true) &&
                                                           tags.All(tg => db.TagInLongAnswer.Any(t => t.QuestionId == q.Id && t.Tag.Value == tg)) && richContains(q.Face, searchExpr)).Include(q => q.Tags).ToArray();
                  target = flpLongQuestions;
                  break;

              case 5:

                  questions = db.PracticalQuestions.Where(q => (string.IsNullOrWhiteSpace(lessonName) ? true : q.LessonName == lessonName) && (fromDate != null ? q.RegisterTime >= fromDate : true) && (toDate != null ? q.RegisterTime <= toDate : true) &&
                                                          tags.All(tg => db.TagInPractical.Any(t => t.QuestionId == q.Id && t.Tag.Value == tg)) && richContains(q.Face, searchExpr)).Include(q => q.Tags).Include(q => q.CheckList).ToArray();
                  target = flpPracticalQuestions;
                  break;

              case 6:
                  return;
              }


              int i = 1;
              target.Controls.Clear();
              foreach (var q in questions.OrderBy(q => q.Face))
              {
                  var qitem = new UCQuestionListItem(q, q.RegisterTime.ToLocalTime().ToPrettyTime(), i);
                  qitem.Width          = multiTabPage.Width - 50;
                  qitem.RightToLeft    = RightToLeft.Yes;
                  qitem.Anchor         = AnchorStyles.Right | AnchorStyles.Left;
                  qitem.Resize        += (s, ev) => { qitem.MaximumSize = new Size(Width - 50, 0); };
                  qitem.Removed       += Qitem_Removed;
                  qitem.CheckedChange += Qitem_CheckedChange;
                  qitem.Name           = q.Id;
                  if (selectedQuestions.Contains(q))
                  {
                      qitem.Checked = true;
                  }
                  target.Controls.Add(qitem);
                  qitem.QuestionEdited += Qitem_QuestionEdited;
                  list.Add(qitem);
                  i++;
              }
          }
      }
示例#22
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            //try
            {
                bool success = false;
                using (irQmDbContext db = new irQmDbContext())
                {
                    if (string.IsNullOrWhiteSpace(rbFace.Text))
                    {
                        lblMessage.Text      = "صورت سوال خالی است";
                        lblMessage.ForeColor = Color.Red;

                        return;
                    }
                    if (comboLesson.IsNew())
                    {
                        if (string.IsNullOrWhiteSpace(comboLesson.Text))
                        {
                            lblMessage.Text      = "درس وارد نشده است";
                            lblMessage.ForeColor = Color.Red;

                            return;
                        }
                        var l = new Lesson();
                        l.LessonName = comboLesson.Text.Trim();
                        db.Lessons.Add(l);
                        comboLesson.LoadItems();
                    }
                    switch (comboQuestionType.SelectedValue)
                    {
                    case Globals.QuestionTypes.QType.multiOption:

                        success = RegisterMultiChoices(db);
                        break;

                    case Globals.QuestionTypes.QType.trueOrFalse:
                        success = RegisterTrueOrFalse(db);
                        break;

                    case Globals.QuestionTypes.QType.longAnswer:
                        success = RegisterLongAnswerQuestion(db);
                        break;

                    case Globals.QuestionTypes.QType.puzzle:
                        success = RegisterPuzzleQuestion(db);
                        break;

                    case Globals.QuestionTypes.QType.practical:
                        success = RegisterPracticalQuestion(db);
                        break;

                    case Globals.QuestionTypes.QType.shortAnswer:
                        success = RegisterShortAnswerQuestion(db);
                        break;
                    }
                }


                if (success)
                {
                    lblMessage.Text      = "پرسش ثبت شد";
                    lblMessage.ForeColor = Color.Green;
                    Saved?.Invoke(this, null);
                }
            }
            //catch(Exception x)
            //{
            //    lblMessage.Text = "مشکلی در عملیات پیش آمده است"+x.ToString();
            //    lblMessage.ForeColor = Color.Red;
            //}
        }