public async Task <string> SaveDirectClientEnq(utblClientEnquirie model)
        {
            if (ModelState.IsValid)
            {
                return(await objDAL.SaveDirectClientEnqAsync(model));
            }
            string messages = string.Join("; ", ModelState.Values
                                          .SelectMany(x => x.Errors)
                                          .Select(x => x.ErrorMessage));

            return("Operation Error: " + messages);
        }
        public async Task <string> SaveDirectClientEnqAsync(utblClientEnquirie model)
        {
            try
            {
                var parClientName    = new SqlParameter("@ClientName", model.ClientName);
                var parClientEmail   = new SqlParameter("@ClientEmail", model.ClientEmail);
                var parClientPhoneNo = new SqlParameter("@ClientPhoneNo", model.ClientPhoneNo);
                var parRefPackageID  = new SqlParameter("@RefPackageID", model.RefPackageID);
                var parNoOfDays      = new SqlParameter("@NoOfDays", model.NoOfDays);
                var parRemarks       = new SqlParameter("@Remarks", model.Remarks ?? "");
                var parDateOfArrival = new SqlParameter("@DateOfArrival", model.DateOfArrival);
                var parNoOfAdult     = new SqlParameter("@NoOfAdult", model.NoOfAdult);
                var parNoOfChildren  = new SqlParameter("@NoOfChildren", model.NoOfChildren);
                var parHotelTypeID   = new SqlParameter("@HotelTypeID", DBNull.Value);
                if (model.HotelTypeID != null || model.HotelTypeID != 0)
                {
                    parHotelTypeID = new SqlParameter("@HotelTypeID", model.HotelTypeID);
                }
                var parCabTypeID = new SqlParameter("@CabTypeID", DBNull.Value);
                if (model.CabTypeID != null || model.CabTypeID != 0)
                {
                    parCabTypeID = new SqlParameter("@CabTypeID", model.CabTypeID);
                }
                var parIsDirectBooking = new SqlParameter("@IsDirectBooking", model.IsDirectBooking);
                var parStatus          = new SqlParameter("@Status", model.Status);
                var parTransDate       = new SqlParameter("@TransDate", model.TransDate);

                if (model.EnquiryCode == "" || model.EnquiryCode == null)
                {
                    return(await objDB.Database.SqlQuery <string>("udspDirectClientEnquiryInsert @ClientName, @ClientEmail,@ClientPhoneNo,@RefPackageID,@NoOfDays,@Remarks,@DateOfArrival,@NoOfAdult,@NoOfChildren,@HotelTypeID,@CabTypeID,@IsDirectBooking,@Status,@TransDate",
                                                                  parClientName, parClientEmail, parClientPhoneNo, parRefPackageID, parNoOfDays, parRemarks, parDateOfArrival, parNoOfAdult, parNoOfChildren, parHotelTypeID, parCabTypeID, parIsDirectBooking, parStatus, parTransDate).FirstOrDefaultAsync());
                }
                else
                {
                    var parEnquiryCode = new SqlParameter("@EnquiryCode", model.EnquiryCode);
                    return(await objDB.Database.SqlQuery <string>("udspCustomClientEnquiryUpdate @EnquiryCode, @ClientName, @ClientEmail,@ClientPhoneNo,@NoOfDays,@DateOfArrival,@NoOfAdult,@NoOfChildren,@HotelTypeID,@CabTypeID,@Status,@TransDate",
                                                                  parEnquiryCode, parClientName, parClientEmail, parClientPhoneNo, parNoOfDays, parDateOfArrival, parNoOfAdult, parNoOfChildren, parHotelTypeID, parCabTypeID, parStatus, parTransDate).FirstOrDefaultAsync());
                }
            }
            catch (Exception ex)
            {
                return("Error: " + ex.Message);
            }
        }
        public async Task <string> UpdateClientEnquiryStatusAsync(ClientEnquiryView model)
        {
            try
            {
                utblClientEnquirie cmodel = await objDB.utblClientEnquiries.Where(x => x.EnquiryCode == model.EnquiryCode).FirstOrDefaultAsync();

                cmodel.Status = "Submitted";
                await objDB.SaveChangesAsync();

                return("Status Updated");
            }
            catch (SqlException ex)
            {
                return("Error Message: " + ex.Message);
            }
            catch (Exception ex)
            {
                return("Error: " + ex.Message);
            }
        }