public int AddDriverProfile(ProfileCardEntity profileCard, OrderFormEntity orderForm, List <DriverInterviewProfileEntity> driverInterviewProfiles, List <DriverServiceEntity> driverServices)
        {
            int driverProfileID = 0;

            using (uow = new UnitOfWork.UnitOfWork())
            {
                try
                {
                    OrderForm orderFormdb = new OrderForm();
                    orderFormdb.PhysicalAddress = orderForm.PhysicalAddress;
                    orderFormdb.BillingAddress  = orderForm.BillingAddress;
                    orderFormdb.CA = orderForm.CA;
                    orderFormdb.ComplianceSupervisor = orderForm.ComplianceSupervisor;
                    orderFormdb.DateTime             = Helper.DateTimeJavaScript.GetCurrentTime().ToString();
                    orderFormdb.DBA                 = orderForm.DBA;
                    orderFormdb.LegalName           = orderForm.LegalName;
                    orderFormdb.Name                = orderForm.Name;
                    orderFormdb.Email               = orderForm.Email;
                    orderFormdb.NameOnCard          = orderForm.NameOnCard;
                    orderFormdb.OrderFormID         = orderForm.OrderFormID;
                    orderFormdb.USDot               = orderForm.USDot;
                    orderFormdb.DriverPhone         = orderForm.DriverPhone;
                    orderFormdb.CompanyType         = orderForm.CompanyType;
                    orderFormdb.IsSubmitted         = orderForm.IsSubmitted;
                    orderFormdb.ComplianceUserID    = orderForm.ComplianceUserID;
                    orderFormdb.SaleID              = orderForm.SaleID;
                    orderFormdb.DOTPinNo            = orderForm.DOTPinNo;
                    orderFormdb.AdditionalPhoneNo   = orderForm.AdditionalPhoneNo;
                    orderFormdb.AdditionalPhoneType = orderForm.AdditionalPhoneType;
                    uow.OrderFormRepository.Insert(orderFormdb);
                    uow.Save();

                    ProfileCard profileCarddb = new ProfileCard();
                    profileCarddb.CardType        = profileCard.CardType;
                    profileCarddb.CorDC           = profileCard.CorDC;
                    profileCarddb.CVC             = profileCard.CVC;
                    profileCarddb.OrderFormID     = orderFormdb.OrderFormID;
                    profileCarddb.Expiration      = profileCard.Expiration;
                    profileCarddb.ProfileCardInfo = profileCard.ProfileCardInfo;
                    profileCarddb.IsSubmitted     = profileCard.IsSubmitted;
                    uow.ProfileCardRepository.Insert(profileCarddb);
                    uow.Save();

                    foreach (DriverServiceEntity driverService in driverServices)
                    {
                        DriverService driverServicedb = new DriverService();
                        driverServicedb.DriverInterviewProfileID = orderFormdb.OrderFormID;
                        driverServicedb.ServiceID = driverService.ServiceID;
                        uow.DriverServiceRepository.Insert(driverServicedb);
                        uow.Save();
                    }

                    foreach (DriverInterviewProfileEntity driverInterviewProfile in driverInterviewProfiles)
                    {
                        DriverInterviewProfile driverInterviewProfiledb = new DriverInterviewProfile();
                        driverInterviewProfiledb.Class          = driverInterviewProfile.Class;
                        driverInterviewProfiledb.Date           = driverInterviewProfile.Date;
                        driverInterviewProfiledb.DOB            = driverInterviewProfile.DOB;
                        driverInterviewProfiledb.DriverName     = driverInterviewProfile.DriverName;
                        driverInterviewProfiledb.OrderFormID    = orderFormdb.OrderFormID;
                        driverInterviewProfiledb.EIN            = driverInterviewProfile.EIN;
                        driverInterviewProfiledb.Email          = driverInterviewProfile.Email;
                        driverInterviewProfiledb.ExpirationDate = driverInterviewProfile.ExpirationDate;
                        driverInterviewProfiledb.LegalName      = driverInterviewProfile.LegalName;
                        driverInterviewProfiledb.LicenseNo      = driverInterviewProfile.LicenseNo;
                        driverInterviewProfiledb.Notes          = driverInterviewProfile.Notes;
                        driverInterviewProfiledb.Phone          = driverInterviewProfile.Phone;
                        driverInterviewProfiledb.SSN            = driverInterviewProfile.SSN;
                        driverInterviewProfiledb.StatusIssued   = driverInterviewProfile.StatusIssued;
                        driverInterviewProfiledb.Supervisor     = driverInterviewProfile.Supervisor;
                        driverInterviewProfiledb.USDOT          = driverInterviewProfile.USDOT;
                        driverInterviewProfiledb.CDLNonCDL      = driverInterviewProfile.CDLNonCDL;
                        driverInterviewProfiledb.IsSubmitted    = driverInterviewProfile.IsSubmitted;
                        uow.DriverInterviewProfileRepository.Insert(driverInterviewProfiledb);
                        uow.Save();



                        foreach (DriverVehicleCargoEntity drivercargo in driverInterviewProfile.DriverCargos)
                        {
                            DriverVehicleCargo driverVehicleCargodb = new DriverVehicleCargo();
                            driverVehicleCargodb.DriverVehicleID  = driverInterviewProfiledb.DriverInterviewID;
                            driverVehicleCargodb.CargoCarriedName = drivercargo.CargoCarriedName;
                            uow.DriverVehicleCargoRepository.Insert(driverVehicleCargodb);
                            uow.Save();
                        }


                        DriverVehicle driverVehicledb = new DriverVehicle();
                        driverVehicledb.OrderFormID       = driverInterviewProfiledb.DriverInterviewID;
                        driverVehicledb.DriverVehicleInfo = driverInterviewProfile.DriverVehicle.DriverVehicleInfo;
                        driverVehicledb.GVW   = driverInterviewProfile.DriverVehicle.GVW;
                        driverVehicledb.Make  = driverInterviewProfile.DriverVehicle.Make;
                        driverVehicledb.Model = driverInterviewProfile.DriverVehicle.Model;
                        driverVehicledb.Year  = driverInterviewProfile.DriverVehicle.Year;
                        uow.DriverVehicleRepository.Insert(driverVehicledb);
                        uow.Save();
                    }
                }
                catch
                {
                    driverProfileID = 0;
                }
            }

            return(driverProfileID);
        }
        public bool EditDriverProfile(int driverProfileID, ProfileCardEntity profileCard, OrderFormEntity orderForm, List <DriverInterviewProfileEntity> driverInterviewProfiles, bool isSubmitted, List <DriverServiceEntity> driverServices)
        {
            bool isDriverProfileEdited = false;

            using (uow = new UnitOfWork.UnitOfWork())
            {
                try
                {
                    OrderForm orderFormdb = uow.OrderFormRepository.Get().Where(x => x.OrderFormID == driverProfileID).FirstOrDefault();
                    orderFormdb.PhysicalAddress = orderForm.PhysicalAddress;
                    orderFormdb.BillingAddress  = orderForm.BillingAddress;
                    orderFormdb.CA = orderForm.CA;
                    orderFormdb.ComplianceSupervisor = orderForm.ComplianceSupervisor;
                    orderFormdb.DateTime             = Helper.DateTimeJavaScript.GetCurrentTime().ToString();
                    orderFormdb.DBA                 = orderForm.DBA;
                    orderFormdb.LegalName           = orderForm.LegalName;
                    orderFormdb.Name                = orderForm.Name;
                    orderFormdb.Email               = orderForm.Email;
                    orderFormdb.NameOnCard          = orderForm.NameOnCard;
                    orderFormdb.USDot               = orderForm.USDot;
                    orderFormdb.DriverPhone         = orderForm.DriverPhone;
                    orderFormdb.CompanyType         = orderForm.CompanyType;
                    orderFormdb.IsSubmitted         = orderForm.IsSubmitted;
                    orderFormdb.DOTPinNo            = orderForm.DOTPinNo;
                    orderFormdb.ComplianceUserID    = orderForm.ComplianceUserID;
                    orderFormdb.AdditionalPhoneNo   = orderForm.AdditionalPhoneNo;
                    orderFormdb.AdditionalPhoneType = orderForm.AdditionalPhoneType;
                    uow.OrderFormRepository.Update(orderFormdb);
                    uow.Save();

                    ProfileCard profileCarddb = uow.ProfileCardRepository.Get().Where(x => x.OrderFormID == driverProfileID).FirstOrDefault();
                    profileCarddb.CardType    = profileCard.CardType;
                    profileCarddb.CorDC       = profileCard.CorDC;
                    profileCarddb.CVC         = profileCard.CVC;
                    profileCarddb.OrderFormID = orderFormdb.OrderFormID;
                    profileCarddb.Expiration  = profileCard.Expiration;
                    profileCarddb.IsSubmitted = profileCard.IsSubmitted;
                    uow.ProfileCardRepository.Update(profileCarddb);
                    uow.Save();

                    List <DriverService> usDotServiceTemp = uow.DriverServiceRepository.Get().Where(x => x.DriverInterviewProfileID == orderFormdb.OrderFormID).ToList();
                    foreach (DriverService service in usDotServiceTemp)
                    {
                        uow.DriverServiceRepository.Delete(service);
                        uow.Save();
                    }

                    if (driverServices != null)
                    {
                        foreach (DriverServiceEntity driverService in driverServices)
                        {
                            DriverService driverServicedb = new DriverService();
                            driverServicedb.DriverInterviewProfileID = orderFormdb.OrderFormID;
                            driverServicedb.ServiceID = driverService.ServiceID;
                            uow.DriverServiceRepository.Insert(driverServicedb);
                            uow.Save();
                        }
                    }

                    List <DriverInterviewProfile> usDotDriverInterviewProfileTemp = uow.DriverInterviewProfileRepository.Get().Where(x => x.OrderFormID == driverProfileID).ToList();
                    foreach (DriverInterviewProfile item in usDotDriverInterviewProfileTemp)
                    {
                        List <DriverVehicleCargo> usDotVehicleCargoTemp = uow.DriverVehicleCargoRepository.Get().Where(x => x.DriverVehicleID == item.DriverInterviewID).ToList();
                        foreach (DriverVehicleCargo vehicleCargo in usDotVehicleCargoTemp)
                        {
                            uow.DriverVehicleCargoRepository.Delete(vehicleCargo);
                            uow.Save();
                        }

                        List <DriverVehicle> usDotVehicleTemp = uow.DriverVehicleRepository.Get().Where(x => x.OrderFormID == item.DriverInterviewID).ToList();
                        foreach (DriverVehicle vehicleCargo in usDotVehicleTemp)
                        {
                            uow.DriverVehicleRepository.Delete(vehicleCargo);
                            uow.Save();
                        }

                        uow.DriverInterviewProfileRepository.Delete(item);
                        uow.Save();
                    }

                    foreach (DriverInterviewProfileEntity driverInterviewProfile in driverInterviewProfiles)
                    {
                        DriverInterviewProfile driverInterviewProfiledb = new DriverInterviewProfile();
                        driverInterviewProfiledb.Class          = driverInterviewProfile.Class;
                        driverInterviewProfiledb.Date           = driverInterviewProfile.Date;
                        driverInterviewProfiledb.DOB            = driverInterviewProfile.DOB;
                        driverInterviewProfiledb.DriverName     = driverInterviewProfile.DriverName;
                        driverInterviewProfiledb.OrderFormID    = orderFormdb.OrderFormID;
                        driverInterviewProfiledb.EIN            = driverInterviewProfile.EIN;
                        driverInterviewProfiledb.Email          = driverInterviewProfile.Email;
                        driverInterviewProfiledb.ExpirationDate = driverInterviewProfile.ExpirationDate;
                        driverInterviewProfiledb.LegalName      = driverInterviewProfile.LegalName;
                        driverInterviewProfiledb.LicenseNo      = driverInterviewProfile.LicenseNo;
                        driverInterviewProfiledb.Notes          = driverInterviewProfile.Notes;
                        driverInterviewProfiledb.Phone          = driverInterviewProfile.Phone;
                        driverInterviewProfiledb.SSN            = driverInterviewProfile.SSN;
                        driverInterviewProfiledb.StatusIssued   = driverInterviewProfile.StatusIssued;
                        driverInterviewProfiledb.Supervisor     = driverInterviewProfile.Supervisor;
                        driverInterviewProfiledb.USDOT          = driverInterviewProfile.USDOT;
                        driverInterviewProfiledb.CDLNonCDL      = driverInterviewProfile.CDLNonCDL;
                        driverInterviewProfiledb.IsSubmitted    = driverInterviewProfile.IsSubmitted;
                        uow.DriverInterviewProfileRepository.Insert(driverInterviewProfiledb);
                        uow.Save();

                        if (driverInterviewProfile.DriverCargos != null)
                        {
                            foreach (DriverVehicleCargoEntity drivercargo in driverInterviewProfile.DriverCargos)
                            {
                                DriverVehicleCargo driverVehicleCargodb = new DriverVehicleCargo();
                                driverVehicleCargodb.DriverVehicleID  = driverInterviewProfiledb.DriverInterviewID;
                                driverVehicleCargodb.CargoCarriedName = drivercargo.CargoCarriedName;
                                uow.DriverVehicleCargoRepository.Insert(driverVehicleCargodb);
                                uow.Save();
                            }
                        }

                        DriverVehicle driverVehicledb = new DriverVehicle();
                        driverVehicledb.OrderFormID       = driverInterviewProfiledb.DriverInterviewID;
                        driverVehicledb.DriverVehicleInfo = driverInterviewProfile.DriverVehicle.DriverVehicleInfo;
                        driverVehicledb.GVW   = driverInterviewProfile.DriverVehicle.GVW;
                        driverVehicledb.Make  = driverInterviewProfile.DriverVehicle.Make;
                        driverVehicledb.Model = driverInterviewProfile.DriverVehicle.Model;
                        driverVehicledb.Year  = driverInterviewProfile.DriverVehicle.Year;
                        uow.DriverVehicleRepository.Insert(driverVehicledb);
                        uow.Save();
                    }

                    isDriverProfileEdited = true;
                }
                catch
                {
                    isDriverProfileEdited = false;
                }
            }


            return(isDriverProfileEdited);
        }
        public void LoadDriverProfile()
        {
            int orderid = Convert.ToInt32(Request.QueryString["USDotSaleID"]);
            DriverSaleEntity usdotDriver = driverProfileHelper.GetSalesByOrderID(true, orderid);

            txtCardNo.Text  = usdotDriver.profileCard.CorDC;
            hidCardNo.Value = usdotDriver.profileCard.CorDC;

            ulcardtype.Attributes["class"] = usdotDriver.profileCard.CardType;


            txtExpiration.Text = usdotDriver.profileCard.Expiration;
            txtCVC.Text        = usdotDriver.profileCard.CVC;

            OrderFormEntity order = usdotDriver.orderForm;

            txtUSDOT.Text      = order.USDot;
            txtCA.Text         = order.CA;
            txtNameOnCard.Text = order.NameOnCard;
            txtName.Text       = order.Name;
            txtDBA.Text        = order.DBA;
            txtLegalName.Text  = order.LegalName;
            chkCompanyType.Items.FindByText(order.CompanyType).Selected = true;
            txtMailingAddress.Text    = order.PhysicalAddress;
            txtBillingAddress.Text    = order.BillingAddress;
            txtEmailAddress.Text      = order.Email;
            txtDateTime.Text          = DateTime.Now.ToString();
            txtAdditionalPhoneNo.Text = order.DriverPhone;
            drpComplianceSupervisor.Items.FindByValue(order.ComplianceSupervisor).Selected = true;

            int DriverProfileID = usdotDriver.driverInterviewProfiles.FirstOrDefault().DriverInterviewID;
            DriverVehicleEntity             driverVehicle          = usdotDriver.driverInterviewProfiles.FirstOrDefault().DriverVehicle;
            List <DriverVehicleCargoEntity> driverVehicleCargoData = usdotDriver.driverInterviewProfiles.FirstOrDefault().DriverCargos.Where(x => x.DriverVehicleID == DriverProfileID).ToList();

            List <DriverInterviewProfileEntity> driverInterviewProfiles = usdotDriver.driverInterviewProfiles.Where(x => x.OrderFormID == order.OrderFormID).ToList();
            DriverInterviewProfileEntity        driverInterviewProfile  = usdotDriver.driverInterviewProfiles.FirstOrDefault();

            lstDrivers.DataSource = driverInterviewProfiles;
            lstDrivers.DataBind();

            foreach (DriverServiceEntity item in usdotDriver.driverServices)
            {
                DocumentEL docEL = new DocumentEL();
                docEL.Description      = item.ServicePrice;
                docEL.DocumentID       = documentDal.GetDocumentTypeByName(item.ServiceName).DocumentTypeID;
                docEL.DocumentTypeName = item.ServiceName;
                serviceListData.Add(docEL);
            }

            //lstServicesPurchased.DataSource = serviceListData;
            //lstServicesPurchased.DataBind();
            Session["services"]         = serviceListData;
            Session["completeservices"] = serviceListData;
            if (driverInterviewProfile != null)
            {
                txtDate.Text               = DateTime.Now.ToShortDateString();
                txtDriverLegalName.Text    = driverInterviewProfile.LegalName;
                txtDriverUSDOT.Text        = driverInterviewProfile.USDOT;
                txtDriverPhone.Text        = driverInterviewProfile.Phone;
                txtDriverEmailAddress.Text = driverInterviewProfile.Email;
                txtDriverName.Text         = driverInterviewProfile.DriverName;
                txtSupervisor.Text         = driverInterviewProfile.Supervisor;
                txtDriverLicense.Text      = driverInterviewProfile.LicenseNo;
                txtExpirationDate.Text     = driverInterviewProfile.ExpirationDate;
                DropDownListState.Items.FindByValue(driverInterviewProfile.StatusIssued).Selected = true;
                txtClass.Text = driverInterviewProfile.Class;
                txtDOB.Text   = driverInterviewProfile.DOB;
                drpCDL.Items.FindByText(driverInterviewProfile.CDLNonCDL).Selected = true;
                txtDriverSSN.Text = driverInterviewProfile.SSN;
                hidSSNNo.Value    = driverInterviewProfile.SSN;
                txtDriverEIN.Text = driverInterviewProfile.EIN;
                txtNotesCommentsObservation.Text = driverInterviewProfile.Notes;
            }

            if (driverVehicle != null)
            {
                txtYear.Text  = driverVehicle.Year.ToString();
                txtMake.Text  = driverVehicle.Make;
                txtModel.Text = driverVehicle.Model;
                txtGVW.Text   = driverVehicle.GVW;
                foreach (DriverVehicleCargoEntity driverVehicleCargo in driverVehicleCargoData)
                {
                    if (driverVehicleCargo != null)
                    {
                        if (driverVehicleCargo.CargoCarriedName == chkAgriculturalFarmSupplies.Text)
                        {
                            chkAgriculturalFarmSupplies.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkBeverages.Text)
                        {
                            chkBeverages.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkBuildingMaterials.Text)
                        {
                            chkBuildingMaterials.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkChemicals.Text)
                        {
                            chkChemicals.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkCoalCoke.Text)
                        {
                            chkCoalCoke.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkCommoditiesDryBulk.Text)
                        {
                            chkCommoditiesDryBulk.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkConstruction.Text)
                        {
                            chkConstruction.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkDriveTowaway.Text)
                        {
                            chkDriveTowaway.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkFreshProduce.Text)
                        {
                            chkFreshProduce.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkGarbageRefuse.Text)
                        {
                            chkGarbageRefuse.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkGeneralFreight.Text)
                        {
                            chkGeneralFreight.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkGrainFeedHay.Text)
                        {
                            chkGrainFeedHay.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkHouseholdGoods.Text)
                        {
                            chkHouseholdGoods.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkIntermodalCont.Text)
                        {
                            chkIntermodalCont.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkLiquidsGases.Text)
                        {
                            chkLiquidsGases.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkLivestock.Text)
                        {
                            chkLivestock.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkLogsPolesBeamsLumber.Text)
                        {
                            chkLogsPolesBeamsLumber.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkMachineryLargeObjects.Text)
                        {
                            chkMachineryLargeObjects.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkMeat.Text)
                        {
                            chkMeat.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkMetalsheetscoilsrolls.Text)
                        {
                            chkMetalsheetscoilsrolls.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkMobileHomes.Text)
                        {
                            chkMobileHomes.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkMotorVehicles.Text)
                        {
                            chkMotorVehicles.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkOilfieldEquipment.Text)
                        {
                            chkOilfieldEquipment.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkPaperProducts.Text)
                        {
                            chkPaperProducts.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkPassengers.Text)
                        {
                            chkPassengers.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkRefrigeratedFood.Text)
                        {
                            chkRefrigeratedFood.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkUSMail.Text)
                        {
                            chkUSMail.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkUtilities.Text)
                        {
                            chkUtilities.Checked = true;
                        }
                        if (driverVehicleCargo.CargoCarriedName == chkWaterWell.Text)
                        {
                            chkWaterWell.Checked = true;
                        }
                    }
                }
            }

            Session["driverlist"] = driverProfileHelper.GetSalesByOrderID(false, orderid).driverInterviewProfiles;

            BindPurchasedItems();
        }