示例#1
0
        public void CreateChemCompatFormTest()
        {
            //Arrange
            ExperimentFormSqlDAL dalObject = new ExperimentFormSqlDAL(connectionString);
            string        username         = "******";
            List <string> chems            = new List <string> {
                "6-24-6", "8-19-3-1S-.2Zn", "4-24-0"
            };
            List <string> rateDilutions = new List <string> {
                "4X", "2X", "1X", "1/2X", "1/4X", "1/8X"
            };
            ChemCompatForm testCCForm = new ChemCompatForm()
            {
                Strain        = "cc test strain",
                Chemicals     = chems,
                Reps          = 2,
                RateDilutions = rateDilutions
            };

            //Act
            int[] check = dalObject.CreateChemicalCompatibilityForm(username, testCCForm);

            //Assert
            Assert.AreEqual(true, check[1] > 0);
        }
        public int[] CreateChemicalCompatibilityForm(DateTime now, ChemCompatForm newForm)
        {
            int datasetId = 0;

            //insert statement for datasets
            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    SqlCommand cmd;
                    conn.Open();
                    cmd = new SqlCommand(SQL_AddDataset, conn);
                    cmd.Parameters.AddWithValue("@now", now);
                    cmd.Parameters.AddWithValue("@expType", "chem_compatibility");
                    datasetId = (int)cmd.ExecuteScalar();
                }
            }
            catch (SqlException ex)
            {
                throw;
            }
            //insert satement for chem_stability
            string storageStabilityInsert = "";

            for (int i = 0; i < newForm.Chemicals.Count; i++)
            {
                for (int j = 0; j < newForm.Reps; j++)
                {
                    for (int k = 0; k < newForm.RateDilutions.Count; k++)
                    {
                        storageStabilityInsert += "insert into chem_compatibility (dataset_id, strain, chemical, rep, rate_dilution) values(@dataset_id, @strain, '" + newForm.Chemicals[i] + "', '" + (j + 1) + "', '" + newForm.RateDilutions[k] + "');";
                    }
                }
            }

            int rowsAffected = 0;

            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    SqlCommand cmd;
                    conn.Open();
                    cmd = new SqlCommand(storageStabilityInsert, conn);
                    cmd.Parameters.AddWithValue("@dataset_id", datasetId);
                    cmd.Parameters.AddWithValue("@strain", newForm.Strain);

                    rowsAffected = cmd.ExecuteNonQuery();
                }
            }
            catch (SqlException ex)
            {
                throw;
            }

            return(new int[] { datasetId, rowsAffected });
        }
 public ActionResult ChemCompatConfirm(ChemCompatForm newForm)
 {
     if (Session["currentUser"] != null)
     {
         if ((Session["currentUser"] as User).Researcher || (Session["currentUser"] as User).Administrator)
         {
             return(View(newForm));
         }
     }
     return(RedirectToAction("AccessDenied", "User"));
 }
        public ActionResult CreateChemCompatForm(ChemCompatForm chemForm)
        {
            if (!ModelState.IsValid)
            {
                return(View("CreateChemCompatForm", chemForm));
            }

            int[] results = sqlDAL.CreateChemicalCompatibilityForm(DateTime.Now, chemForm);
            //error message???
            Session["lastSavedFormID"] = results[0];
            return(RedirectToAction("ChemCompatConfirm", "ExperimentForm", chemForm));
        }