Ejemplo n.º 1
0
        public ActionResult CreateTrainingClass()
        {
            Models.Training.TrainingClassInsert model = new Models.Training.TrainingClassInsert();
            model.TrainingDate = DateTime.Now;

            return(View(model));
        }
Ejemplo n.º 2
0
        public ActionResult CreateTrainingClass(Models.Training.TrainingClassInsert model)
        {
            Models.DB.TrainingClass dbTrainingClass = new Models.DB.TrainingClass();
            Int32 trainingClassId;

            dbTrainingClass.TrainingId              = model.TrainingID;
            dbTrainingClass.TrainingDate            = model.TrainingDate;
            dbTrainingClass.TrainingClassStudent    = new List <TrainingClassStudent>();
            dbTrainingClass.TrainingClassInstructor = new List <TrainingClassInstructor>();
            dbTrainingClass.Created = DateTime.UtcNow;

            try
            {
                _context.TrainingClass.Add(dbTrainingClass);
                _context.SaveChanges();
                trainingClassId = dbTrainingClass.TrainingClassId;
            }
            catch (Exception exc)
            {
                throw exc;
            }

            return(RedirectToAction("EditTrainingClass", new { id = trainingClassId }));
        }
Ejemplo n.º 3
0
        public ViewResult CreateOccurrence(Models.Training.TrainingClassInsert trainingClassInsert)
        {
            Models.DB.TrainingClass trainingClass = new TrainingClass();                                                         //the class itself
            List <Models.Training.TrainingClassParticipant> students    = new List <Models.Training.TrainingClassParticipant>(); //the students' participation in the above training class
            List <Models.Training.TrainingClassParticipant> instructors = new List <Models.Training.TrainingClassParticipant>(); //the instructors' participation in the above training class
            var x      = HttpContext.Request.Form;
            var thanks = new Models.Training.TrainingClassInsertConfirmation();

            Int32 i = 0;
            Int32 j = 0;

            //gross, but looping through the form data to find students/instructors/hours, not using binding for this
            foreach (var item in x)
            {
                if (item.Key == "member")
                {
                    foreach (var y in item.Value)
                    {
                        //gets the memberid
                        Models.Training.TrainingClassParticipant topi = new Models.Training.TrainingClassParticipant();
                        String maybememberid = y.ToString();
                        topi.MemberID = Int32.Parse(y.ToString());

                        //get the hours
                        string maybeHours = x["hours"][i];
                        topi.Hours = Decimal.Parse(maybeHours);

                        //keeping a counter so (above) we know how to find the hours by index. ie: for the third member, we look for the third set of hours.
                        students.Add(topi);
                        i = i + 1;
                    }
                }

                if (item.Key == "instructor")
                {
                    foreach (var y in item.Value)
                    {
                        //gets the memberid
                        Models.Training.TrainingClassParticipant topi = new Models.Training.TrainingClassParticipant();
                        String maybememberid = y.ToString();
                        topi.MemberID = Int32.Parse(y.ToString());

                        //get the hours
                        string maybeHours = x["ihours"][j];
                        topi.Hours = Decimal.Parse(maybeHours);

                        //keeping a counter so (above) we know how to find the hours by index. ie: for the third member, we look for the third set of hours.
                        instructors.Add(topi);
                        j = j + 1;
                    }
                }
            }


            trainingClass.Created                 = DateTime.UtcNow;
            trainingClass.TrainingDate            = trainingClassInsert.TrainingDate;
            trainingClass.TrainingId              = trainingClassInsert.TrainingID;
            trainingClass.TrainingClassStudent    = new List <TrainingClassStudent>();
            trainingClass.TrainingClassInstructor = new List <TrainingClassInstructor>();


            //parse the form and grab the instructors and students, along with their hours objects to store
            foreach (var item in students)
            {
                Models.DB.TrainingClassStudent trainingClassStudent = new TrainingClassStudent();

                trainingClassStudent.Created = DateTime.UtcNow;
                trainingClassStudent.TrainingClassStudentMemberId = item.MemberID;
                trainingClassStudent.TrainingClassStudentHours    = item.Hours;

                trainingClass.TrainingClassStudent.Add(trainingClassStudent);
            }

            foreach (var item in instructors)
            {
                Models.DB.TrainingClassInstructor trainingClassInstructor = new TrainingClassInstructor();

                trainingClassInstructor.Created = DateTime.UtcNow;
                trainingClassInstructor.TrainingClassInstructorMemberId = item.MemberID;
                trainingClassInstructor.TrainingClassStudentHours       = item.Hours;

                trainingClass.TrainingClassInstructor.Add(trainingClassInstructor);
            }


            try
            {
                _context.Add(trainingClass);
                _context.SaveChanges();
            }
            catch (Exception exc)
            {
                throw new Exception("Error saving new class (EF): " + exc.ToString());
            }


            var hours  = students.Sum(item => item.Hours).ToString();
            var people = students.Count.ToString();

            thanks.Message = "Great work, your team has added " + hours + " hours of training across " + people + " members.";

            return(View("TrainingOccurrenceInsertConfirmation", thanks));
        }