public HttpResponseMessage Get(int id)
        {
            using (var session = NHibernateHelper.CreateSessionFactory())
            {
                using (var transaction = session.BeginTransaction())
                {
                    ProfessionalBody entity;

                    if (id == 0)
                    {
                        entity = new ProfessionalBody();
                    }
                    else
                    {
                        // collect objects
                        var data = new List <ProfessionalBody>(session.CreateCriteria(typeof(ProfessionalBody)).List <ProfessionalBody>());

                        // collect single object
                        entity = data.FirstOrDefault(x => x.Id == id);
                    }

                    // trim excess
                    if (entity != null)
                    {
                        //if (entity.Costings!= null) entity.Costings = null;
                    }

                    // return as HttpResponseMessage
                    return(WebApiHelper.ObjectToHttpResponseMessage(entity));
                }
            }
        }
        public HttpResponseMessage Post(ProfessionalBody entity)
        {
            using (var session = NHibernateHelper.CreateSessionFactory())
            {
                using (var transaction = session.BeginTransaction())
                {
                    session.SaveOrUpdate(entity);
                    transaction.Commit();

                    // return as HttpResponseMessage
                    return(WebApiHelper.ObjectToHttpResponseMessage(entity));
                }
            }
        }
        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();
                }
            }
        }
示例#4
0
        public SettingRegRespObj AddProfessionalBody(RegProfessionalBodyObj regObj)
        {
            var response = new SettingRegRespObj
            {
                Status = new APIResponseStatus
                {
                    IsSuccessful = false,
                    Message      = new APIResponseMessage()
                }
            };

            try
            {
                if (regObj.Equals(null))
                {
                    response.Status.Message.FriendlyMessage  = "Error Occurred! Unable to proceed with your request";
                    response.Status.Message.TechnicalMessage = "Registration Object is empty / invalid";
                    return(response);
                }

                if (!EntityValidatorHelper.Validate(regObj, out var valResults))
                {
                    var errorDetail = new StringBuilder();
                    if (!valResults.IsNullOrEmpty())
                    {
                        errorDetail.AppendLine("Following error occurred:");
                        valResults.ForEachx(m => errorDetail.AppendLine(m.ErrorMessage));
                    }

                    else
                    {
                        errorDetail.AppendLine(
                            "Validation error occurred! Please check all supplied parameters and try again");
                    }
                    response.Status.Message.FriendlyMessage  = errorDetail.ToString();
                    response.Status.Message.TechnicalMessage = errorDetail.ToString();
                    response.Status.IsSuccessful             = false;
                    return(response);
                }

                if (!HelperMethods.IsUserValid(regObj.AdminUserId, regObj.SysPathCode,
                                               HelperMethods.getSeniorAccountant(), ref response.Status.Message))
                {
                    return(response);
                }

                if (IsProfessionalBodyDuplicate(regObj.Name, 1, ref response))
                {
                    return(response);
                }

                var professionalBody = new ProfessionalBody
                {
                    Name    = regObj.Name,
                    Acronym = regObj.Acronym,
                    Status  = (ItemStatus)regObj.Status
                };

                var added = _repository.Add(professionalBody);

                _uoWork.SaveChanges();

                if (added.ProfessionalBodyId < 1)
                {
                    response.Status.Message.FriendlyMessage =
                        "Error Occurred! Unable to complete your request. Please try again later";
                    response.Status.Message.TechnicalMessage = "Unable to save to database";
                    return(response);
                }
                resetCache();
                response.Status.IsSuccessful = true;
                response.SettingId           = added.ProfessionalBodyId;
            }
            catch (DbEntityValidationException ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                response.Status.Message.FriendlyMessage  = "Error Occurred! Please try again later";
                response.Status.Message.TechnicalMessage = "Error: " + ex.GetBaseException().Message;
                response.Status.IsSuccessful             = false;
                return(response);
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                response.Status.Message.FriendlyMessage  = "Error Occurred! Please try again later";
                response.Status.Message.TechnicalMessage = "Error: " + ex.GetBaseException().Message;
                response.Status.IsSuccessful             = false;
                return(response);
            }
            return(response);
        }