Esempio n. 1
0
        public string sendNotification_RejectStandby(List <TravelRequestMasterModels> sodRequestsList, List <FlightDetailModels> sodflightList, List <PassengerDetailModels> passengerList, List <PassengerMealAllocationModels> passengerMealsList, List <TravelRequestHotelDetailModels> hotelDetailList, string s, string pnrc)
        {
            var bookingType = sodRequestsList[0].SodBookingTypeId == 1 ? "SOD" : "NON-SOD";

            if (sodRequestsList[0].IsAmountPaidByTraveller.Equals(true))
            {
                var strHoldPNR = string.Empty;
                //Get PNR Booking Time
                var pnrInfo           = _userRepository.GetPNRAmountAndTime(sodRequestsList[0].TravelRequestId);
                var holdAmount        = float.Parse(pnrInfo.Split('|')[1]);
                var holdAmounts       = string.Format("{0:0.00}", holdAmount).ToString();
                var pnrGenerationTime = Convert.ToDateTime(pnrInfo.Split('|')[2]);

                //Get Hold Time
                var holdDateTime = CommonWebMethod.CommonWebMethods.GetHoldBookingDateTime(sodRequestsList[0].SodBookingTypeId, sodRequestsList[0].BookingFor, sodflightList[0].TravelDate, sodflightList[0].DepartureTime, pnrGenerationTime);
                var HoldTime     = holdDateTime.ToString("t");
                var HoldDate     = holdDateTime.ToString("dd/MMM/yyyy");
                var strholdDT    = HoldTime + " dated " + HoldDate;
                strHoldPNR = strHoldPNR.Replace("[holdDT]", strholdDT);
                strHoldPNR = strHoldPNR.Replace("[pnrAmt]", holdAmounts);
                pnrc       = pnrc + "." + strHoldPNR;
            }
            var emailSubject      = bookingType + " " + "Standby Booking PNR Request Notification :" + System.DateTime.Now.ToString();
            var emailTemplateName = "SodBookingRequestNotificationTemplateFor_HOD_Booking.html";
            var emailCredentials  = EmailCredentials(emailSubject, emailTemplateName, sodRequestsList, sodflightList, passengerList, passengerMealsList, hotelDetailList, s, pnrc);

            emailCredentials.TemplateFilePath = emailCredentials.TemplateFilePath.Replace("[PNR]", pnrc);
            EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials, sodRequestsList[0].EmailId);
            return("sucess");
        }
Esempio n. 2
0
        /// <summary>
        /// Send Email Notification to user :Rejection
        /// </summary>
        /// <returns></returns>
        public string sendRejectionNotification()
        {
            var jmsg = string.Empty;

            if (TempData["emailData"] != null && TempData["emailId"] != null)
            {
                var emaildata = TempData["emailData"] as EmailNotificationModel;
                var emailid   = TempData["emailId"].ToString();
                EmailNotifications.SendBookingRequestNotificationTo_Requester(emaildata, emailid);
                jmsg = "Rejected";
            }
            return(jmsg);
        }
Esempio n. 3
0
        /// <summary>
        /// Send Email To User
        /// </summary>
        /// <param name="list"></param>
        /// <param name="reqName"></param>
        /// <param name="reqEmailId"></param>
        /// <param name="hodName"></param>
        /// <param name="appStatus"></param>
        private void SendEmailToUser(List <VendorModels> list, string reqName, string reqEmailId, string hodName, string appStatus)
        {
            var subject = "NON SOD Vendor Booking Response Notification  :" + System.DateTime.Now.ToString("dd/MMM/yyyy hh:mm:ss tt");
            var VendorResponseTemplateName = "VendorResponseEmailTemplate.html";
            var emailCredentials           = EmailCredentials(subject, VendorResponseTemplateName, list);
            var requesttemplateData        = emailCredentials.TemplateFilePath;

            requesttemplateData = requesttemplateData.Replace("[RequesterName]", reqName);
            requesttemplateData = requesttemplateData.Replace("[hodname]", hodName);
            requesttemplateData = requesttemplateData.Replace("[AppStatus]", appStatus);
            emailCredentials.TemplateFilePath = requesttemplateData;
            EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials, reqEmailId);
        }
Esempio n. 4
0
        public JsonResult sendmailtoHOD(List <ITHResponseDetailModels> ithlist)
        {
            var dicList = new Dictionary <string, object>();
            var plist   = new List <OALPassengerModel>();
            var mlist   = new List <OALTravelRequestMasterModel>();

            dicList = _oalRepository.GetOATDetailsData("OAT-" + ithlist[0].TravelRequestId.ToString());
            plist   = dicList["pasgList"] as List <OALPassengerModel>;
            mlist   = dicList["masterList"] as List <OALTravelRequestMasterModel>;

            string hodEmailId = SOD.Services.ADO.SodCommonServices.GetHodEmailDetails(mlist[0].RequestedEmpId.ToString().Trim(), 2);
            var    status     = _oalRepository.saveHODStatus(ithlist[0].TravelRequestId, "Pending");

            if (status > 0)
            {
                //send mail to hod- pasg details, ith details with radio button
                var emailSubject      = "OAT Request Notification from Travel Desk:" + System.DateTime.Now.ToString("dd-MMM-yyyy hh:mm:ss tt");
                var emailTemplateName = "OatRequestNotificationTemplateHodApproval_ITH.html";
                var emailCredentials  = EmailCredentialsHODApproval(emailSubject, emailTemplateName, ithlist, plist);

                var skey = new StringBuilder();
                skey.Append(mlist[0].TravelRequestId.ToString() + ",");
                skey.Append(hodEmailId);

                var uri1 = "";
                var uri2 = "";

                uri1 = ConfigurationManager.AppSettings["emailApprovalPathHod_ITH"].Trim() + "?str=" + skey + "&type=a&trid=" + mlist[0].TravelRequestId;
                //uri2 = ConfigurationManager.AppSettings["emailRejectionPathHod_ITH"].Trim() + "?str=" + skey + "&type=r&trid=" + mlist[0].TravelRequestId;

                var appLink = string.Empty;
                appLink = "<table><tr style='font-family:Arial;'><td style='width:110px; height:25px; background-color:#04B431;text-align:center;border-radius:5px'><a style='color:#fff; text-decoration:none;' href='" + uri1 + "'>Select Option</a></td></tr></table>";
                //appLink = appLink + "<td style='width:110px; height:25px; background-color:#b33;text-align:center;border-radius:5px'><a style='color:#fff; text-decoration:none;' href='" + uri2 + "'>Rejection</a> </td></tr></table>";

                var templateData = emailCredentials.TemplateFilePath;
                var hodName      = hodEmailId.Split(',')[1];

                templateData = templateData.Replace("[appLink]", appLink);
                templateData = templateData.Replace("[hodname]", hodName);

                emailCredentials.TemplateFilePath = templateData;

                TempData["emailData_Hod"] = emailCredentials;
                TempData["emailId_Hod"]   = hodEmailId.Split(',')[0];
                EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials, hodEmailId.Split(',')[0].ToString());

                TempData["msgResponse"] = "OAT Response Notification : Flight details have been sent successfully to Travel desk.";
            }
            return(Json("sent", JsonRequestBehavior.AllowGet));
        }
