Exemple #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            Int32       nooflegs   = Int32.Parse(Request.Params.Get("nooflegs"));
            BookRequest b          = new BookRequest();
            Customer    check      = CustomerBO.GetLoggedInCustomer();
            Agent       agentcheck = AgentBO.GetLoggedInAgent();

            b.IsAgent = false;
            Contact c = new Contact();
            if (check != null)
            {
                c.Name  = check.Name;
                c.Email = check.Email;
                c.Phone = check.ContactNo;
            }
            else
            {
                c.Name  = Request.Params.Get("Name");
                c.Email = Request.Params.Get("Email");
                c.Phone = Request.Params.Get("ContactNo");


                if (agentcheck != null)
                {
                    b.IsAgent = true;
                    b.Agent   = agentcheck;
                }
                else if (Session["AgentID"] != null)
                {
                    b.IsAgent = true;
                    Agent a = AgentDAO.FindAgentByID((long)Session["AgentID"]);
                    b.Agent = a;
                }
                else
                {
                    Customer custemail = CustomerDAO.CheckCustomerByEmail(Request.Params.Get("Email"));
                    if (custemail == null)
                    {
                        Customer cust = new Customer();
                        cust.Email     = Request.Params.Get("Email");;
                        cust.ContactNo = Request.Params.Get("ContactNo");
                        cust.Name      = Request.Params.Get("Name");
                        cust.Password  = CustomerBO.GeneratePassword();
                        cust.Status    = 1;
                        CustomerDAO.MakePersistent(cust);
                        check = cust;
                        EmailBO em = new EmailBO("NewCustomer", Session["Country"].ToString());
                        em.SendEmailToCustomer(check);
                    }
                    else
                    {
                        check = custemail;
                    }
                }
            }
            if (Request.Params.Get("fixedpricecharter") != null)
            {
                FixedPriceCharter el = BookRequestDAO.FindFixedPriceCharterByID(Int64.Parse(Request.Params.Get("fixedpricecharter")));
                b.FixedPriceCharter = el;
            }
            c.Description    = Request.Params.Get("OtherDetails");
            b.PAX            = Int32.Parse(Request.Params.Get("PAX"));
            b.Budget         = Double.Parse(Request.Params.Get("budget"));
            b.FinalBudget    = BookRequestBO.GetFinalBudget(b.Budget, AdminBO.GetCountry());
            b.ContactDetails = c;
            b.TimeofCreation = DateTime.Now;
            b.TripType       = Request.Params.Get("TripType");
            AirplaneType apt = OperatorDAO.FindAircraftTypeByID(Request.Params.Get("aircrafttype"));
            b.PlaneType = apt;
            b.Status    = 0;
            b.Domain    = AdminDAO.GetCountryByID(Session["Country"].ToString());
            for (int i = 1; i <= nooflegs; i++)
            {
                Leg l = new Leg();
                l.Sequence = i;
                ListSet fromairfields = AirfieldBO.GetAirfields(Request.Params.Get("fromleg" + i));
                ListSet toairfields   = AirfieldBO.GetAirfields(Request.Params.Get("toleg" + i));

                foreach (Airfield a in fromairfields)
                {
                    if (l.Source == null)
                    {
                        l.Source = a;
                    }
                }
                if (l.Source.IsTemporary())
                {
                    l.Source = AirfieldBO.SaveAirfield(l.Source);
                }
                foreach (Airfield a in toairfields)
                {
                    if (l.Destination == null)
                    {
                        l.Destination = a;
                    }
                }
                if (l.Destination.IsTemporary())
                {
                    l.Destination = AirfieldBO.SaveAirfield(l.Destination);
                }
                l.Date = DateTime.Parse(Request.Params.Get("dateleg" + i) + " " + Request.Params.Get("timeleg" + i));
                b.AddLeg(l);
            }

            b = BookRequestBO.AcceptBookRequest(b);
            if (b.FixedPriceCharter == null)
            {
                OperatorResolver opr = new OperatorResolver(OperatorBO.OperatorResolve);
                opr.BeginInvoke(b, null, null);
            }
            else
            {
                EmailBO em = new EmailBO("FixedPriceCharterNotificationToOperator", Session["Country"].ToString());
                em.SendEmailToOperator(b.FixedPriceCharter.Aircraft.Vendor);
            }
            if (b.IsAgent)
            {
                EmailBO em = new EmailBO("AgentThanksRequest", Session["Country"].ToString());
                em.SendEmailToAgent(b.Agent);
            }
            else
            {
                EmailBO em = new EmailBO("CustomerThanksRequest", Session["Country"].ToString());
                em.SendEmailToCustomer(check);
            }
            Session.Add("bid", b.BookID);
        }
        catch (AifieldNotFoundException ax)
        {
            Response.Redirect(Request.UrlReferrer.OriginalString + "?" + Serialize(Request.QueryString));
        }
        catch (Exception ex)
        {
            Response.Redirect("QuickQuote.aspx");
        }
        Response.Redirect("RequestSent.aspx");
    }