示例#1
0
        public JsonResult SaveHostelBooking(HostelBookingModel hostelBookingModel)
        {
            try
            {
                var token = _tokenValidator.Validate(HttpContext);
                if (!token.Success)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = $"Unauthorized:-{token.Message}",
                    }));
                }

                var hostelRatio    = _context.Settings.FirstOrDefault()?.HostelRatio;
                var bookingResults = _unisolApiProxy.SubmitBooking(hostelBookingModel, classStatus, hostelRatio).Result;
                var jdata          = JsonConvert.DeserializeObject <ReturnData <string> >(bookingResults);
                return(Json(jdata));
            }
            catch (Exception ex)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "There was a problem while retrieving your hostel booking history, please try again"
                }));
            }
        }
示例#2
0
        private ReturnData <string> InvoiceStudent(HostelBookingModel hostelBookingModel, string classStatus)
        {
            try
            {
                var roomFeeResponse = GetRoomFees(hostelBookingModel.Hostel, hostelBookingModel.AdmnNo);
                if (!roomFeeResponse.Success)
                {
                    return new ReturnData <string>
                           {
                               Success = roomFeeResponse.Success,
                               Message = roomFeeResponse.Message
                           }
                }
                ;

                var enrolment = _studentServices.GetEnrollment(hostelBookingModel.AdmnNo, classStatus);
                if (!enrolment.Success)
                {
                    return new ReturnData <string>
                           {
                               Success = false,
                               Message = enrolment.Message
                           }
                }
                ;

                AdjustInvoice(new StudInvoiceAdj
                {
                    AdmnNo = hostelBookingModel.AdmnNo,
                    Term   = hostelBookingModel.Term,
                    Class  = enrolment.Data.Class,
                    Amount = roomFeeResponse.Data.Amount
                });

                return(new ReturnData <string>
                {
                    Success = true
                });
            }
            catch (Exception ex)
            {
                return(new ReturnData <string>
                {
                    Success = false,
                    Message = "Sorry, An error occurred"
                });
            }
        }
示例#3
0
        public JsonResult BookHostel(HostelBookingModel hostelBookingModel, string classStatus, string hostelRatio)
        {
            try
            {
                var booking = new HostelBooking
                {
                    AdmnNo    = hostelBookingModel.AdmnNo,
                    Notes     = null,
                    Term      = hostelBookingModel.Term,
                    Personnel = hostelBookingModel.Personnel,
                    Hostel    = hostelBookingModel.Hostel,
                    Rdate     = DateTime.Now.Date
                };
                if (_context.HostelBooking.Any(h => h.AdmnNo.Contains(hostelBookingModel.AdmnNo) && h.Term.Contains(hostelBookingModel.Term)))
                {
                    return(Json(new ReturnData <List <HostelBooking> >
                    {
                        Success = false,
                        Message = "Your have already booked for this semester"
                    }));
                }

                var percentages = hostelRatio.Split(")*(");
                var sponsor     = _context.Register.FirstOrDefault(r => r.AdmnNo.ToUpper().Equals(hostelBookingModel.AdmnNo.ToUpper()))?.Sponsor;
                int percentage  = 0;
                if (percentages.Length > 1)
                {
                    if (sponsor.ToUpper().Equals("NYS"))
                    {
                        int.TryParse(percentages[1], out percentage);
                    }
                    else
                    {
                        int.TryParse(percentages[0], out percentage);
                    }
                }

                double ratio = percentage * 0.01;
                if (CheckIfRoomIsBookable(hostelBookingModel.Hostel, hostelBookingModel.Term, ratio, hostelBookingModel.AdmnNo))
                {
                    return(Json(new ReturnData <List <HostelBooking> >
                    {
                        Success = false,
                        Message = "Sorry, maximum occupancy has been reached"
                    }));
                }

                var inistitutionInitial = _systemServices.GetSystemSetup()?.Data?.SubTitle ?? "";
                if (inistitutionInitial.ToUpper().Equals("UOEM"))
                {
                    var studInvoiced = InvoiceStudent(hostelBookingModel, classStatus);
                    if (!studInvoiced.Success)
                    {
                        return(Json(new ReturnData <List <HostelBooking> >
                        {
                            Success = false,
                            Message = "Sorry, An error occurred while invoicing"
                        }));
                    }
                }

                _context.HostelBooking.Add(booking);
                _context.SaveChanges();
                return(Json(new ReturnData <List <HostelBooking> >
                {
                    Success = true,
                    Message = "Your hostel booking was submited succesfully"
                }));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "There was a problem while trying to submit your booking"
                }));
            }
        }
示例#4
0
        public Task <string> SubmitBooking(HostelBookingModel hostelBookingModel, string classStatus, string hostelRatio)
        {
            var response = Post($"HostelBooking/bookhostel/?classStatus={classStatus}&hostelRatio={hostelRatio}", hostelBookingModel);

            return(response);
        }