Esempio n. 5
0
 /// <summary>
 /// Send Email to User as well as HOD
 /// </summary>
 public void sendEmailNotification()
 {
     if (TempData["emailData"] != null && TempData["emailId"] != null)
     {
         var emaildata = TempData["emailData"] as EmailNotificationModel;
         var emailid   = TempData["emailId"].ToString();
         EmailNotifications.SendBookingRequestNotificationTo_Requester(emaildata, emailid);
     }
     if (TempData["emailData_HR"] != null && TempData["emailId_HR"] != null)
     {
         var emaildataHod = TempData["emailData_HR"] as EmailNotificationModel;
         var emailidHod   = TempData["emailId_HR"].ToString();
         EmailNotifications.SendBookingRequestNotificationTo_HOD(emaildataHod, emailidHod);
     }
 }
Esempio n. 6
0
        //[System.Web.Http.HttpGet]
        //[Route("api/FileApi/GetListToFinancialApproval")]
        //public IHttpActionResult GetListToFinancialApproval()
        //{
        //    //var controller = DependencyResolver.Current.GetService<trnsController>();
        //    //try
        //    //{
        //    //    var list = _userRepository.GetListTosendTriggerFinancalApproval();
        //    //    foreach (var lst in list)
        //    //    {
        //    //        controller.ResendApproverRequest(lst.TravelRequestId.ToString(), lst.HotelRequestId.ToString(), "SOD");
        //    //    }
        //    //    return Json( "success");
        //    //}
        //    //catch (Exception ex)
        //    //{
        //    //    throw ex;
        //    //}
        //    return Json("success");
        //}



        /// <summary>
        /// Send Email Notification to booking requester/user
        /// </summary>
        /// <returns></returns>
        private void sendEmailNotification(object emailData, string emailId, object emailData_Hod, string emailId_Hod)
        {
            try
            {
                if (emailData != null && emailId != null)
                {
                    var emaildata = emailData as EmailNotificationModel;
                    var emailid   = emailId;
                    EmailNotifications.SendBookingRequestNotificationTo_Requester(emaildata, emailid);
                }

                if (emailData_Hod != null && emailId_Hod != null)
                {
                    var emaildataHod = emailData_Hod as EmailNotificationModel;
                    var emailidHod   = emailId_Hod;
                    EmailNotifications.SendBookingRequestNotificationTo_HOD(emaildataHod, emailidHod);
                }
            }
            catch (Exception ex)
            {
                var json = ex.InnerException;
            }
        }
Esempio n. 7
0
        /// <summary>

        /// Send Email Notification to booking requester/user
        /// </summary>
        /// <returns></returns>
        public void sendEmailNotification()
        {
            try
            {
                if (TempData["emailData"] != null && TempData["emailId"] != null)
                {
                    var emaildata = TempData["emailData"] as EmailNotificationModel;
                    var emailid   = TempData["emailId"].ToString();
                    EmailNotifications.SendBookingRequestNotificationTo_Requester(emaildata, emailid);
                }

                if (TempData["emailData_Hod"] != null && TempData["emailId_Hod"] != null)
                {
                    var emaildataHod = TempData["emailData_Hod"] as EmailNotificationModel;
                    var emailidHod   = TempData["emailId_Hod"].ToString();
                    EmailNotifications.SendBookingRequestNotificationTo_HOD(emaildataHod, emailidHod);
                }
            }
            catch (Exception ex)
            {
                TempData["fun3"] = ex.InnerException;
            }
        }
