public HttpResponseMessage Post([FromBody]JToken body) { using (var session = NHibernateHelper.CreateSessionFactory()) { using (var transaction = session.BeginTransaction()) { // Survey var survey = new Survey(); survey.Name = body["Name"].ToObject<string>(); survey.Surname = body["Surname"].ToObject<string>(); survey.EmailAddress = body["EmailAddress"].ToObject<string>(); survey.MobileNumber = body["MobileNumber"].ToObject<string>(); var registrations = new List<Registration>(session.CreateCriteria(typeof(Registration)).List<Registration>()); var registration = registrations.FirstOrDefault(x => x.Id == body["RegistrationId"].ToObject<int>()); survey.Registration = registration; session.SaveOrUpdate(survey); // SurveyQuestion // loop thru all the questions and ratings var categories = body["Categories"].ToObject<List<SurveyCategory>>(); foreach(SurveyCategory c in categories){ foreach(Question q in c.Questions) { var surveyQuestion = new SurveyQuestion(); surveyQuestion.Survey = survey; surveyQuestion.Registration = registration; surveyQuestion.Question = q.Query; surveyQuestion.Rating = q.Rating; session.SaveOrUpdate(surveyQuestion); } } transaction.Commit(); // return as HttpResponseMessage return WebApiHelper.ObjectToHttpResponseMessage(survey); } } }
public virtual void AddSurveyQuestion(SurveyQuestion surveyQuestion) { surveyQuestion.Survey = this; SurveyQuestions.Add(surveyQuestion); }
void DbInit() { NHibernateHelper.CreateSessionFactory(NHibernateHelper.Dialect.Sqlite, true); using (var session = NHibernateHelper.CreateSessionFactory()) { using (var transaction = session.BeginTransaction()) { // Add state var state01 = new State { Name = "Federal Capital Territory", Active = true }; // Add locations var state01Location01 = new Location { Name = "Abaji" }; var state01Location02 = new Location { Name = "Abuja" }; var state01Location03 = new Location { Name = "Gwagwalada" }; var state01Location04 = new Location { Name = "Kuje" }; var state01Location05 = new Location { Name = "Bwari" }; var state01Location06 = new Location { Name = "Kwali" }; // logical add of locations AddLocationsToState(state01, state01Location01, state01Location02, state01Location03, state01Location04, state01Location05, state01Location06 ); // insert categories (3 categories) var category01 = new Category { Name = "Urban"}; var category02 = new Category { Name = "Semi-Urban" }; var category03 = new Category { Name = "Informal" }; // add costing (insert some category prices for each) var costing01 = new Costing { EffectiveDate = DateTime.Now, RegistrationCost = 300.00M, RenewalCost = 200.00M, Category = category01, State = state01,}; var costing02 = new Costing { EffectiveDate = DateTime.Now, RegistrationCost = 200.00M, RenewalCost = 100.00M, Category = category02, State = state01, }; var costing03 = new Costing { EffectiveDate = DateTime.Now, RegistrationCost = 100.00M, RenewalCost = 50.00M, Category = category03, State = state01, }; AddCostingToCategory(category01, costing01); AddCostingToCategory(category02, costing02); AddCostingToCategory(category03, costing03); // insert permissions var permission01 = new Permission { Name = "Search Registrations" }; var permission02 = new Permission { Name = "Perform Registrations" }; var permission03 = new Permission { Name = "Manage Payments" }; var permission04 = new Permission { Name = "Manage Masterfiles" }; session.SaveOrUpdate(permission01); session.SaveOrUpdate(permission02); session.SaveOrUpdate(permission03); session.SaveOrUpdate(permission04); // insert roles var role01 = new Role { Name = "Admin"}; var role02 = new Role { Name = "Clerk" }; session.SaveOrUpdate(role01); session.SaveOrUpdate(role02); var perms = new List<Permission>(session.CreateCriteria(typeof(Permission)).List<Permission>()); foreach (var p in perms) { var rp = new RolePermission { Role = role01, Permission = p }; session.SaveOrUpdate(rp); } // insert user (state, role, permission) var user01 = new User { FirstName = "FCT Admin", LastName = "", Username = "******", Password = "******", EmailAddress = "*****@*****.**", Mobile = "", Active = true, Created = DateTime.Now, Modified = DateTime.Now, Roles = new List<Role> { role01, role02 }, State = state01 }; var user02 = new User { FirstName = "Lyall", LastName = "van der Linde", Username = "******", Password = "******", EmailAddress = "*****@*****.**", Mobile = "0793874802", Active = true, Created = DateTime.Now, Modified = DateTime.Now, Roles = new List<Role> { role02 }, State = state01 }; // add services var service01 = new Service { Name = "Doctors" }; var service02 = new Service { Name = "Radiology" }; var service03 = new Service { Name = "Pathology" }; var service04 = new Service { Name = "Theatre" }; session.SaveOrUpdate(service01); session.SaveOrUpdate(service02); session.SaveOrUpdate(service03); session.SaveOrUpdate(service04); // add staffings var staffings01 = new Staffing { Name = "Medical Doctor" }; var staffings02 = new Staffing { Name = "Nurse" }; var staffings03 = new Staffing { Name = "Medical Lab Assistant" }; var staffings04 = new Staffing { Name = "Pharmacist" }; session.SaveOrUpdate(staffings01); session.SaveOrUpdate(staffings02); session.SaveOrUpdate(staffings03); session.SaveOrUpdate(staffings04); // register establishment (location, category, renewal) var categories = new List<Category>(session.CreateCriteria(typeof(Category)).List<Category>()); var category = categories.FirstOrDefault(x => x.Name.Equals("Urban")); var locations = new List<Location>(session.CreateCriteria(typeof(Location)).List<Location>()); var location = locations.FirstOrDefault(x => x.State.Id == 1); var estType = new TypeOfEstablishment (); estType.Name = "Hospital"; estType.AddStaff (staffings01); estType.AddStaff (staffings02); estType.AddStaff (staffings03); estType.AddStaff (staffings04); session.Save (estType); var body = new ProfessionalBody (); body.Name = "MEDICAL AND DENTAL COUNCIL OF NIGERIA (MDCN)"; session.Save (body); //Staffing var registration = new Registration { Category = category, Location = location, LastRenewalDate = null, ProfessionalBodyAttendance = "", ProfessionalBodyFirstName = "", ProfessionalBodyLastName = "", ProfessionalBodyRemarks = "", ProfessionalBodyPosition = "", MedicalDirectorFirstName = "", AddressLine1 = "", AddressLine2 = "", MedicalDirectorEmailAddress = "", AcceptanceDetailsReason = "", ProprietorGender = "", ProprietorFirstName = "", ProprietorNinNumber = "", ProfessionalBodyInvolvement = "", ProprietorEmailAddress = "", Lga = "", CacNumber = "", MedicalDirectorNinNumber = "", MedicalDirectorLastName = "", RegistrationDate = DateTime.Now, MedicalDirectorGender = "", EstablishmentName = "", PhermcRegistrationNumber = "", AdministratorMobile1 = "", ProprietorIsMedicalDirector = false, AcceptanceDetailsAccepted = true, ProprietorMobile1 = "", MedicalDirectorMobile1 = "", LandMark = "", AdministratorFirstName = "", AdministratorLastName = "", AdministratorMobile2 = "", AmountPaid = 200.00M, Created = DateTime.Now, Deleted = false, MedicalDirectorMobile2 = "", Modified = DateTime.Now, NoOfBeds = 10, PaymentMethod = null, ProfessionalBodySignatureDate = DateTime.Now, ProprietorLastName = "", ProprietorMobile2 = "", ReferenceNumber = "", RegistrationCosts = 0, TypeOfEstablishment = estType, ProfessionalBody = body }; // add services var services = new List<Service>(session.CreateCriteria(typeof(Service)).List<Service>()); var servicesToInsert = services.Where(x => x.Id >= 1); foreach (var s in servicesToInsert) { var rs = new RegistrationService { Registration = registration, Service = s, Selected = true }; registration.AddRegistrationService(rs); } // add staffing var numbersToAdd = 0; foreach (var s in estType.Staffings) { var rts = new RegistrationTypeOfEstablishmentStaffing (); rts.TypeOfEstablishment = estType; rts.Staffing = s; rts.NumberOfStaff = ++numbersToAdd; registration.AddRegistrationTypeOfEstablishmentStaffing (rts); } // insert transactionTypes var renewalType01 = new RenewalType { Name = "Registration" }; var renewalType02 = new RenewalType { Name = "Renewal" }; session.SaveOrUpdate(renewalType01); session.SaveOrUpdate(renewalType02); // insert paymentTypes var paymentTypes01 = new PaymentType { Name = "Cash" }; var paymentTypes02 = new PaymentType { Name = "Bank Deposit" }; session.SaveOrUpdate(paymentTypes01); session.SaveOrUpdate(paymentTypes02); var renewalType = new List<RenewalType>(session.CreateCriteria(typeof(RenewalType)).List<RenewalType>()); var renewalTypeToInsert = renewalType.FirstOrDefault(x => x.Id >= 1); // insert a renewal var renewal = new Renewal { Registration = registration, Date = DateTime.Now, Amount = 200.00M, Paid = false, RenewalType = renewalTypeToInsert }; // insert transactionTypes var transactionType01 = new TransactionType { Name = "Registration" }; var transactionType02 = new TransactionType { Name = "Renewal" }; session.SaveOrUpdate(transactionType01); session.SaveOrUpdate(transactionType02); // insert a payment var transactionType = new List<TransactionType>(session.CreateCriteria(typeof(TransactionType)).List<TransactionType>()); var transactionTypeToInsert = transactionType.FirstOrDefault(x => x.Id >= 1); var newTransaction = new Transaction { Amount = 200.00M, Date = DateTime.Now, Renewal = renewal, TransactionType = transactionTypeToInsert, PaymentType = paymentTypes01, ReceivedFrom = "Alison" }; session.SaveOrUpdate(state01); session.SaveOrUpdate(category01); session.SaveOrUpdate(category02); session.SaveOrUpdate(category03); session.SaveOrUpdate(user01); session.SaveOrUpdate(user02); session.SaveOrUpdate(registration); //session.SaveOrUpdate(renewal); //session.SaveOrUpdate(newTransaction); // ************* var q1 = new Question(); q1.Query = "A"; var q2 = new Question(); q2.Query = "B"; session.SaveOrUpdate(q1); session.SaveOrUpdate(q2); var survey = new Survey(); survey.Name = "Lyall"; survey.Surname = "van der Linde"; survey.EmailAddress = "*****@*****.**"; survey.MobileNumber = "0716541254"; survey.Registration = registration; session.SaveOrUpdate(survey); var surveyQuestion = new SurveyQuestion(); surveyQuestion.Survey = survey; surveyQuestion.Question = q1.Query; surveyQuestion.Rating = 4.2; session.SaveOrUpdate(surveyQuestion); surveyQuestion = new SurveyQuestion(); surveyQuestion.Survey = survey; surveyQuestion.Question = q2.Query; surveyQuestion.Rating = 5.3; session.SaveOrUpdate(surveyQuestion); // ************* transaction.Commit(); } } }