Beispiel #1
0
        /// <summary>
        /// Remove a fixed rule from the Database.
        /// </summary>
        /// <param name="fixedrule">The fixed rule rule to remove</param>
        /// <returns>true if the rule is successfully deleted and false otherwise.</returns>
        public bool DeleteFixedRule(Fixedrule fixrule)
        {
            bool value = false;

            try
            {
                if (fixrule.RuleId != 0)
                {
                    using (var context = new UTSDatabaseEntities())
                    {
                        var saved = context.Fixedrules.Find(fixrule.RuleId);
                        context.Fixedrules.Remove(saved);
                        context.SaveChanges();
                        value = true;
                        return(value);
                    }
                }
                else
                {
                    return(value);
                }
            }
            catch (NullReferenceException)
            {
                return(false);
            }
        }
Beispiel #2
0
        public void DeleteFixedRule_InvalidRuleId_ReturnsFalse()
        {
            //Arrange
            Configure fixRuleTest = new Configure();
            Fixedrule fxrule      = new Fixedrule
            {
                RuleId = 0
            };
            //Act
            bool isRuleDeleted = fixRuleTest.DeleteFixedRule(fxrule);

            //Assert
            Assert.IsFalse(isRuleDeleted, "Rule doen not exsist.");
        }
Beispiel #3
0
 /// <summary>
 /// This fnuction approves or rejects fixed rules as requested
 /// </summary>
 /// <param name="fixrule"> Is a refernece of Fixedrule which helps to access the values stored in the variables of fixed rule and
 ///                        stores the value entered by a user and other values.</param>
 /// <param name="selectedValue">The value selected as approved or rejected</param>
 /// <returns>true if the chnages are done nd saved , false otherwise</returns>
 public bool ApproveRejectRule(Fixedrule fixrule, string selectedValue)
 {
     using (var usersDbContext = new UsersEntities())
     {
         bool isSaved = false;
         using (var context = new UTSDatabaseEntities())
         {
             Fixedrule storedRule = context.Fixedrules.Find(fixrule.RuleId);
             storedRule.Status = selectedValue == "Approve" ? (RulesStatus.Approved).ToString() : (RulesStatus.Rejected).ToString();
             context.SaveChanges();
             isSaved = true;
         }
         return(isSaved);
     }
 }
Beispiel #4
0
        public void DeleteFixedRule_ValidRuleId_ReturnsTrue()
        {
            //Arrange
            Configure fixRuleTest = new Configure();
            Fixedrule fxrule      = new Fixedrule
            {
                RuleId = 43
                         //Put rule id on final day
            };
            //Act
            bool isRuleDeleted = fixRuleTest.DeleteFixedRule(fxrule);

            //Assert
            Assert.IsTrue(isRuleDeleted, "Rule Deleted.");
        }
Beispiel #5
0
        public void SaveFixedRule_ValidData_returnsTrue()
        {
            //Arrange
            Configure fixRuleTest = new Configure();
            Fixedrule fxrule      = new Fixedrule()
            {
                Query    = "Hello ChatBot. How are you?",
                Response = "Hi ChatBot user. Always in service. "
            };
            //Act
            bool isRuleSaved = fixRuleTest.SaveFixedRule(fxrule, "*****@*****.**");

            //Assert
            Assert.AreEqual(true, isRuleSaved);
        }
Beispiel #6
0
        public void SaveFixedRule_QueryAlreadyExsists_returnsFalse()
        {
            //Arrange
            Configure fixRuleSave = new Configure();
            Fixedrule fxrule      = new Fixedrule()
            {
                Query    = "Hello",
                Response = "hi"
            };
            //Act
            bool isRuleSaved = fixRuleSave.SaveFixedRule(fxrule, "*****@*****.**");

            //Assert
            Assert.IsFalse(isRuleSaved, "Query Already exsists");
        }
Beispiel #7
0
        public void SaveFixedRule_QueryOrResponseIsNull_returnsFalse()
        {
            //Arrange
            Configure fixRuleSave = new Configure();
            Fixedrule fxrule      = new Fixedrule
            {
                Query    = null,
                Response = null
            };
            //Act
            bool isRuleSaved = fixRuleSave.SaveFixedRule(fxrule, "*****@*****.**");

            //Assert
            Assert.IsFalse(isRuleSaved, "Rule Not Saved");
        }