Esempio n. 8
0
        public IHttpActionResult Get()
        {
            object emailData  = new object();
            string emailId    = string.Empty;
            var    ListToSend = new List <String>();

            try
            {
                var controller = DependencyResolver.Current.GetService <HotelOnlyController>();
                var res        = _userRepository.GetReminderListTosendApproval(1);
                foreach (var lst in res)
                {
                    var hotelList = new List <TravelRequestHotelDetailModels>();
                    var dicList   = new Dictionary <string, object>();
                    dicList = _userRepository.GetSodHotelInfo(Convert.ToInt64(lst));
                    var    bookingInfo        = dicList["bookingInfolist"] as List <TravelRequestMasterModels>;
                    var    hotel_List         = dicList["hotelinfolist"] as List <TravelRequestHotelDetailModels>;
                    var    flightinfo         = dicList["flightInfolist"] as List <FlightDetailModels>;
                    String hodEmailId         = _userRepository.GetHODEmailIdByTravelReqID(lst.TravelRequestId.ToString());
                    var    emailSubject2      = "SOD-SJSC Hotel Booking Request Notification :" + System.DateTime.Now.ToString();
                    var    emailTemplateName2 = "SodHotelBookingRequestFor_HodHotelApproval.html";

                    var emailCredentials2 = controller.EmailCredentialsHotelHod(emailSubject2, emailTemplateName2, hotel_List, bookingInfo, flightinfo, lst.TravelRequestId.ToString(), hodEmailId);
                    // var emailData_hod = emailCredentials2;


                    var templateData = emailCredentials2.TemplateFilePath;
                    var appLink      = string.Empty;
                    var approvaltype = string.Empty;
                    var emailId_hod  = hodEmailId.Split(',')[0].ToString().Trim();
                    if (hodEmailId.Length > 0)
                    {
                        var skey = new StringBuilder();
                        skey.Append(bookingInfo[0].TravelRequestId.ToString() + ",");
                        skey.Append(bookingInfo[0].EmailId.Trim() + ",");
                        skey.Append(bookingInfo[0].SodBookingTypeId.ToString() + ",");
                        skey.Append(bookingInfo[0].BookingFor.Trim() + ",");
                        skey.Append(hodEmailId.ToString().Trim() + ",");
                        skey.Append(0);

                        var uri1 = ConfigurationManager.AppSettings["emailOnlyHotelApprovalPathHod"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=a");
                        var uri2 = ConfigurationManager.AppSettings["emailOnlyHotelApprovalPathHod"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=r");

                        approvaltype = "Please help to accord your Acceptance or Rejection.";
                        appLink      = "<table><tr style='font-family:Arial;'><td style='width:110px; height:25px; background-color:#04B431;text-align:center;border-radius:5px'><a name='app' style='color:#fff; text-decoration:none;' href='" + uri1 + "'>Acceptance</a></td> <td>&nbsp;</td> <td style='width:110px; height:25px; background-color:#b33;text-align:center;border-radius:5px'><a name='rej' style='color:#fff; text-decoration:none;' href='" + uri2 + "'>Rejection</a> </td></tr></table>";

                        templateData = templateData.Replace("[approvaltype]", approvaltype);
                        templateData = templateData.Replace("[appLink]", appLink);
                        templateData = templateData.Replace("[hodName]", hodEmailId.Split(',')[1]);
                        templateData = templateData.Replace("[RequesterName]", bookingInfo[0].Title + " " + bookingInfo[0].RequestedEmpName);
                        emailCredentials2.TemplateFilePath = templateData;

                        //var emaildata2 = emailData_hod as EmailNotificationModel;
                        var emailid2 = emailId_hod.ToString();
                        EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials2, emailid2);
                        //SendBookingRequestNotificationTo_Requester_Traveldesk
                    }
                }
                return(Json("su"));
            }
            catch (Exception ex)
            {
                return(Json(ex.InnerException.Message.ToString()));

                throw ex;
            }
            return(Json("su"));
        }
Esempio n. 9
0
        /// <summary>
        /// Approve Booking Request for HOD
        /// </summary>
        /// <param name="travelReqId"></param>
        /// <returns></returns>
        public string ApproveOatBookingRequest(string travelReqId)
        {
            var jsonmsg      = string.Empty;
            var approvalList = new OatTravelRequestApprovalModel()
            {
                TravelRequestId        = Convert.ToInt32(travelReqId.Split(',')[0]), //Travel Request
                ApprovedByEmpId        = Convert.ToInt32(travelReqId.Split(',')[1]), //Employee Id of approver
                ApprovalStatus         = 1,
                IsMandatoryTravel      = 0,                                          // Convert.ToInt32(travelReqId.Split(',')[5]), //Is Mandatory Travel
                ApprovalDate           = System.DateTime.Now,
                Comment                = "Approved from HOD",
                ApprovedByEmpIdCLevel1 = 0,
                ApprovedByEmpIdCLevel2 = 0,
                ApprovalStatusCLevel1  = 0,
                ApprovalStatusCLevel2  = 0,
                CLevelComment1         = "",
                CLevelComment2         = "",
                CLevelAppDate1         = DateTime.Parse("01/01/1900"),
                CLevelAppDate2         = DateTime.Parse("01/01/1900"),
                RevenueApprovedStatus  = 0,
                RevenueApprovedDate    = DateTime.Parse("01/01/1900")
            };

            //Check Duplicate PNR
            //var chkpnr = Services.ADO.SodCommonServices.CheckDuplicatePNR(Convert.ToInt64(travelReqId.Split(',')[0]), 1);
            //if (!chkpnr.Equals("0"))
            //{
            //    return "Sorry : PNR has already generated for this booking request. Existing PNR No. :" + chkpnr;
            //}

            var s = _oatApproverRepositorty.ApproveOatBookingRequest(approvalList);

            if (s >= 1)
            {
                //Close Booking Request
                var trRequestMaster = new OALTravelRequestMasterModel()
                {
                    TravelRequestId = Convert.ToInt64(travelReqId.Split(',')[0]),
                    BookingStatus   = "Approved",
                    StatusDate      = System.DateTime.Now
                };
                var c = _oatApproverRepositorty.CloseOatBookingRequest_HOD(trRequestMaster);

                //Get Booking Request Data for Email Notification
                var sodRequestsList = new List <OALTravelRequestMasterModel>();
                var sodflightList   = new List <OALModels>();
                var sodPassList     = new List <OALPassengerModel>();
                var sodhotelList    = new List <OALHotelModel>();
                var dicList         = new Dictionary <string, object>();

                dicList         = _oatApproverRepositorty.GetOatBookingInfoForPNR(Convert.ToInt32(travelReqId.Split(',')[0]));
                sodRequestsList = dicList["bookingInfo"] as List <OALTravelRequestMasterModel>;
                sodflightList   = dicList["flightInfo"] as List <OALModels>;
                sodPassList     = dicList["passInfo"] as List <OALPassengerModel>;
                sodhotelList    = dicList["hotelInfo"] as List <OALHotelModel>;
                //sodPassMealsList = dicList["mealsInfo"] as List<PassengerMealAllocationModels>;

                //Send Approval Email Notification
                string emailSubject      = "OAT Booking Request Approval Notification from HOD :" + System.DateTime.Now.ToString("dd-MMM-yyyy-hh:mm:ss");
                var    emailTemplateName = "OatBookingRequest_Approval_User.html";

                //Send Email Notification Credentials
                var emailCredentials = EmailCredentials(emailSubject, emailTemplateName, sodRequestsList, sodflightList, sodPassList, sodhotelList, travelReqId);
                emailCredentials.TemplateFilePath = emailCredentials.TemplateFilePath.Replace("[Team]", "HOD");
                EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials, sodRequestsList[0].EmailId.Trim());

                jsonmsg = "Approval Alert for Request No. OAT-" + travelReqId.Split(',')[0] + ": \n Approval process has been completed successfully.";
            }
            return(s >= 1 ? jsonmsg : string.Empty);
        }
