Ejemplo n.º 1
0
        public ActionResult Edit(long?id)
        {
            var viewmodel = new SubjectRow();

            if (id.HasValue)
            {
                viewmodel.subject    = repository.GetSchoolSubject(id.Value).ToModel();
                viewmodel.schoolList =
                    repository.GetSchools().Select(
                        x =>
                        new SelectListItem()
                {
                    Text     = x.name,
                    Value    = x.id.ToString(),
                    Selected = (x.id == viewmodel.subject.schoolid)
                });
            }
            else
            {
                viewmodel.schoolList =
                    repository.GetSchools().Select(
                        x => new SelectListItem()
                {
                    Text  = x.name,
                    Value = x.id.ToString()
                });
            }

            return(View(viewmodel));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Capability to render the body of a training participants list
        /// to PDF and HTML
        /// </summary>
        internal override void RenderBodyInternal(HtmlTemplateEngine sink)
        {
            /* get data */
            var dt = Data.Tables[ReportDatatableIdentifiers.REPORT_DATATABLE_HARDCOPY_EMPLOYEE].Rows[0];
            /* load the report body template */
            var s = HtmlTemplateEngine.LoadTemplate("hardcopy_proofoftraining-1employee.ent", m);

            /* populate it fully */
            s.Set("persnr", dt["PersNr"].ToString());
            s.Set("employeename", dt["fEmployeeName"].ToString());
            s.Set("employeeaddress", dt["fEmployeeAddress"].ToString());
            s.Set("employeeplaceofbirth", dt["PlaceOfBirth"].ToString());
            s.Set("orgcap", dt["OrgCap"].ToString());
            s.Set("participations", dt["fParticipations"].ToString());
            /* commit */
            sink.SubmitPart(s.AsStringBuilder);
            /* cache the training subjects part */
            int audienceid;
            var subjects = new Dictionary <int, List <SubjectRow> >();
            var subs     = Data.Tables[ReportDatatableIdentifiers.REPORT_DATATABLE_HARDCOPY_EMPLOYEE_TRAININGSUBJECTS];

            foreach (DataRow sub in subs.Rows)
            {
                audienceid = Convert.ToInt32(sub["AudienceID"]);
                var subject_row = new SubjectRow(sub);
                if (subjects.ContainsKey(audienceid))
                {
                    subjects[audienceid].Add(subject_row);
                }
                else
                {
                    subjects.Add(audienceid, new List <SubjectRow>()
                    {
                        subject_row
                    });
                }
            }
            /* populate the training participations part */
            clsTemplate p      = HtmlTemplateEngine.LoadTemplate("hardcopy_proofoftraining-2participations.ent", m);
            var         partis = Data.Tables[ReportDatatableIdentifiers.REPORT_DATATABLE_HARDCOPY_EMPLOYEE_TRAININGHISTORY];

            foreach (DataRow part in partis.Rows)
            {
                /* we re-use the same template */
                p.ClearDynamic();
                /* populate one instance */
                p.Set("motivation", part["fMotivation"]);
                p.Set("nrcomposite", part["NrComposite"]);
                p.Set("orgcap", part["OrgCap"]);
                p.Set("workplace", part["Workplace"]);
                p.Set("trainer", part["fTrainerName"]);
                p.Set("responsible", part["fResponsibleName"]);
                p.Set("duration", part["fDuration"]);
                p.Set("remarks", part["ParticipationRemark"]);
                var room    = part["fResource"].ToString();
                var partner = part["TrainerPartnername"].ToString();
                if (String.IsNullOrWhiteSpace(room) && String.IsNullOrWhiteSpace(partner))
                {
                    p.Set("roomorpartner_commentstart", Html.cstHTMLCommentStart);
                    p.Set("roomorpartner_commentend", Html.cstHTMLCommentEnd);
                }
                else
                {
                    p.Set("room", room);
                    p.Set("partner", partner);
                }
                p.Set("date", part["fDate"]);
                p.Set("datetime", part["fDatetime"]);
                p.Set("tra_cap", part["fCaption"]);
                p.Set("topic", part["TopicCaption"]);
                var topic_description = part["TopicDescription"].ToString();
                if (String.IsNullOrWhiteSpace(topic_description))
                {
                    p.Set("topicdescription_commentstart", Html.cstHTMLCommentStart);
                    p.Set("topicdescription_commentend", Html.cstHTMLCommentEnd);
                }
                else
                {
                    p.Set("description", topic_description);
                }
                /* get the subjects which apply, and append */
                audienceid = Convert.ToInt32(part["AudienceID"]);
                var anysubjects = false;
                if (subjects.ContainsKey(audienceid))
                {
                    var ssubj = String.Empty;
                    foreach (var subj in subjects[audienceid])
                    {
                        ssubj = ssubj.ConcatWith(Environment.NewLine, subj.Text);
                    }
                    if (!String.IsNullOrWhiteSpace(ssubj))
                    {
                        p.Set("subjects", ssubj);
                        anysubjects = true;
                    }
                }
                if (!anysubjects)
                {
                    p.Set("anysubjects_commentstart", Html.cstHTMLCommentStart);
                    p.Set("anysubjects_commentend", Html.cstHTMLCommentEnd);
                }
                /* send one instance */
                sink.SubmitPart(p.AsStringBuilder);
            }
        }