public JsonResult UpdateReason(ReasonVM model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Json(null));
                }
                else
                {
                    var ReasonExist = UnitOfWork.ReasonBL.CheckExist(b => b.ReasonText.ToLower() == model.Reason.ToLower() && b.ReservationStatusId == model.ReservationStatusId);
                    if (ReasonExist)
                    {
                        return(Json(new { success = false, Message = "Reason with same name already exists" }));
                    }
                    var Reason = UnitOfWork.ReasonBL.GetByID(model.Id);
                    if (Reason != null)
                    {
                        Reason.ReasonText          = model.Reason;
                        Reason.ReservationStatusId = model.ReservationStatusId;
                        Reason.IsAnswer            = model.Status;

                        UnitOfWork.ReasonBL.Update(Reason);
                        if (UnitOfWork.Complete() > 0)
                        {
                            return(Json(new { success = true, Message = "Reason updated successfuly" }));
                        }
                        else
                        {
                            return(Json(new { success = false, Message = "Failed to update reason" }));
                        }
                    }
                    else
                    {
                        return(Json(new { success = false, Message = "Reason not found" }));
                    }
                }
            }
            catch (Exception e)
            {
                return(Json(new { success = false, Message = "An error occured , please try again later" }));
            }
        }
        public JsonResult CreateReason(ReasonVM model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Json(null));
                }
                else
                {
                    var ReasonExist = UnitOfWork.ReasonBL.CheckExist(b => b.ReasonText.ToLower() == model.Reason.ToLower() && b.ReservationStatusId == model.ReservationStatusId);
                    if (ReasonExist)
                    {
                        return(Json(new { success = false, Message = "Reason with same name already exists" }));
                    }
                    var Reason = new Reason
                    {
                        ReasonText          = model.Reason,
                        ReservationStatusId = model.ReservationStatusId,
                        IsAnswer            = model.Status,
                        IsActive            = true,
                    };

                    UnitOfWork.ReasonBL.Add(Reason);
                    if (UnitOfWork.Complete() > 0)
                    {
                        return(Json(new { success = true, Message = "Reason added successfully" }));
                    }
                    else
                    {
                        return(Json(new { success = false, Message = "Failed to add reason" }));
                    }
                }
            }
            catch (Exception)
            {
                return(Json(new { success = false, Message = "An error occured , please try again later" }));
            }
        }