Esempio n. 10
0
        /// <summary>
        /// Reject Booking Request
        /// </summary>
        /// <param name="travelReqId"></param>
        /// <returns></returns>
        public string RejectOatBookingRequest(string travelReqId)
        {
            var jsonmsg = string.Empty;


            //Initialize list for updating revenue status
            var approvalList = new OatTravelRequestApprovalModel()
            {
                TravelRequestId        = Convert.ToInt32(travelReqId.Split(',')[0]),
                ApprovedByEmpId        = Convert.ToInt32(travelReqId.Split(',')[1]),
                ApprovalStatus         = 2,
                ApprovalDate           = System.DateTime.Now,
                Comment                = "Rejected from HOD",
                ApprovedByEmpIdCLevel1 = 0,
                ApprovedByEmpIdCLevel2 = 0,
                ApprovalStatusCLevel1  = 0,
                ApprovalStatusCLevel2  = 0,
                CLevelComment1         = "",
                CLevelComment2         = "",
                CLevelAppDate1         = DateTime.Parse("01/01/1900"),
                CLevelAppDate2         = DateTime.Parse("01/01/1900"),
                RevenueApprovedStatus  = 0,
                RevenueApprovedDate    = DateTime.Parse("01/01/1900")
            };
            var s = _oatApproverRepositorty.RejectOatBookingRequest(approvalList);

            if (s >= 1)
            {
                //Close Booking Request
                var trRequestMaster = new OALTravelRequestMasterModel()
                {
                    TravelRequestId = Convert.ToInt32(travelReqId.Split(',')[0]),
                    BookingStatus   = "Rejected by HOD",
                    StatusDate      = System.DateTime.Now
                };
                var c = _oatApproverRepositorty.CloseOatBookingRequest_HOD(trRequestMaster);

                //Get Booking Request Data for Email Notification
                var sodRequestsList = new List <OALTravelRequestMasterModel>();
                var sodflightList   = new List <OALModels>();
                var sodPassList     = new List <OALPassengerModel>();
                var sodhotelList    = new List <OALHotelModel>();
                var dicList         = new Dictionary <string, object>();

                dicList         = _oatApproverRepositorty.GetOatBookingInfoForPNR(Convert.ToInt32(travelReqId.Split(',')[0]));
                sodRequestsList = dicList["bookingInfo"] as List <OALTravelRequestMasterModel>;
                sodflightList   = dicList["flightInfo"] as List <OALModels>;
                sodPassList     = dicList["passInfo"] as List <OALPassengerModel>;
                sodhotelList    = dicList["hotelInfo"] as List <OALHotelModel>;
                //sodPassMealsList = dicList["mealsInfo"] as List<PassengerMealAllocationModels>;
                //string bookingType = sodRequestsList[0].SodBookingTypeId == 1 ? "SOD" : "NON-SOD";

                //Send Rejection Email Notification
                string emailSubject      = "OAT Booking Request Rejection Notification from HOD :" + System.DateTime.Now.ToString("dd-MMM-yyyy-hh:mm:ss");
                var    emailTemplateName = "OatBookingRequest_Rejection_User.html";

                //Send Email Notification Credentials
                var emailCredentials = EmailCredentials(emailSubject, emailTemplateName, sodRequestsList, sodflightList, sodPassList, sodhotelList, travelReqId);
                emailCredentials.TemplateFilePath = emailCredentials.TemplateFilePath.Replace("[Team]", "HOD");
                EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials, sodRequestsList[0].EmailId.Trim());

                jsonmsg = "Rejection Alert for Request No. OAT-" + travelReqId.Split(',')[0] + ": \n Rejection process has been completed successfully.";
            }
            return(s >= 1 ? jsonmsg : string.Empty);
        }