Beispiel #8
0
        /// <summary>
        /// This funtion represts the logic to edit an exsiting fixed rule which is requested by the user.
        /// </summary>
        /// <param name="fixrule"> Is a refernece of Fixedrule which helps to access the values stored in the variables of fixed rule and
        ///                        stores the value entered by a user and other values.</param>
        /// <param name="loggedinUser">The session email of the logged in user (user.identity.name)</param>
        /// <returns>true if the rule is editted and flase when the rule can not be editted</returns>
        public bool EditFixedRule(Fixedrule fixrule, string loggedinUser)
        {
            using (var usersDbContext = new UsersEntities())
            {
                bool   isSaved = false;
                string userid  = (from row in usersDbContext.AspNetUsers
                                  where row.UserName == loggedinUser
                                  select row.Id).First();

                if (fixrule.Query == "" && fixrule.Response == "")
                {
                    return(isSaved);
                }

                /* else if (fixrule.Query == null && fixrule.Response == null)
                 *   return isSaved;*/
                else
                {
                    using (var context = new UTSDatabaseEntities())
                    {
                        var query_search = (from row in context.Fixedrules
                                            where row.Query == fixrule.Query
                                            select row.Query).FirstOrDefault();


                        if (query_search.ToLower() == fixrule.Query.ToLower())
                        {
                            return(isSaved);
                        }
                        else
                        {
                            var stored   = context.Fixedrules.Find(fixrule.RuleId);
                            var oldvalue = stored;
                            stored.Status        = RulesStatus.Updated.ToString();
                            stored.Query         = fixrule.Query;
                            stored.Response      = fixrule.Response;
                            stored.LastUpdatedby = loggedinUser;
                            context.Entry(oldvalue).CurrentValues.SetValues(stored);
                            context.SaveChanges();
                            isSaved = true;
                            return(isSaved);
                        }
                    }
                }
            }
        }
Beispiel #9
0
        public ActionResult Edit(Fixedrule fixrule)
        {
            if (!ModelState.IsValid)
            {
                return(View(fixrule));
            }
            bool fixRuleEdit = configure.EditFixedRule(fixrule, User.Identity.Name);

            if (fixRuleEdit)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.Error = "This Query Already Exists.";
                return(View());
            }
        }
Beispiel #10
0
        public ActionResult Create([Bind(Include = "Query, Response")] Fixedrule fixedrule)
        {
            if (!ModelState.IsValid)
            {
                return(View(fixedrule));
            }
            bool fixRuleSave = configure.SaveFixedRule(fixedrule, User.Identity.Name);

            if (fixRuleSave == true)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.Error = "This Query Already Exists.";
                return(View());
            }
        }
Beispiel #11
0
        /// <summary>
        /// This funtion represts the logic to save a fixed rule which is requested by the user.
        /// </summary>
        /// <param name="fixrule"> Is a refernece of Fixedrule which helps to access th values stored in the variables of fixed rule and
        /// stores the value entered by a user and other values.</param>
        /// <param name="loggedinUser">The session email of the logged in user (user.identity.name)</param>
        /// <returns>Returns true when the rule is saved and false when the rule is not saved or already exsits</returns>
        public bool SaveFixedRule(Fixedrule fixrule, string loggedinUser)
        {
            using (var usersDbContext = new UsersEntities())
            {
                string userid = (from row in usersDbContext.AspNetUsers
                                 where row.UserName == loggedinUser
                                 select row.Id).First();

                bool isSaved = false;
                if (fixrule.Query == "" && fixrule.Response == "")
                {
                    return(isSaved);
                }
                else if (fixrule.Query == null && fixrule.Response == null)
                {
                    return(isSaved);
                }
                else
                {
                    using (var context = new UTSDatabaseEntities())
                    {
                        var query = (from row in context.Fixedrules
                                     where row.Query == fixrule.Query
                                     select row.Query).FirstOrDefault();
                        //checking if the rule already exsists
                        if (query == fixrule.Query)
                        {
                            return(isSaved);
                        }
                        fixrule.Type          = "Fixed";
                        fixrule.Createdby     = loggedinUser;
                        fixrule.LastUpdatedby = loggedinUser;
                        fixrule.UserId        = userid;
                        fixrule.Status        = RulesStatus.Created.ToString();
                        context.Fixedrules.Add(fixrule);
                        context.SaveChanges();
                        isSaved = true;
                        return(isSaved);
                    }
                }
            }
        }
Beispiel #12
0
        public void Creat_QueryExsistInDb_ReturnsToCreateView()
        {
            var       controller = new FixedRulesController();
            Fixedrule fxrule     = new Fixedrule()
            {
                Query          = "Hello",
                UserRequest    = "Hello",
                SystemResponse = "hi",
                Response       = "hi",
                Createdby      = "*****@*****.**"
            };

            var result = controller.Create(fxrule) as ViewResult;

            try
            {
                Assert.AreEqual("Create", result.ViewName);
            }
            catch
            {
                Assert.IsNull(result);
            }
            // viewbag error then create view since the rule already exsists
        }