Esempio n. 11
0
        /// <summary>
        /// Submit Hotel Info
        /// </summary>
        /// <param name="sodRequestsList"></param>
        /// <param name="sodflightList"></param>
        /// <param name="hotelDetailList"></param>
        /// <returns></returns>
        public JsonResult SubmitHotelInfo(List <TravelRequestMasterModels> sodRequestsList, List <FlightDetailModels> sodflightList, List <TravelRequestHotelDetailModels> hotelDetailList)
        {
            var    s           = 0;
            var    jsonmsg     = string.Empty;
            var    BookingType = string.Empty;
            string hodEmailId  = "";

            sodRequestsList[0].IsVendorBooking = false;
            sodRequestsList[0].IsSJSC          = false;
            //check duplicate hotel data
            if (sodRequestsList[0].IsHotelRequired == true)
            {
                foreach (var i in hotelDetailList)
                {
                    var empcode   = i.EmployeeCode;
                    var checkin   = i.CheckInDate;
                    var hotelcity = i.City;

                    var result = _transportRepository.FindDuplicateDataHotel(empcode, checkin, hotelcity);
                    if (result == true)
                    {
                        jsonmsg             = "Warning: A similar hotel booking already exists. Kindly cancel the previous hotel booking and try again.";
                        TempData["jsonmsg"] = jsonmsg;
                        return(Json(jsonmsg, JsonRequestBehavior.AllowGet));
                    }
                }
            }
            GetLoginUserInfo(sodRequestsList[0].RequestedEmpId.ToString());
            var empInfo = TempData["EmpInfo"] as List <string>;

            hodEmailId = _userRepository.GetHODEmailId(empInfo[8]);
            var r = _userRepository.IsBlanketApproverRole(Convert.ToInt32(empInfo[0]));

            sodRequestsList[0].SJSCHodEmailId = hodEmailId.Split(',')[0].ToString().Trim();
            //Save master Information, flight information, hotel information
            s = _userRepository.SaveOnlyHotelBookingRequest(sodRequestsList, sodflightList, hotelDetailList);
            //send mail to approver and user
            var hotelList = new List <TravelRequestHotelDetailModels>();
            var dicList   = new Dictionary <string, object>();

            dicList = _userRepository.GetSodHotelInfo(Convert.ToInt64(s.ToString()));
            TempData["bookingInfo"] = dicList["bookingInfolist"] as List <TravelRequestMasterModels>;
            TempData["hotelList"]   = dicList["hotelinfolist"] as List <TravelRequestHotelDetailModels>;
            TempData["flightinfo"]  = dicList["flightInfolist"] as List <FlightDetailModels>;
            //Send Email Notification
            if (TempData["hotelList"] != null && TempData["bookingInfo"] != null && TempData["flightinfo"] != null)
            {
                var hotel_List        = TempData["hotelList"] as List <TravelRequestHotelDetailModels>;
                var bookingInfo       = TempData["bookingInfo"] as List <TravelRequestMasterModels>;
                var flightinfo        = TempData["flightinfo"] as List <FlightDetailModels>;
                var emailSubject      = "SOD Only-Hotel Booking Request Notification :" + System.DateTime.Now.ToString();
                var emailTemplateName = "OnlyHotelBookingRequestFor_User.html";
                var emailCredentials  = EmailCredentialsHotel(emailSubject, emailTemplateName, hotel_List, bookingInfo, flightinfo, s.ToString(), "pending");
                TempData["emailData"] = emailCredentials;
                TempData["emailId"]   = bookingInfo[0].EmailId.Trim();
                var emaildata = TempData["emailData"] as EmailNotificationModel;
                var emailid   = TempData["emailId"].ToString();
                EmailNotifications.SendBookingRequestNotificationTo_Requester(emaildata, emailid);

                if (bookingInfo[0].RequestedEmpId.ToString() == hodEmailId.Split(',')[2].ToString().Trim() || r == true)
                {
                    _userRepository.UpdateOnlyHotelApprovalStatus(bookingInfo[0].TravelRequestId);
                    //Redirect to Thank You Page
                    jsonmsg = "SOD Hotel Booking Request ID : " + s.ToString() + " ." + "Booking process has been completed successfully.Your booking request has been sent to Traveldesk for Hotel alignment.";

                    TempData["jsonmsg"] = jsonmsg;
                    return(Json(jsonmsg, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    var emailSubject2      = "SOD Hotel Booking Request Notification :" + System.DateTime.Now.ToString();
                    var emailTemplateName2 = "SodHotelBookingRequestFor_HodHotelApproval.html";
                    var emailCredentials2  = EmailCredentialsHotelHod(emailSubject2, emailTemplateName2, hotel_List, bookingInfo, flightinfo, s.ToString(), hodEmailId);

                    var templateData = emailCredentials2.TemplateFilePath;
                    var appLink      = string.Empty;
                    var approvaltype = string.Empty;
                    if (hodEmailId.Length > 0)
                    {
                        var skey = new StringBuilder();
                        skey.Append(bookingInfo[0].TravelRequestId.ToString() + ",");
                        skey.Append(bookingInfo[0].EmailId.Trim() + ",");
                        skey.Append(bookingInfo[0].SodBookingTypeId.ToString() + ",");
                        skey.Append(bookingInfo[0].BookingFor.Trim() + ",");
                        skey.Append(hodEmailId.Split(',')[2].ToString());

                        var uri1 = ConfigurationManager.AppSettings["emailOnlyHotelApprovalPathHod"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=a");
                        var uri2 = ConfigurationManager.AppSettings["emailOnlyHotelApprovalPathHod"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=r");

                        approvaltype = "Please help to accord your Acceptance or Rejection.";
                        appLink      = "<table><tr style='font-family:Arial;'><td style='width:110px; height:25px; background-color:#04B431;text-align:center;border-radius:5px'><a name='app' style='color:#fff; text-decoration:none;' href='" + uri1 + "'>Acceptance</a></td> <td>&nbsp;</td> <td style='width:110px; height:25px; background-color:#b33;text-align:center;border-radius:5px'><a name='rej' style='color:#fff; text-decoration:none;' href='" + uri2 + "'>Rejection</a> </td></tr></table>";

                        templateData = templateData.Replace("[approvaltype]", approvaltype);
                        templateData = templateData.Replace("[appLink]", appLink);
                        templateData = templateData.Replace("[hodName]", hodEmailId.Split(',')[1]);
                        templateData = templateData.Replace("[RequesterName]", bookingInfo[0].RequestedEmpName);
                        emailCredentials2.TemplateFilePath = templateData;
                        //EMail
                        EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials2, hodEmailId.Split(',')[0].ToString().Trim());
                        //SMS Approval
                        SendSMSforApproval(hodEmailId, bookingInfo[0], hotel_List, uri1, uri2);

                        //Redirect to Thank You Page
                        jsonmsg = "SOD Hotel Booking Request ID : " + s.ToString() + " ." + "Booking process has been completed successfully.Your booking request has been sent to your respected approver at  " + hodEmailId.Split(',')[0].ToString();
                    }
                    TempData["jsonmsg"] = jsonmsg;
                    return(Json(jsonmsg, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                jsonmsg             = "Error: Hotel information cannot be saved. Please try again later.";
                TempData["jsonmsg"] = jsonmsg;
                return(Json(jsonmsg, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 12
0
        /// <summary>
        /// Generate PNR and Send Emal Notification
        /// </summary>
        /// <param name="travelReqId"></param>
        /// <param name="emailId"></param>
        /// <returns></returns>
        private string GeneratePNR(Int64 travelReqId, string emailId)
        {
            //Generate PNR For Approver or HOD
            string strHoldPNR         = ConfigurationManager.AppSettings["strHOLDPNR"].Trim();
            var    sodRequestsList    = new List <TravelRequestMasterModels>();
            var    sodflightList      = new List <FlightDetailModels>();
            var    passengerList      = new List <PassengerDetailModels>();
            var    passengerMealsList = new List <PassengerMealAllocationModels>();
            var    hotelList          = new List <TravelRequestHotelDetailModels>();

            var dicList = new Dictionary <string, object>();

            dicList            = _sodApproverRepositorty.GetSodBookingInfoForPNR(travelReqId);
            sodRequestsList    = dicList["bookingInfo"] as List <TravelRequestMasterModels>;
            sodflightList      = dicList["flightInfo"] as List <FlightDetailModels>;
            passengerList      = dicList["passInfo"] as List <PassengerDetailModels>;
            passengerMealsList = dicList["mealsInfo"] as List <PassengerMealAllocationModels>;
            hotelList          = dicList["hotelInfo"] as List <TravelRequestHotelDetailModels>;

            var reqType = sodRequestsList[0].SodBookingTypeId == 1 ? "SOD" : "NON-SOD";

            //Check Meal Option from Old allocation
            if (passengerMealsList.Count == 0)
            {
                //Add Passenger meal Option for SOD Flights
                foreach (var item in sodflightList)
                {
                    var passengerMealsListItem = new PassengerMealAllocationModels();
                    passengerMealsListItem.TravelRequestId = item.TravelRequestId;
                    passengerMealsListItem.Sector          = item.OriginPlace + "-" + item.DestinationPlace;
                    passengerMealsListItem.MealType        = sodRequestsList[0].Meals;
                    passengerMealsListItem.PassengerId     = 0;
                    passengerMealsList.Add(passengerMealsListItem);
                }
            }
            var pnr = NavitaireServices.Generate_PNR(sodRequestsList, sodflightList, passengerList, passengerMealsList);

            pnr = pnr + "|Close";
            //Update in database
            var c = _sodApproverRepositorty.UpdatePnr(pnr, travelReqId);

            if (c > 0)
            {
                var pnrc = pnr.Split('|')[0];
                if (sodRequestsList[0].IsAmountPaidByTraveller.Equals(true))
                {
                    //Get PNR Booking Time
                    var pnrInfo           = _sodApproverRepositorty.GetPNRAmountAndTime(sodRequestsList[0].TravelRequestId);
                    var holdAmount        = float.Parse(pnrInfo.Split('|')[1]);
                    var holdAmounts       = string.Format("{0:0.00}", holdAmount).ToString();
                    var pnrGenerationTime = Convert.ToDateTime(pnrInfo.Split('|')[2]);

                    //Get Hold Time
                    var holdDateTime = CommonWebMethod.CommonWebMethods.GetHoldBookingDateTime(sodRequestsList[0].SodBookingTypeId, sodRequestsList[0].BookingFor, sodflightList[0].TravelDate, sodflightList[0].DepartureTime, pnrGenerationTime);
                    var HoldTime     = holdDateTime.ToString("t");
                    var HoldDate     = holdDateTime.ToString("dd/MMM/yyyy");
                    var strholdDT    = HoldTime + " dated " + HoldDate;
                    strHoldPNR = strHoldPNR.Replace("[holdDT]", strholdDT);
                    strHoldPNR = strHoldPNR.Replace("[pnrAmt]", holdAmounts);
                    pnrc       = pnrc + "." + strHoldPNR;
                }
                else
                {
                    strHoldPNR = "";
                }

                //Send Email Notification
                var emailSubject           = reqType + " " + "Booking Request Notification Acceptance through Revenue and Itinerary :" + System.DateTime.Now.ToString("dd-MMM-yyyy-hh:mm:ss");
                var emailTemplateName_User = "******";
                var emailCredentials       = EmailCredentials(emailSubject, emailTemplateName_User, sodRequestsList, sodflightList, passengerList, passengerMealsList, hotelList, travelReqId.ToString(), "");
                emailCredentials.TemplateFilePath = emailCredentials.TemplateFilePath.Replace("[PNR]", pnrc);
                EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials, sodRequestsList[0].EmailId.Trim());
            }

            return(pnr.Split('|')[0].Trim().ToString());
        }
Esempio n. 13
0
        /// <summary>
        /// Reject Sod Booking Request
        /// </summary>
        /// <returns></returns>
        public JsonResult RejectSodBookingRequest(string travelReqId)
        {
            var jsonmsg     = string.Empty;
            var bookingType = string.Empty;
            var strHoldPNR  = string.Empty;

            if ((travelReqId.Split(',')[0] == "undefined") || (travelReqId.Split(',')[0] == ""))
            {
                return(Json("Invalid record.", JsonRequestBehavior.AllowGet));
            }
            var approvalList = new TravelRequestApprovalModels()
            {
                TravelRequestId       = Convert.ToInt64(travelReqId.Split(',')[0]),
                ApprovedByEmpId       = Convert.ToInt32(Session["EmpId"].ToString()),
                RevenueApprovedStatus = 2,//for reject
                RevenueApprovedDate   = System.DateTime.Now,
                Comment = travelReqId.Split(',')[4]
            };
            //Check Duplicate PNR
            var chkpnr = Services.ADO.SodCommonServices.CheckDuplicatePNR(Convert.ToInt64(travelReqId.Split(',')[0]), 1);

            if (!chkpnr.Equals("0"))
            {
                return(Json("Sorry : PNR has been already generated for this Booking Request ID-" + travelReqId.Split(',')[0] + ".Rejection is not allowed.\n Existing PNR No. :" + chkpnr, JsonRequestBehavior.AllowGet));
            }

            //Get Data to show for rejection
            var sodRequestsList    = new List <TravelRequestMasterModels>();
            var sodflightList      = new List <FlightDetailModels>();
            var passengerList      = new List <PassengerDetailModels>();
            var approvalInfoList   = new List <TravelRequestApprovalModels>();
            var passengerMealsList = new List <PassengerMealAllocationModels>();
            var hotelList          = new List <TravelRequestHotelDetailModels>();
            var s = _sodApproverRepositorty.RejectSodBookingRequest_Revenue(approvalList);

            if (s >= 1)
            {
                var dicList = new Dictionary <string, object>();
                dicList            = _sodApproverRepositorty.GetSodBookingInfoForPNR(Convert.ToInt64(travelReqId.Split(',')[0]));
                sodRequestsList    = dicList["bookingInfo"] as List <TravelRequestMasterModels>;
                sodflightList      = dicList["flightInfo"] as List <FlightDetailModels>;
                passengerList      = dicList["passInfo"] as List <PassengerDetailModels>;
                approvalInfoList   = dicList["approvalInfo"] as List <TravelRequestApprovalModels>;
                passengerMealsList = dicList["mealsInfo"] as List <PassengerMealAllocationModels>;
                hotelList          = dicList["hotelInfo"] as List <TravelRequestHotelDetailModels>;
                bookingType        = sodRequestsList[0].SodBookingTypeId == 1 ? "SOD" : "NON-SOD";

                //by lata (to gnerate standby PNR and send Email notification
                if (travelReqId.Split(',')[5] == "1")
                {
                    sodRequestsList[0].BookingFor = "standby";
                    var pnr = NavitaireServices.Generate_PNR(sodRequestsList, sodflightList, passengerList, passengerMealsList);
                    pnr = pnr + "|0001.11";
                    var pnrc = "Your Standby PNR is :" + pnr.Split('|')[0];
                    //insert value in sodtravelrequestmaster_reject with standbyPNR
                    SaveRejectwithStandByPNR(sodRequestsList[0], pnr);

                    sendNotification_RejectStandby(sodRequestsList, sodflightList, passengerList, passengerMealsList, hotelList, travelReqId.Split(',')[0], pnrc);
                }
                //Hold PNR
                if (sodRequestsList[0].IsAmountPaidByTraveller.Equals(true))
                {
                    strHoldPNR = ConfigurationManager.AppSettings["strHOLDPNRPassenger"].Trim();
                }
                else
                {
                    strHoldPNR = "";
                }
                //Send Rejection Email Notification
                var emailSubject      = bookingType + " " + "Booking Request Notification Rejection through Revenue and Itinerary :" + System.DateTime.Now.ToString("dd-MMM-yyyy-hh:mm:ss");
                var emailTemplateName = "SodBookingRequest_Rejection_User.html";
                var emailCredentials  = EmailCredentials(emailSubject, emailTemplateName, sodRequestsList, sodflightList, passengerList, passengerMealsList, hotelList, travelReqId.Split(',')[0].ToString(), strHoldPNR);

                if (approvalInfoList[0].IsMandatoryTravel == 1)
                {
                    emailCredentials.TemplateFilePath = emailCredentials.TemplateFilePath.Replace("[Team]", "Revenue Dept. and forwarded to C-Level Approval.");
                }
                else if (approvalInfoList[0].IsMandatoryTravel == 0)
                {
                    emailCredentials.TemplateFilePath = emailCredentials.TemplateFilePath.Replace("[Team]", "Revenue Dept. and the booking request has been closed.");
                }

                TempData["emailData"] = emailCredentials;
                TempData["emailId"]   = sodRequestsList[0].EmailId.Trim();

                //Check If Mandatory for send email
                if (approvalInfoList[0].IsMandatoryTravel == 1)
                {
                    emailSubject      = bookingType + " " + "Booking Request Notification Rejection through Revenue and Itinerary :" + System.DateTime.Now.ToString("dd-MMM-yyyy-hh:mm:ss");
                    emailTemplateName = "SodBookingRequestNotificationTemplate_HOD.html";

                    //Send Notification to C-Level: Need C- Level Approval Email Template
                    var      counter  = 0;
                    var      emailids = _sodApproverRepositorty.GetCXOMailId(sodRequestsList[0].CLevelApprover1, sodRequestsList[0].CLevelApprover2);
                    string[] arr      = emailids.Split('|');

                    if (arr.Length == 2)
                    {
                        counter = 1;
                    }
                    else if (arr.Length == 4)
                    {
                        counter = 2;
                    }

                    for (int i = 0; i <= counter; i++)
                    {
                        var skey = new StringBuilder();
                        skey.Append(sodRequestsList[0].TravelRequestId.ToString() + ",");
                        skey.Append(sodRequestsList[0].EmailId.Trim() + ",");
                        skey.Append(sodRequestsList[0].SodBookingTypeId.ToString() + ",");
                        skey.Append(sodRequestsList[0].BookingFor.Trim() + ",");
                        skey.Append(arr[i] + ",");
                        skey.Append(sodRequestsList[0].IsMandatoryTravel.ToString() + ",RN");

                        var uri1 = ConfigurationManager.AppSettings["emailApprovalPathcxo"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=a");
                        var uri2 = ConfigurationManager.AppSettings["emailApprovalPathcxo"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=r");

                        var approvaltype = "Please help to accord your Acceptance or Rejection.";
                        var appLink      = "<table><tr style='font-family:Arial;'><td style='width:110px; height:25px; background-color:#04B431;text-align:center;border-radius:5px'><a name='app' style='color:#fff; text-decoration:none;' href='" + uri1 + "'>Acceptance</a></td> <td>&nbsp;</td> <td style='width:110px; height:25px; background-color:#b33;text-align:center;border-radius:5px'><a name='rej' style='color:#fff; text-decoration:none;' href='" + uri2 + "'>Rejection</a> </td></tr></table>";

                        //Wrap link in template
                        emailCredentials = EmailCredentials(emailSubject, emailTemplateName, sodRequestsList, sodflightList, passengerList, passengerMealsList, hotelList, travelReqId.Split(',')[0].ToString(), strHoldPNR);
                        var templateData = emailCredentials.TemplateFilePath;
                        var hodName      = "Sir/Madam";

                        templateData = templateData.Replace("[approvaltype]", approvaltype);
                        templateData = templateData.Replace("[appLink]", appLink);
                        templateData = templateData.Replace("[hodName]", hodName);
                        emailCredentials.TemplateFilePath = templateData;
                        i = i + 1;
                        EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials, arr[i]);
                    }
                    jsonmsg = bookingType + " " + "booking request has been rejected and has been sent to CXO Panel.";
                }
                else if (approvalInfoList[0].IsMandatoryTravel == 0)
                {
                    //This methos also can be used by Revenue dept to close the Booking Request
                    var trRequestMaster = new TravelRequestMasterModels()
                    {
                        TravelRequestId = Convert.ToInt64(travelReqId.Split(',')[0]),
                        BookingStatus   = "Close",
                        StatusDate      = System.DateTime.Now
                    };
                    var c = _sodApproverRepositorty.CloseSodBookingRequest_HOD(trRequestMaster);
                    jsonmsg = bookingType + " " + "booking request has been rejected and the request has been closed.";
                }
            }
            return(Json(s >= 1 ? jsonmsg : string.Empty, JsonRequestBehavior.AllowGet));
        }
Esempio n. 14
0
        /// <summary>
        /// Send Email Notification & generate PNR for booking requester/user
        /// </summary>
        /// <returns></returns>
        public string BackgroundProcessNotification()
        {
            var jsonmsg = string.Empty;
            //Sod Confirm booking
            var travelReqId = TempData["requestData"].ToString();

            if (travelReqId.Split(',')[2].Equals("SOD") && travelReqId.Split(',')[3].Equals("Confirm"))
            {
                var pnrStatus = GeneratePNR(Convert.ToInt64(travelReqId.Split(',')[0]), travelReqId.Split(',')[1].Trim());
                if (pnrStatus.Length.Equals(6))
                {
                    jsonmsg = "SOD Booking Request ID :" + travelReqId.Split(',')[2].ToUpper() + "-" + travelReqId.Split(',')[0] + "\n Booking Type :Confirm \n\n Approval Process has been completed successfully.\n PNR No :" + pnrStatus;
                }
            }
            else
            {
                //Send Email Notification to One CXO  :23-Nov-2016
                //Get Data to show for rejection
                var strHoldPNR         = "";
                var sodRequestsList    = new List <TravelRequestMasterModels>();
                var sodflightList      = new List <FlightDetailModels>();
                var passengerList      = new List <PassengerDetailModels>();
                var approvalInfoList   = new List <TravelRequestApprovalModels>();
                var passengerMealsList = new List <PassengerMealAllocationModels>();
                var hotelList          = new List <TravelRequestHotelDetailModels>();
                var dicList            = new Dictionary <string, object>();

                //Fill Value in List
                dicList            = _sodApproverRepositorty.GetSodBookingInfoForPNR(Convert.ToInt64(travelReqId.Split(',')[0]));
                sodRequestsList    = dicList["bookingInfo"] as List <TravelRequestMasterModels>;
                sodflightList      = dicList["flightInfo"] as List <FlightDetailModels>;
                passengerList      = dicList["passInfo"] as List <PassengerDetailModels>;
                approvalInfoList   = dicList["approvalInfo"] as List <TravelRequestApprovalModels>;
                passengerMealsList = dicList["mealsInfo"] as List <PassengerMealAllocationModels>;
                hotelList          = dicList["hotelInfo"] as List <TravelRequestHotelDetailModels>;
                var bookingType = sodRequestsList[0].SodBookingTypeId == 1 ? "SOD" : "NON-SOD";

                //Allocate Email Template
                var emailSubject      = bookingType + " " + "Booking Request Notification Acceptance through Revenue and Itinerary :" + System.DateTime.Now.ToString("dd-MMM-yyyy-hh:mm:ss");
                var emailTemplateName = "SodBookingRequestNotificationTemplate_HOD.html";

                //Send Notification to one C-Level:
                var strcxodetails = _sodApproverRepositorty.GetCXOMailId(sodRequestsList[0].CLevelApprover1, sodRequestsList[0].CLevelApprover2);
                var emailid       = strcxodetails.Split('|')[1];
                var cxoEmpId      = strcxodetails.Split('|')[0];

                var skey = new StringBuilder();
                skey.Append(sodRequestsList[0].TravelRequestId.ToString() + ",");
                skey.Append(sodRequestsList[0].EmailId.Trim() + ",");
                skey.Append(sodRequestsList[0].SodBookingTypeId.ToString() + ",");
                skey.Append(sodRequestsList[0].BookingFor.Trim() + ",");
                skey.Append(cxoEmpId + ",");
                skey.Append(sodRequestsList[0].IsMandatoryTravel.ToString() + ",RY");

                //passing querystring
                var uri1 = ConfigurationManager.AppSettings["emailApprovalPathcxo"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=a");
                var uri2 = ConfigurationManager.AppSettings["emailApprovalPathcxo"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=r");

                var approvaltype = "Please help to accord your Acceptance or Rejection.";
                var appLink      = "<table><tr style='font-family:Arial;'><td style='width:110px; height:25px; background-color:#04B431;text-align:center;border-radius:5px'><a name='app' style='color:#fff; text-decoration:none;' href='" + uri1 + "'>Acceptance</a></td> <td>&nbsp;</td> <td style='width:110px; height:25px; background-color:#b33;text-align:center;border-radius:5px'><a name='rej' style='color:#fff; text-decoration:none;' href='" + uri2 + "'>Rejection</a> </td></tr></table>";

                //Get Hold booking Status
                if (sodRequestsList[0].IsAmountPaidByTraveller.Equals(true))
                {
                    strHoldPNR = ConfigurationManager.AppSettings["strHOLDPNRPassenger"].Trim();
                }
                else
                {
                    strHoldPNR = "";
                }

                //Wrap link in template
                var emailCredentials = EmailCredentials(emailSubject, emailTemplateName, sodRequestsList, sodflightList, passengerList, passengerMealsList, hotelList, travelReqId.Split(',')[0].ToString(), strHoldPNR);
                var templateData     = emailCredentials.TemplateFilePath;
                var hodName          = "Sir/Madam";

                templateData = templateData.Replace("[approvaltype]", approvaltype);
                templateData = templateData.Replace("[appLink]", appLink);
                templateData = templateData.Replace("[hodName]", hodName);
                emailCredentials.TemplateFilePath = templateData;

                //Send email notification
                EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials, emailid);
                jsonmsg = "SOD Booking Request ID :" + travelReqId.Split(',')[2].ToUpper() + "-" + travelReqId.Split(',')[0] + "\n Booking Type :Confirm \n\n Approval Process has been completed successfully.\n The booking request has been sent to CXO Panel at -" + emailid;
            }
            return(jsonmsg);
        }